MySensors v2 : mesure de température et d’humidité (DHT11/DHT22)

Le firmware MySensors permet de réaliser très facilement une sonde de température et d’humidité à base de DHT11 ou DHT22 dont on pourra très facilement récupérer les valeurs sur un logiciel domotique ou un programme quelconque. C’est un bon exercice pour découvrir la librairie MySensors et la domotique. Si vous débutez avec la librairie MySensors, vous pouvez commencer par cet article.

Matériel nécessaire

arduino nano v3 atmega328p Arduino Nano (conseillé)
rflink nrf24l01 Module radio nRF24L01

Portée standard ou longue portée (1000m ou environnement difficile)

adaptateur cablage nRF24L01 Adaptateur avec régulateur de tension 3V3 pour module antenne nRF24L01 ou nRF24L01 + PA + LNA
Broches DHT22 Capteur de température et d’humidité

DHT11 ou DHT22

jumper dupont Jumper Dupont
breadboard Breadboard

Branchement nRF24L01 et DHT22

Il est préférable d’utiliser un adaptateur avec un régulateur de tension intégré pour obtenir une meilleure qualité d’émission / réception du signal radio (et c’est aussi beaucoup plus facile à câbler). Le branchement du module nRFF24L01 à l’Arduino Nano est le suivant :

  • 5V -> V+
  • GND -> GND
  • D13 -> SCK (vert)
  • D12 -> MISO (violet)
  • D11 -> MOSI (bleu)
  • D10 -> CSN (jaune)
  • D9 -> CE (orange)
  • D2 -> IRQ (gris)

Le DHT22 ne comporte que 3 broches à câbler.

L’équipe de développement MySensors conseille l’utilisation d’un Arduino Nano comme base pour un noeud MySensors. Il est également possible d’ajouter un noeud à une gateway ou d’utiliser un ESP8266 depuis la v2.

mysensors arduino micro dht22 nrf24l01

Code

Copiez le code ci-dessous dans un nouveau projet Arduino. Vous pouvez modifier les paramètres suivants :

  • La force du signal. Ici il est réglé à LOW pour privilégier la portée compte tenu du faible volume de données à transmettre et de la fréquence de l’envoi.
  • Le type de module Radio.
  • L’identifiant du noeud. La v2 est stable mais l’attribution automatique d’un identifiant est encore aléatoire. Pour le moment, je préfère attribuer un numéro manuellement.
  • Le paramètre SLEEP_NODE permet de mettre en sommeil le module pour la période SLEEP_TIME

Vous aurez peut être aussi besoin d’ajouter la librairie DHT depuis le gestionnaire de librairie. Contrairement aux exemples que l’on trouve sur internet, j’ai utilisé la librairie Adafruit qui est disponible dans le gestionnaire de librairie.

Visualisation sous Domoticz

Il ne nous reste plus qu’à intégrer cette petite sonde de température et d’humidité dans un logiciel domotique tel que Domoticz. Si vous débutez en domotique (ou Domoticz), lisez d’abord cet article qui explique comment ajouter une gateway réseau à base d’ESP8266.

Allez dans les dispositifs. Dès le premier envoi de données, Domoticz l’a ajouté automatiquement à la liste des dispositifs disponibles. Appuyez sur la flèche verte et donnez lui un nom.

domoticz dispositif mysensors temperature humidite dht11 dht22 arduino nano

Allez ensuite sur la page Température pour voir votre nouvelle sonde MySensors.

domoticz dispositif mysensors temperature humidite dht11 dht22 arduino nano

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous dés inscrire à tout moment.

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

  • Philippe

    Bonjour !

    J’ai testé votre sketch : ca marche !! Mais voici quelques remarques :

    Sur votre schéma, il y a une erreur de connexion au niveau du module radio, il faut inverser les fils bleu et mauve (je me suis fait avoir, trop regardé le schéma !!). Mais pas d’erreurs dans texte !!

    Toujours sur le schéma, vous alimentez le module radio en 5V….Pas bon pour lui !!! 🙂 j’ai rajouté un régulateur de tension en 3.3V (ou faire comme vous le proposez, ajouter un adaptateur sur le module radio).

    Dans le sketch la syntaxe #include <SPI.h> ne passe pas lors de la compilation dans IDE. Mettre : #include , idem pour les deux autres #include !

    Voilà, rien de bien gênant, juste quelques précisions !! 🙂

    Pour info, j’ai fait le capteur avec une Arduino Mini, nickel !

    Je lis les valeurs de température et humidité dans Jeedom avec le plugin Mysensors.

    Le capteur semble très bien marcher, je vais le laissé en test un bon moment.

    Juste une question : pour le mode sleep, peut on passer à 1 min ? , voir plus ?

    En tout cas, merci pour votre article et le sketch fonctionnel !!

    Je vous souhaite de passer un bon réveillon et à l’année prochaine !! 🙂

    • Bonjour Philippe et merci beaucoup pour tous vos retours. Désolé pour la couleur sur le schéma, je vais corriger rapidement. Concernant le temps de mise en sommeil, oui, vous pouvez indiquer ce que vous voulez. Vous pouvez le réveiller une fois par heure si c’est suffisant. Passez un bon réveillons également et à l’année prochaine avec plein de nouveaux tutos !

      • Philippe

        Bonsoir,
        Tout mes voeux pour cette nouvelle année!
        Merci pour votre réponse, je modifierai le sketch en conséquence pour augmenter la période de sommeil.

        • Bonjour Philippe. Meilleurs voeux également pour 2017 !

  • NikiDon

    Bonjour !
    Je suis ton blog avec attention étant moi même passionné mais pas aussi qualifié c’est certain.
    Juste pour dire que les erreurs de câblage sont toujours présente… je viens de les faire.
    Lorsque l’on télécharge la bibliothèques DHT by Adafruit avec le gestionnaires arduino il fait un erreur de compilation car il trouve pas Adafruit_Sensor.h ben faut le rajouter manuellement après ça marche !
    Trop géniale, franchement merci à toi pour tes tutos car tout seul je n’y arrivais pas (flemme/déprime/…)

Projets DIY - Domotique et objets connectés à faire soi-même