Sonette WiFi
Introduction
"Sonette" ; nom féminin, "Bidule de ses mort faisant du bruit quand il y a quelqu'un à la porte opérant toujours sans fils parce qu'on est plus au XXème siècle".
Il existe de nombreux modèles de sonnette sans fil des plus basiques (bouton > RF > Din Dong) au plus modernes (I-Smart-Sonette Domotique AI Cloud Blockchain ⇒ Bouton > Photo ,lecture d'empreintes digitale et prélèvement d'échantillon sanguin pour séquençage > Envoi des données biométriques vers un serveur chinois pour alimenter une base de donnée de taille de pénis > Notification par envoi d'un "poke" sur Facebook). Nous nous somme longtemps contenté d'une simple sonnette sans fil, mais cette époque est révolue ! Fini les problèmes de connexion ! Terminé le bouton désagréable ! Plus jamais de "Oh t'attends devant la porte depuis 10min parce que la sonnette marche pas ? ".
Voici le guide détaillé décrivant comment fabriquer une Sonnette WiFi Master Race avec MQTT Caméra et Plein de Trucs Cool.
Membres
Mainteneur(s) | Participant(s) |
---|---|
Neodyme | iooner (ayant vaguement contribué au projet par le biais de remarques modérément pertinentes) |
Matériel
Sonette
- Wemos D1 R1
- Buzzer
- Bouton poussoir
- LED RGB WS2812B
- Wrapping Wire ou autre fil électrique assez fin
- Imprimante 3D/Filament
- Double face acrylique
- Alimentation 5V
Caméra
- ESP32 Cam
- Adaptateur TTL (pour flasher l'ESP32 Cam si celle-ci ne possède pas d'interface USB intégrée)
- Imprimante 3D/Filament
- Aimants Neodyme 10x3mm
- Alimentation 5V
Serveur
- Orange Pi Zero (ou autre SBC, Raspberry Pi, Jetson Nano, NanoPi, ou même un "Vrai" ordinateur)
- Imprimante 3D/Filament (Pour éventuellement faire un boitier)
- Alimentation 5V
Setup du serveur
Node-Red
Commençons par un classique sudo apt update
sudo apt upgrade
.
Si vous utilisez un Raspberry Pi, Node-Red est déjà pré-installé il suffit alors de taper node-red
dans le terminal pour le lancer. sudo systemctl enable nodered.service
permet d'activer le démarrage automatique de Node-Red.
Dans le cas d'un Orange Pi (ou de la majorité des autres SBC) il faut installer Node-Red manuellement. On commence par installer NodeJS
curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
Suivi de
sudo apt-get install -y nodejs
Et enfin
sudo npm install -g --unsafe-perm node-red
Bravo Node-Red est installé
Il faut maintenant faire en sorte que Node-Red se lance automatiquement au démarrage en créant le service suivant
sudo nano /etc/systemd/system/node-red.service
Rem : sudo apt install nano
si nano n'est pas déjà installé
Et d'y coller les lignes suivantes :
[Unit] Description=Node-RED After=syslog.target network.target [Service] ExecStart=/usr/bin/node-red --max-old-space-size=128 -v Restart=on-failure KillSignal=SIGINT SyslogIdentifier=node-red StandardOutput=syslog WorkingDirectory=/home/sonette/ User=root Group=root [Install] WantedBy=multi-user.target
"Mais c'est pas comme ça qu'on fait !! :O" "Tu lance le truc en root c'est pas une bonne pratique !!" "Moi j'aurai pas fait comme ça" … Et autre phrase de puriste "gneu gneu gneu moi je maîtrise l'outil informatique des ordinateur".
Je vous remercie de votre intervention fictive, il se trouve que cette technique fonctionne jusqu'à présent plutôt bien. Même si ce n'est peut être pas le moyen standard de procéder (en vrai je n'en ai aucune idée, je suis Biologiste Moléculaire) ça a l'avantage d'avoir fonctionné sur TOUS les appareils que j'ai pu tester Raspberry, Orange Pi (différents modèles), Jetson Nano, NanoPi, etc Peu importe l'architecture du processeur ARM, X86,…
Il ne reste plus qu'à activer le service comme pour le Raspberry Pi
sudo systemctl enable node-red
Et enfin
sudo systemctl start node-red
A ce stade peu importe la machine Node-Red devrai être installé et doit se lancer automatiquement au démarrage.
Node-Red se lance en root car l'installation de certaines nodes (serial par ex) requièrent des privilèges élevés. Il est par conséquent nécessaire d'être root pour installer ces nodes directement depuis l'interface graphique plutôt que d'avoir à le faire manuellement via npm. Le working directory se trouve donc dans /root/.node-red
au lieu de /home/sonnette/.node-red
ce détail est important pour la suite.
Dans ce cas-ci il n'est pas indispensable de lancer Node-Red en tant que root, vous pouvez remplacer root par sonnette (ou autre nom d'user) dans le service.
Le reste
Il ne reste plus qu'à installer le broker mqtt
sudo apt install mosquitto
Et accessoirement motion
sudo apt install motion
Ettttt c'est tout !
Le serveur peut être planqué quelque part à l'abri, tant qu'il a accès à internet (ethernet/Wifi) il ne sera plus nécessaire d'interagir physiquement avec lui (du moins à court terme)
Reste des truc a faire
- Impression montage sonnette
- Flash Sonette
- Blabla OTA
- Impression montage haut parleur
- Flash haut parleur
- Déploiement NodeRed
- Lien MQTT
- Comment ça marche en gros ?
- Démo
- Amélioration possibles
- Au secours il reste tant de truc