Besoin :
Création d’une box permettant d’interagir avec différents objets connectés.
La box doit être :
– Multi-protocoles (Wifi, GPIO, Radio 433 Mhz et 2.4 Ghz, …)
– La plus libre et la moins couteuse possible
Le materiel :
- Un raspberry
- Une carte SD
- Un module émetteur 433 Mhz
Les étapes :
- Installer Rasbian lite sans clavier ni écran (SSH)
- Paramétrer Rasbian
- Installer Node-red
- Piloter les GPIO avec Node-red
- Prises Chacon
Installer Rasbian sans clavier ni écran (en mode SSH)
– On télécharge l’image du système d’exploitation du raspberry Rasbian lite
– On copie l’image sur la carte SD grâce au logiciel Etcher.
– Afin d’activer le protocole SSH pour le premier démarage du raspberry, on crée un fichier vide et sans extension (ex: .txt) nomé ssh dans le répertoire /BOOT de la carte SD.
– On raccorde le pi en ethernet sur sa box et on l’alimente.
Paramétrer Rasbian
– On récupère l’adresse IP du raspberry via l’interface de gestion de sa box opérateur.
– Avec le logiciel client ssh Putty on se connecte en SSH sur le raspberry. (id pi/raspberry)
– Pour paramétrer le raspberry on tape la commande suivante
sudo raspi-config
On en profite pour:
Choix 1 : modifier le mot de passe par défaut #sécu
Choix 4 : on paramètre le langage (fr_FR.UTF-8 UTF-8>) et la Timezone
Choix 5 : on active le remote GPIO
Choix 7 : Expand Filesystem
On paramètre l’interface Ethernet en @IP fixe (tuto sur domo-blog.fr)
sudo nano /etc/dhcpcd.conf
On reboot le raspbery:
sudo reboot
Installer Node-Red
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
A l’issue de l’installation (~ 30 min) on tape la commande suivante pour que node-red démarre automatiquement au démarrage du raspberry :
sudo systemctl enable nodered.service
On peut maintenant ouvrir Node-red dans le navigateur à cette adresse :
http://192.168.1.100:1880
On en profite pour installer le pacquet node-red-dashboard via le Manage palette, il nous servira à créer l’interface graphique de notre projet.
Piloter les GPIO avec Node-Red
Super tuto + exemple de mangeoire et sonnette connectées eduscol.education.fr.
Prise CHACON DIO
Nous allons commander ces prises grâce à un émetteur 433 Mhz. Ces prises sont disponible chez Leroy Merlin pour – de 30€
Montage:
sources:
https://flows.nodered.org/flow/e33d31301c522dab4be2c68eb55c5fc5
cd /home/pi/.node-red/node_modules/
mkdir node-red-contrib-radio-emi
cd node-red-contrib-radio-emi/
wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=1cFD3ueWznk4zOMeiHWCzGthGOw08aQeB' -O radioEmission
sudo chmod 755 radioEmission
Pour tester :
sudo ./radioEmission 0 12325261 1 on
sudo ./radioEmission 0 12325261 1 off
Importer le flow suivant dans Node-red:
[{"id":"f28896f.bd25a68","type":"function","z":"a8893c87.db65f","name":"Filtre Emission","func":"var ws = msg.payload;\n\nif(ws==\"prise_1_on\"){ //Si appui sur le bouton 1 ON de la télécommande virtuelle\n var msg1 = { payload:\"sudo /home/pi/.node-red/node_modules/node-red-contrib-radio-emi/radioEmission 0 12325261 1 on\" }; //Création d'un objet comprenant la ligne de commande qui execute le programme en C++\n return [msg1]; //On retourne ce message vers la sortie de la node\n}\n\nif(ws==\"prise_1_off\"){\n var msg1 = { payload:\"sudo /home/pi/.node-red/node_modules/node-red-contrib-radio-emi/radioEmission 0 12325261 1 off\" };\n return [msg1]; \n}\n\nif(ws==\"prise_2_on\" || ws==\"prise_2_onemi\"){\n var msg1 = { payload:\"sudo /home/pi/.node-red/node_modules/node-red-contrib-radio-emi/radioEmission 0 12325261 2 on\" };\n return [msg1];\n}\n\nif(ws==\"prise_2_off\" || ws==\"prise_2_offemi\"){\n var msg1 = { payload:\"sudo /home/pi/.node-red/node_modules/node-red-contrib-radio-emi/radioEmission 0 12325261 2 off\" };\n return [msg1];\n}\n\nif(ws==\"prise_3_on\" || ws==\"prise_3_onemi\"){\n var msg1 = { payload:\"sudo /home/pi/.node-red/node_modules/node-red-contrib-radio-emi/radioEmission 0 12325261 3 on\" };\n return [msg1];\n}\n\nif(ws==\"prise_3_off\" || ws==\"prise_3_offemi\"){\n var msg1 = { payload:\"sudo /home/pi/.node-red/node_modules/node-red-contrib-radio-emi/radioEmission 0 12325261 3 off\" };\n return [msg1];\n}","outputs":1,"noerr":0,"x":320,"y":120,"wires":[["b1e419cd.fff3d8"]]},{"id":"b1e419cd.fff3d8","type":"exec","z":"a8893c87.db65f","command":"","addpay":true,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"radioEmission","x":580,"y":120,"wires":[[],[],[]]},{"id":"6bf9a685.527338","type":"ui_switch","z":"a8893c87.db65f","name":"Prise 1","label":"Prise 1","group":"aeb1704d.6d297","order":0,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"","style":"","onvalue":"prise_1_on","onvalueType":"str","onicon":"","oncolor":"","offvalue":"prise_1_off","offvalueType":"str","officon":"","offcolor":"","x":110,"y":60,"wires":[["f28896f.bd25a68"]]},{"id":"145e2a46.8168e6","type":"ui_switch","z":"a8893c87.db65f","name":"Prise 2","label":"Prise 2","group":"aeb1704d.6d297","order":0,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"","style":"","onvalue":"prise_2_on","onvalueType":"str","onicon":"","oncolor":"","offvalue":"prise_2_off","offvalueType":"str","officon":"","offcolor":"","x":110,"y":120,"wires":[["f28896f.bd25a68"]]},{"id":"2f8a95f5.d3948a","type":"ui_switch","z":"a8893c87.db65f","name":"Prise 3","label":"Prise 3","group":"aeb1704d.6d297","order":0,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"","style":"","onvalue":"prise_3_on","onvalueType":"str","onicon":"","oncolor":"","offvalue":"prise_3_off","offvalueType":"str","officon":"","offcolor":"","x":110,"y":180,"wires":[["f28896f.bd25a68"]]},{"id":"aeb1704d.6d297","type":"ui_group","z":"","name":"Commandes","tab":"777713cf.aa843c","order":3,"disp":true,"width":"6","collapse":false},{"id":"777713cf.aa843c","type":"ui_tab","z":"","name":"Ecran Principal","icon":"home","order":1}]