Sonette WiFi

"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.

Mainteneur(s) Participant(s)
Neodyme iooner (ayant vaguement contribué au projet par le biais de remarques modérément pertinentes)

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

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)

  • 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