Comment faire clignoter les guirlandes de Noël avec une raspberry
Comme chaque années, début décembre, on sort du grenier le Sapin de Noël et ses guirlandes.
Cette année un petit plus : ajout d’une Framboise sous le sapin qui détecte votre présence et allume les guirlandes si nécessaire.
Bon ok, ça n’a rien d’exceptionnel : juste une occasion d’écrire quelques lignes de python et d’utiliser ma bibliothèques FGPIO.
Et j’aurais pu faire ça aussi simplement avec un arduino et surement moins cher et plus bas en consommation, mais en fait, j’aime bien le python (depuis que je suis tombé dedans, j’ai de plus en plus de mal à revenir au C/C++!)
Les bibliothèques utilisées :
Budget : Non défini
Aller dans le grenier, retrouver la sapin, le sortir, le monter, chercher les guirlandes, pester contre le con qui a tout mis en vrac l’année dernière….
Il existe plusieurs types de détecteur de mouvements Infra rouge.
Je vous conseille l’article de François Mocq : http://www.framboise314.fr/raspberry-pi-et-detecteur-de-presence-infra-rouge/
Pour ce projet, j’ai utilisé un modèle économique : le HC SR501. Il en existe plusieurs clones sur Ebay pour environ 1€. Celui que j’ai eu fonctionne bien.
(par contre j’avais acheté il y a quelques temps un SEN0018 qui m’a fait perdre pas mal de temps avant de comprendre qu’il ne fonctionne pas).
Utilisation du HC SR501 :
Avec la bibliothèque python FGPIO ça donne :
detecteur_ir = hcsr501_io(pc.bcm_pin(21)) def action_sensor_change(): if capteur.th_readed(): print "Detection." else: print "fin de detection." detecteur_ir .add_thread(action_sensor_change)
Pour éviter les fils électriques, rien de tel que de la radio.
Le plus simple pour piloter une prise électrique sans risques : une prise du marché (Home confort YC-4000B à 18€ les 4 sur amazon) que l’on va commander avec un emeteur 433 Mhz.
Ces prises se commandent en envoyant une trame contenant dans l’ordre
le 1 est envoyé sous la forme :
1 unité de temps à HIGH
3 unités de temps à LOW
1 unité de temps à HIGH
3 unités de temps à LOW
le 0 est transmis sous la forme :
1 unité de temps à HIGH
3 unités de temps à LOW
3 unité de temps à HIGH
1 unités de temps à LOW
la fin de transmission est :
1 unité de temps à HIGH
31 unités de temps à LOW
où une unité de temps est comprise entre 100 et 420 ms (j’ai mis 260 ms).
Pour plus de détail voir le code python sur FGPIO/rcSwitch_io.py
Pour “coder” la prise : voir petite trappe au dos avec quelques dips.
Avec la bibliothèque python FGPIO ça donne :
rcSwitch = rcSwitch_io(*pc.logical_pins(2)) A = prise(rcSwitch,'00010', '10000') B = prise(rcSwitch,'00010', '01000') C = prise(rcSwitch,'00010', '00100') D = prise(rcSwitch,'00010', '00010') A.setON() B.setON() C.setON() D.setON() time.sleep(2) A.setOFF() B.setOFF() C.setOFF() D.setOFF()
Le branchement est simple :
J’utilise pour plus de facilité une nappe avec platine d’extentions, et une petite breadboard, le tout posé sur le raspberry pi.
"https://pypi.python.org/pypi/FGPIO" onclick="__gaTracker('send', 'event', 'outbound-article', 'https://pypi.python.org/pypi/FGPIO', 'https://pypi.python.org/pypi/FGPIO');" rel="nofollow external" class="ext-link" target="_blank">https://pypi.python.org/pypi/FGPIO
– FUTIL pour quelques utilitaires : https://pypi.python.org/pypi/FUTIL
sudo pip install FGPIO sudo pip install FUTIL
Puis pour ce projet :
– FSDNOEL : https://pypi.python.org/pypi/FSDNOEL
sudo pip install FSDNOEL
La bibliothèque (c’est un grand mot!) FSDNOEL s’installe avec les lib python.
Le script monbosapin.py s’installe en /opt/FSDNOEL (on y trouve aussi un log)
Attention, le script d’installation créer un service monsapin qui va s’executer automatiquement au boot.
Pour le désactiver :
sudo sysv-rc-conf (si pas installé : apt-get install sysv-rc-conf)
Je vous laisse regarder le code … qui parle par lui même.
Rien de compliqué. Juste l’utilisation de thread pour faire clignoter, de l’héritage multiple…
http://gladysproject.com/fr/article/gerer-les-appareils-electrique, http://www.framboise314.fr/raspberry-pi-et-detecteur-de-presence-infra-rouge/
Vues: 1163
J'aime: 1