Box domotique V1 – Partie 1

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

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

ip-fixe
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

node-red
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€

lot-de-3-prises-telecommandables-interieure-dio

Montage:

Untitled Sketch_bb2

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}]