Thermos, le thermomètre connecté
Posted on Wed 23 January 2019 in Maker
Après plusieurs mois (année ?) à ne rien avoir écrit ici, voici un article sur ma dernière réalisation : le thermomètre connecté à base de Witty.
Le contexte
Le but ici est d’avoir un montage simple qui permet de remonter la température, l’humidité et la luminosité sur un appel à une API REST. J’ai donc choisi une base d’ESP-8566 witty qui a l’avantage d’être compact, d’intégré le Wi-Fi en natif et d’avoir un capteur de luminosité.
Le matériel
(note: les liens ci-dessous sont à titre indicatif, je ne fait pas de pub pour l’un ou l’autre des vendeurs)
- Un ESP-8266 Witty
- Un capteur de température DHT-22 (ou DHT-11)
- Un condensateur de 100 nF
- Une résistance de 10 kΩ
- Deux séries de 8 connecteurs femelles
- Le circuit imprimé décrit ci-dessous
Le circuit
Schéma
Les sources Fritzing de ce schéma est disponible ici.
Pour le circuit imprimé, j’ai utilisé ce que me proposait Fritzing et ai commandé chez Aisler.
Voici donc le tout, monté et soudé :
Le code
Tous le code est disponible sous licence GNU AGPLv3 à l’addresse https://gitlab.yapbreak.fr/iot/thermos.
Il utilise platformIO pour compiler, et normalement un simple make
devrait faire l’affaire. Une fois le firmware installer sur le Witty, la LED rouge devrait clignoter, indiquant que la puce a besoin de configuration.
Pour pouvoir la configurer, il faut se connecter au réseau WiFi Thermos, émis par la puce elle-même et ce rendre à l’adresse http://192.168.0.100.
Les questions classiques d’usage seront posées: SSID, mot de passe, id et nom. Lorsque la configuration est terminée, il ne reste plus qu’à redémarrer le thermomètre et se rendre à l’addresse ip attribué pour recevoir toutes les informations.
{
"variables": {
"temperature": 20.60,
"humidity": 35.00,
"luminance": 0.39
},
"id": "1",
"name": "myThermos",
"hardware": "esp8266",
"connected": true
}
Intégration dans OpenHab
Si vous avez un petit serveur de domotique, répondant au doux nom d’OpenHab, l’intégration de Thermos peut se faire via le binding HTTP et le module de transformation JSONPath.
Créez alors un fichiers thermos.items
dans le dossiers items
de la configuration d’OpenHab avec le contenu suivant :
Number thermos_id_temp "Temperature [%.1f°C]" <temperature> {
http="<[http://xxx.xxx.xxx.xxx:30000:JSONPATH($.variables.temperature)]"
}
Number thermos_id_humidity "Humidité [%.1f%%]" <humidity> {
http="<[http://xxx.xxx.xxx.xxx:30000:JSONPATH($.variables.humidity)]"
}
Number thermos_id_luminosity "Luminosité [%.1f%%]" <light> {
http="<[http://xxx.xxx.xxx.xxx:30000:JSONPATH($.variables.luminance)]"
}
Ajoutez ensuite ces 3 items dans la configuration de persistance pour finalement avoir de jolies courbes de température !