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)

Le circuit

Schéma

thermos_schema

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é :

thermos_photos

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 !

thermos_courbe