1. Matériel:
Une TV qui ne gère pas le CEC.
Un Raspberry Pi 3B.
Une alimentation 5V 3A.
Cinq relais 5V avec un contact. ( ou un relai 3NO/1NC et un relai 1NO )
Un relai 5V temporisé.
Quatre condensateur 10V 1mF récupérés.
Deux diodes récupérées.
Une résistance 1kohm.
Des fils et de la connectique USB et micro-USB qui traine pour câbler le tout.
2. Objectif:
A l'allumage de la TV, on allume automatiquement le Raspberry pi et les périphériques ( chez moi le son 2.1 par exemple ).
A l'extinction de la TV, on éteint les périphériques et on commande une extinction propre du Raspberry pi. Une fois éteint on le met hors tension.
3. Schéma:
4. Explication du fonctionnement:
En allumant la TV on met sous tension le relai AL.
- Il commande le relai AL1 qui mettra sous tension les périphériques.
- Il commande le relai AL2 qui va se fermer et le GPIO23 sera mis à '1'.
- Il commande le relai AL3 qui va s'ouvrir et la tempo TAR ne sera pas commandée pour le moment.
- Il commande le relai ALT qui va immédiatement alimenter le Raspberry Pi.
- La batterie de condensateur va se charger. Elle permet de retarder l'arrêt du relai ALT d'un temps très court.
En éteignant la TV met hors tension le relai AL.
- AL1 va s'ouvrant et mettre hors tension les périphériques.
- AL2 s'ouvrir, le GPIO23 se mettra à '0' et commandera un arrêt propre du raspberry.
- AL3 va s'ouvrir et commander le relai TAR.
- ALT va s'ouvrir mais légèrement plus tard ce qui permet au relai TAR de prendre le relai,
et éviter une micro-coupure sur le Rasberry pi lors de la commutation des relais.
- Le relai TAR s'auto-maintien et alimente le Raspberry qui est en train de s'éteindre.
- A la fin de la temporisation le relai TAR se coupe et met hors-tension le raspberry qui a pu s'éteindre correctement.
5. Programmation du GPIO:
Je précise que je suis un débutant en linux, ce n'est peut-être pas optimisé, mais cela fonctionne correctement.
Ceci est pour un fonctionnement sur OSMC et doit sûrement être adapté pour les autres distributions:
-Installation du paquet build-essential ( nécessaire à l'installation de wiringpi )
Code : Tout sélectionner
sudo apt-get install build-essential
http://wiringpi.com/download-and-install/
-Contrôle du fonctionnement des GPIOs:
Code : Tout sélectionner
gpio readall
Code : Tout sélectionner
sudo nano /bin/scriptarret.sh
Code : Tout sélectionner
#!/bin/bash
# arret automatique sur relai
setup ()
{
echo Setup
gpio -g mode 23 in
}
waitButton ()
{
echo -n "Script en attente du signal d'arret. "
while [ `gpio -g read 23` = 1 ]; do
sleep 1
done
halt echo osmc | sudo -S halt
}
setup
while true; do
-On rend le fichier exécutable:
Code : Tout sélectionner
chmod 755 scriptarret.sh
Code : Tout sélectionner
sudo nano /etc/rc.local
Code : Tout sélectionner
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/bin/scriptarret.sh
exit 0
Code : Tout sélectionner
reboot
Voilà pour le fonctionnement, si vous avez déjà le raspberry et son alimentation, le budget est d'une dizaine d'euros pour les relais. Pour toute la partie électronique le budget est inférieur à 20 euros si vous achetez tout.
Si je peux vous éclairer sur un point, surtout n'hésitez pas!
A bientôt!