Trouvant le prix des différentes sondes un peu excessif, j’ai décidé de me fabriquer mes propres sondes à base d’ESP8266 qu’on trouve pour environ 2€. Je vais utiliser le firmware Tasmota et le couplé à différent capteur pas cher.
ESP8266 / ESP-12F : Hardware
L’ESP8266 est un circuit couramment utilisé dans les objets connectés, tel que les Sonoff dont j’ai déjà parlé. Il possède une connexion WiFi et de multiple entrées et sorties. Je l’ai pris avec sa carte de développement qui offre un port microUSB et permet de l’alimenter facilement avec un cable standard.
L’alimentation un petit chargeur 230V-USB car j’ai des sources d’alimentations à chacune de mes fenêtres.
ESP8266 / ESP-12F : Firmware
Étant très répandue dans le monde de la domotique, il existe des firmware qui fonctionne très bien, j’ai choisi Tasmota mais j’ai pas non plus testé tous les firmware existant. En tout cas, il est régulièrement maintenu à jour, fonctionne très bien avec Jeedom en MQTT et est compatible avec pas mal de capteur. Je voulais aussi garder une homogénéité entre mes différents équipements.
Tasmota : Installation
Pour flasher le module Sonoff Pow R2, j’utilise l’outils Tasmotizer que j’ai trouvé en version 1.2.
Tout d’abord, ouvrez votre Gestionnaire de périphériques et déplier « Ports (COM et LPT) ». Brancher ensuite votre ESP, une nouvelle ligne devrait apparaitre ; Moi c’est le port COM6.
Lancer Tasmotizer, sélectionner le bon port COM (pas comme sur la capture), cocher « Release 9.x.x » et pour le moment je vais choisir le binaire « tasmota.bin » (par la suite je passerai peut-être sur le « tasmota-sensors.bin » qui possède une plus grande compatibilité de capteur au détriment d’autres fonctionnalités), puis cliquer sur « Tasmotize! ».
Le flash va se lancer et durer à peu près une minute.
Vous pouvez ensuite redémarrer électriquement le Sonoff, puis cliquer sur « Send config » pour lui mettre les infos WiFi.
Redémarrer le Sonoff et pour finir cliquer « Get IP ».
Tasmota : Configuration
Dans votre navigateur internet saisir l’adresse IP.
Aller dans « Configuration > Configure Module » et dans « Module type » sélectionner « Generic (0) » puis cliquer sur « Save ».
L’ESP va redémarrer presque à chaque modification.
Configuration du MQTT vers le Jeedom
Aller dans « Configuration > Configure MQTT ».
Dans « Host », saisir l’IP de votre Jeedom
Dans « Topic », saisir le nom qu’aura l’objet dans Jeedom. Je vais mettre « ESP_Balcon »
Dans « Full Topic », saisir « %topic%/%prefix%/ » car j’inverse le prefix et le topic pour avoir toutes les infos et commandes dans le même objet.
Mis en place des fonctionnalités
Fréquence de remonté des capteurs
Aller dans « Configuration > Configure Logging » et dans « Telemetry period » saisir le temps en seconde entre chaque envoi de valeur.
DHT22 : Capteur de température et humidité : ~5€
Je vais faire fonctionner le capteur en 3,3V et de le câbler sur le pin D5.
Aller dans « Configuration > Configure Module » et sélectionner « AM2301 » sur le pin correspondant.
Save et retourner sur la page d’accueil et vous devriez avoir des premiers relevée au bout de quelques secondes.
BMP180/BME280 : Capteur de pression atmosphérique et température : moins de 5€ (BME280)
Pour utiliser ce capteur, vous aurez besoin d’installer le binaire tasmota-sensors.bin. Plus d’information sur le site de Tasmota BME280 temperature, humidity and pressure sensor – Tasmota
Ensuite, il faut configurer le PIN D1 en « I2C SCL » et le PIN D2 en « I2C SDA ».
Tasmota détecte ensuite automatiquement le capteur de pression.
Il existe aussi le capteur BME680 à environ 15€ qui fait capteur de pression en plus capteur de « qualité d’air » (COV)
Capteur d’ouverture (fenêtre ou porte) : ~1€
Nous allons simplement utiliser une entrée tout-ou-rien. Il est possible de le faire de différente manière, par exemple avec un ILS ou un interrupteur de fin de course. Mais j’ai choisi d’utiliser un capteur à effet hall avec des petit aimants récupéré dans des disques dur de PC.
On évite ainsi les contacts mécaniques et on peut régler la sensibilité du capteur.
Il faut cependant faire attention au paramétrage qu’on va faire. En effet, on va principalement s’en servir pour de la sécurité contre les cambriolages. Il faut donc que si le voleur arrache le capteur, la sonde ne rebascule pas en fermer.
Les ESP ont des diodes de pullup sur leurs entrées, il faut donc utiliser la sortie du Hall qui est à 0V quand un aimant est détecté.
Il faut donc configurer une entrée en type Switch avec le numéro que vous voulez.
Ensuite en mode console :
SwitchMode1 1
Rule1 on Switch1#state=1 do publish %topic%/tele/SENSOR{Switch1} ON endon on Switch1#state=0 do Publish %topic%/tele/SENSOR{Switch1} OFF endon
Rule1 1
On créer une règle pour émettre l’info en temps réel via une publication MQTT.
On a donc la valeur OFF quand la fenêtre est fermé et ON quand elle est ouverte ou que le capteur est débranché.
Commander un servomoteur : ~5€ (servo + alim)
Pour commander un servo moteur, j’ai repris la discution suivante HOWTO control servo motors · Discussion #10443 · arendst/Tasmota · GitHub
J’ai utilisé un servo de marque AfroD1602 et une mini alimentation DC-DC commandable. L’alimentation n’est pas obligatoire mais permet de n’alimenter le servo lorsqu’il n’est pas utilisé.
J’ai configuré comme ceci :
Tasmota | Paramètre | Servo |
D0 | PWM (1) | Signal (Jaune) |
D1 | Relay (1) | Enable alim |
D2 | Relay (2) | Direction (non utilisé) |
3v3 ou 5v | Vin alim | |
GND | GND (Maron) |
Nous allons utiliser le mode Shutter de Tasmota, cela va permettre de commander le servo en pourcentage.
Nous allons nous rendre dans la console de l’ESP et taper les commandes suivantes :
// Paramétrage global
SetOption80 1 // Active la fonction Shutters (volet).
Shuttermode 5 // Active le mode servo pour les volets.
PWMfrequency 200 // Modifie la fréquence du signal PWM, c'est une valeur globale pour tous les servos.
SetOption15 0 // Utiliser le mode de controle PWM basique.
// Paramétrage de la commande de servo
ShutterPwmRange1 500, 100 // Définie la plage de commande PWM, c'est une valeur globale pour tous les servos.
ShutterOpenDuration1 1 // Définie le temps d'ouverture, en seconde.
ShutterCloseDuration1 1 // Définie le temps de fermeture, en seconde.
ShutterMotorDelay1 0.2 // Définie le temps d'accélération des servo pour éviter les à-coups et d'abimer le servo.
Restart 1
Retourner sur la page d’accueil du Tasmota, vous devriez avoir deux canaux, un slider et deux boutons pour contrôler votre servo.
Conclusion
J’ai une sonde par fenêtre avec un DHT22 et un capteur Hall. C’était des capteurs que je possédais déjà mais si on fait le total on est à moins de 10€ pour une sondes qui fait température, humidité et ouverture.
Avec un capteur BME280, on aurait la pression en plus pour le même prix.
Et après on peut mutualiser et mettre plusieurs capteurs sur le même ESP. Moi par exemple, j’ai mutualisé l’ESP du salon avec celui de l’extérieur.