Les DHT 11, 22, Raspberry ça marche enfin !

Aaahhh, le Raspberry et les DHT de tout type viennent de faire un grand pas car Adafruit met à notre disposition une bibliothèque destinée à faire les acquisitions depuis les DHT11, 22, 2302 QUI FONCTIONNE.

Si, si je vous jure !

un autre article mentionnait ici l’installation et les problèmes liés à l’acquisition des données, c’est du passé.

Voyons ici comment connecter un capteur de température et de % d’humidité DHT11 à notre Raspberry. la procédure est identique pour un DHT22 ou 2302

Un DHT 111

Câblage

  • 1 du DHT au 3.3 V,
  • 2 du DHT au gpio que vous voulez,
  • 3 rien,
  • 4 GND

Un lecteur (cj) fait remarquer que :

D’après les spécifications fabriquant, le DHT22 accepte une alimentation comprise entre 3.3V et 6V. Les DHT11 et AM2302 acceptent quant à eux une alimentation comprise entre 3.3 et 5.5V. On peut donc sans problème brancher ces composants sur le 5V d’un RPi (ce que j’ai d’ailleurs fait avec mon AM2302 pour éviter les interférences créées par sa mauvaise cohabitation avec un DS18B20 connecté sur le 3.3V en 1-wire).

Entre 1 et 2 une résistance 4.7K Ohm-10 K, si ça marche pas avec 4.7K , passez à une 10k.

Attention vérifiez la répartition des pins GPIO suivant votre modèle de Raspberry.

Un tuto en anglais de chez Adafruit : https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/wiring

Software

Les outils Adafruit ont été déplacés sur github et consistent maintenant en une librairie C que nous devrons utiliser dans un script python.

Récupérons les sources et compilons la bibliothèque DHT.

Une fois terminé et pour tester cela, on exécute la commande suivante (pour un  DHT11) , un DHT 22 sera interrogé par Adafruit_DHT 22 XX, XX étant le numéro du GPIO concerné.

J’indique au plus têtus d’entre vous que le sudo EST OBLIGATOIRE pour accéder aux GPIO du Raspi.
Attention : le message d’erreur ci-dessous indique que le mode « device-tree » n’est pas activé sur le Raspberry.

Tapez sudo raspi-config puis dans le point 8 « Advanced Options », faites un « Enable Device Tree » et rebootez.
Vérifiez que tout fonctionne avec :

Le 11 étant le type de DHT que vous avez (11 ,22 ou 2302) et 4 le numéro du GPIO que vous avez câblé.

OK tout est bon on a température et humidité, on passe à la suite.

Attention : Le DHT11 et le  DHT22 ne répondent que 1 fois par seconde, inutile donc de les interroger plus rapidement.

Domoticz

On  va dans l’onglet « Matèriel » pour créer un virtual device puis dans ce virtual device.

On ajoute un virtual sensor Temp+Humidité ,

2014-09-05 19_01_10-Domoticz

Maintenant on revient dans  « Réglages/Dispositifs », on clique sur la flèche verte pour l’ajouter puis on on note l’ IDX Domoticz (44) dans mon cas

2014-09-05 19_03_06-Domoticz

Un script

Ce script à besoin de la bibliothèque python requests

Si ce n’est déjà fait installez la par :

Puis copiez/collez  le script python ci-dessous dans /home/pi/domoticz/script  dans un fichier que vous enregistrerez sous le nom que vous voulez.py

Vous ne changerez que dans la partie Paramétrage , les ip/ports, user/password et l’iDX propre à votre installation Domoticz.

et dans la partie DHT , le type de DHT et le GPIO.

Dans la partie basse du script il y a plusieurs print précédés de #, si il y a un problème enlevez le # et relancez le script pour voir ce qui ce passe.

Ensuite on rend ça exécutable par

puis on lance le script en question,

sudo ./nom_du_script.py

Et victoire

 

Lancement  du script via cron

Maintenant lançons ce script à intervalles réguliers

Plaçons le dans un crontab pour être exécuté à la fréquence que vous désirez

Pour cela un petit

http://fr.wikipedia.org/wiki/Crontab

et placer une ligne comme celle ci tout à la fin
*/10 * * * * sudo /home/pi/domoticz/scripts/le_nom_du_script.py

Qui dit que toutes les 10 minutes (*/10)

tous les jours * * * *

j’exécute le script nommé le_nom_du_script.py de /home/pi/domoticz/scripts/

Enregistrez vos modifs (CTRL x)

Vous constaterez que toutes les 10 minutes le composant Domoticz se met à jour.

Victoire

 

 

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/
Posted in domoticz, electronique, python, scripts and tagged , , , , , .

22 Comments

  1. Bonjour

    Version Domoticz : 3.5877

    D’abord merci pour ce tuto qui m’as bien aidé.Malgré tout il faut un peu mettre les mains dans le camboui , ce qui a mon sens oblige a comprendre ce que l’on fait.Donc ci après les points ou j’ai un peu cherché.

    Un fois ajouté un virtual sensor Temp+Humidité , pour récupéré l’ID il faut aller sur Réglages/Dispositif et non Matériels

    Sur cette ligne il manque un s sous peine de voir afficher que le fichier n’existe pas si l’on copie/colle directement dans la console:
    Puis copiez/collez ce script python dans /home/pi/domoticz/script(ici) dans un fichier que vous enregistrerez sous le nom que vous voulez.py

    Voila , tous ceci n’est pas bien grave , au cas ou cela peut aider quelqu’un , j’en serait ravi.

  2. I’m not a france speaking persone sorry. Can you Please help with this instruction. Can it work when the sensor DHT22 and DOMOTICZ software is on the same raspberry pi. I get te correct json string but get the error « No connection adapters were found for [http://127.0.0.1:]http://127.0.0.1:8080/json.htm?…

    I get the same error when I use my IP number on the ethernet interface.

    Can you please give some advice ?

     

     

     

  3. Pingback: Les DomoNews qu'il ne fallait pas manquer durant la semaine du 18/02 au 25/02

  4. Salut,

    Merci pour les bonnes infos de ta page qui m’ont bien aidé. Je te retourne donc l’ascenseur avec quelques petites remarques:

    le script python d’adafruit fonctionne avec les DHT11, DHT22 et AM2302 (qui est un DHT22 incluant déjà la résistance de pull-up) et non pas AM2308 (qui est un mosfet qui n’a rien à voir avec nos moutons).
    d’après les spécifications fabriquant, le DHT22 accepte une alimentation comprise entre 3.3V et 6V. Les DHT11 et AM2302 acceptent quant à eux une alimentation comprise entre 3.3 et 5.5V. On peut donc sans problème brancher ces composants sur le 5V d’un RPi (ce que j’ai d’ailleurs fait avec mon AM2302 pour éviter les interférences créées par sa mauvaise cohabitation avec un DS18B20 connecté sur le 3.3V en 1-wire).

  5. Bonjour
    C’est corrigé , merci et j’ai inclus tes remarques dans l’article.

  6. Hello Patrice,

    Thanks for your advice.

    I had the wrong code for the sensor. This is now correct (the same as your example).

    The sensor DHT 22 is now working with Domoticz !!!

    I can also confirm that the code is working when DHT 22 sensor is used on the same Raspberry PI where the Domoticz software is running. Use the pubic IP adres is this case. eg 192.168.1.10

    Good luck with these this great sensor !

    Previous message:

    « I’m not a france speaking persone sorry. Can you Please help with this instruction. Can it work when the sensor DHT22 and DOMOTICZ software is on the same raspberry pi. I get te correct json string but get the error « No connection adapters were found for [http://127.0.0.1:]http://127.0.0.1:8080/json.htm?…

    I get the same error when I use my IP number on the ethernet interface.

    Can you please give some advice ?’

  7. Hello, The script is working for me! Thank you for this script. I have only one issue. When the temperature is between for example 18.0, 18.5 and 19.0 then Domoticz shows it as: 18.399999986868. Do you know what the problem is?

    Ronald

  8. Hello, The script is working for me! Thank you for this script. I have only one issue. When the temperature is between for example 18.0, 18.5 and 19.0 then Domoticz shows it as: 18.399999986868. Do you know what the problem is?

  9. Hello,
    Strange ,
    What’s happend when you launch on the command line the python script ?
    Are the temperatures OK?

    The other thing I see is you choose a bad virtual component in Domoticz, not a temperature sensor but an energy, a liter component …

  10. Bonjour à tous,

    Etant un newbee sur la programmation j’ai suivi le tuto.

    Le widget de Domoticz ne se met pas à jour car  j’ai un message dans putty :

    pi@raspberrypi:~/domoticz/scripts$ ./DHT2302.py
    Temp=25.0* Humidity=42.1%
    Traceback (most recent call last):
    File « ./DHT2302.py », line 80, in <module>
    maj_widget(url)
    File « ./DHT2302.py », line 66, in maj_widget
    r=requests.get(requete,auth=HTTPBasicAuth(user, password))
    NameError: global name ‘requests’ is not defined

    Vous pouvez m’aider merci beaucoup

  11. Bonjour à tous
    Je suis un newbee dans le codage.
    J’arrive à tirer quelque chose du tuto mais le widget de domoticz ne se met pas à jour (les données de la sonde non plus).
    J’ai dans putty ce message :

    pi@raspberrypi:~/domoticz/scripts$ ./DHT2302.py
    Temp=25.0* Humidity=42.1%
    Traceback (most recent call last):
    File « ./DHT2302.py », line 80, in
    maj_widget(url)
    File « ./DHT2302.py », line 66, in maj_widget
    r=requests.get(requete,auth=HTTPBasicAuth(user, password))
    NameError: global name ‘requests’ is not defined

    Vous mpouvez m’aider ?

  12. Bonjour
    Tu n’as pas du installer le module python nommé requests, regarde l’article en question ou repasse ces 2 lignes en voyant si elles fonctionnent ou renvoient des erreurs

    sudo apt-get install python-pip
    sudo pip install requests

  13. Bonjour
    il manque la libraire python nommée requests, installe la comme cela

    sudo apt-get install python-pip
    sudo pip install requests

  14. Bonjour
    je suis novice mais j’ai suivi pas à pas votre tutoriel
    mais j’ai un problème

    pi@raspberrypi:~/Adafruit_Python_DHT/examples $ sudo ./AdafruitDHT.py 11 4
    Traceback (most recent call last):
    File « ./AdafruitDHT.py », line 24, in
    import Adafruit_DHT
    ImportError: No module named Adafruit_DHT

    quel est le problème ….

    Par avance merci et trés bonne approche pour les débutants

  15. excuses cela fonctionne (1ere )partie

    pi@raspberrypi:~/Adafruit_Python_DHT/examples $ sudo ./AdafruitDHT.py 11 4
    Temp=20.0* Humidity=43.0%
    merci pour ce soft

    maintenat domotiz….

    cordialement

  16. Hello Patrice,

    i choose the Temp + Humidity virtual component. When i run the script on command line i see the correct temprature numbers. What is strange when i look under setup –> devices then is see now 23.8 degrees. But when i look on the dashboard i see 23.8999996185.

  17. Bonjour

    Si vous mettez régulièrement à jour votre Raspberry PI , il peux vous arriver que certaines choses fonctionnant avant ne le sont plus après.

    Donc le drame après le passage à la version : Linux raspberrypi 4.9.19+ #983 Thu Mar 30 14:42:18 BST 2017 armv6l GNU/Linux

    Plus de réponse du capteur d’humidité DTH 11.

    En fouillant sur le WEB , je tombe sur ceci (voir le lien) . Vous pourrez voir que depuis la version 4.9.x le HARDWARE est passé de BCM 2709 à 2835

    Pour moi le plus simple as été de supprimer le dossier ADAFRUIT et de le réinstallé comme marqué au départ de cette excellent article.

    Espérant que cette expérience profitera a beaucoup, Salutations

     

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *