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.

git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo apt-get update
sudo apt-get install build-essential python-dev python-openssl
sudo python setup.py install

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

cd examples
sudo ./AdafruitDHT.py 11 4
Temp=23.0* Humidity=37.0%
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.
Traceback (most recent call last):
 File "./AdafruitDHT.py", line 41, in <module>
 humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
 File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 90, in read_retry
 File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 77, in read
 File "build/bdist.linux-armv7l/egg/Adafruit_DHT/Raspberry_Pi_2.py", line 34, in read
 RuntimeError: Error accessing GPIO.
Tapez sudo raspi-config puis dans le point 8 « Advanced Options », faites un « Enable Device Tree » et rebootez.
Vérifiez que tout fonctionne avec :
AdafruitDHT 11 4

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 :

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

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

#!/usr/bin/python
# -*- coding: latin-1 -*-

# basé sur le script Adafruit et adapté pour Domoticz



# Copyright (c) 2014 Adafruit Industries
# Author: Tony DiCola

# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:

# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

import os
import sys
import Adafruit_DHT
from requests.auth import HTTPBasicAuth
import requests


############# Parametres ################################# 

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

domoticz_ip='192.168.1.81'
domoticz_port='8080'
user=''
password=''
domoticz_idx=44


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres du DHT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#sensor est 11,22,ou 2302
# pin est le numero d la pin que vous avez cablée

sensor=11
pin=18

############# Fin des parametres ################################# 


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# le fomat pour la temp hum est celui ci
#/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP;HUM;HUM_STAT
             

def maj_widget(val_url):
    requete='http://'+domoticz_ip+':'+domoticz_port+val_url
    #print requete
    r=requests.get(requete,auth=HTTPBasicAuth(user,password))
    if  r.status_code != 200:
          print "Erreur API Domoticz"



humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

if humidity is not None and temperature is not None:
    
    print('Temp={0:0.1f}*  Humidity={1:0.1f}%'.format(temperature, humidity))
    # l URL Domoticz pour le widget virtuel 
    url='/json.htm?type=command&param=udevice&idx='+str(domoticz_idx)
    url+='&nvalue=0&svalue='
    url+=str('{0:0.1f};{1:0.1f};2').format(temperature, humidity)
    #print url
    maj_widget(url)

else:
    print('Probleme avec la lecture du DHT. Try again!')
    sys.exit(1)

Edit du 17/07 ; Un formatage sur 2 décimales à été effectué lors de l’envoi vers Domoticz plutôt que les dix décimales usuelles. Merci à Yannick.

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

 chmod +x /home/pi/domoticz/scripts/nom_du_script.py

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

crontab -e

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 , , , , , .

62 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. Bonjour,

    J’ai suivi votre tuto (et suis débutant).

    J’ai une erreur lorsque j’essaie de lancer manuellement le script python. J’ai raspberry pi2 et ne trouve l’option device tree enable. Quand je lance raspi-config : je ne trouve pas l’option device-tree ?

    Voici, l’erreur.

    Merci pour votre aide

    Alex

    pi@kodi:~/domoticz/scripts$ sudo ./temp_hum_AM2302.py
    Traceback (most recent call last):
    File « ./temp_hum_AM2302.py », line 76, in <module>
    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
    File « build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py », line 94, in read_retry
    File « build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py », line 78, in read
    ValueError: Expected DHT11, DHT22, or AM2302 sensor value.

  17. 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.

  18. 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

     

  19. Bonjour Patrice.

    Si tu peux changer mon pseudo , merci d’avance , Olivier (ald Petites Précisions) serait plus sympa.

    Sinon j’ai vu un truc , si tu fais l’acquisition de la sonde d’humidité sans être connecté à Ethernet/internet

    Il n’y as plus d’enregistrement dans le fichier log dédié à ta sonde

    Par contre les sondes de températures (DS) ou mesure température CPU,Ram et % occupation CPU continu à s’enregistrer.

    Peut être une idée ?

    Bonne journée

     

     

  20. Merci à tous j’y suis arrivé.

    Ronald > pour arrondir modifie le ton fichier comme suit :

    url+=str(round(temperature,1))+’;’+str(humidity)+’;2′

    24,52222222 > 24,5   🙂

  21. Bonjour
    Pas trop d’idée pour le log , mais je ne suis pas sur de comprendre.
    Ca veut dire que tu n’a aucune données de ta sonde ou que il n’y a que le log de Domoticz qui ne se remplit pas ?

  22. Bonjour
    Pour l’erreur dans le script , que ce passe t’il si tu lance sudo ./AdafruitDHT.py 2302 4 ?

  23. Bonjour,

    J’ai suivi le tuto et je rencontre deux problèmes au niveau du script :

    1- « chmod : command not found »

    2- si j’essaye de lancer le script depuis python : ImportError: No module named ‘Adafruit_DHT’

     

    j’ai pourtant fait tous les update/upgrade…

    et lorsque je me place dans le fichier examples et que je lance la commande en sudo directement depuis le terminal j’affiche bien la température et l’humidité…

     

    Merci d’avance pour votre aide.

  24. Bonjour,

    J’ai le problème du « enable device tree » mais lorsque je vais dans raspi-config, je n’ai rien dans advanced option (d’ailleurs il est en position 7 et non 8).

    J’ai un raspberry pi 3.

    Merci d’avance pour votre aide.

  25. Bonjour
    chmod est une commande de base de Linux, ce n’est pas possible que on te dise « Command not found », verifie de bien etre en minuscules

    Lorsque tu écris que « tu lances depuis python » , s’agit t’il du répertoire python ?
    Si oui cela est normal car dans le dossier /python le programme Adafruit_DHT n’existe pas, et en effet il est dans le fichiers examples, il te suffira donc de copier Adadafruit_DHT de examples vers ton dossier /python

  26. Bonjour,

    Je suis débutant mais si mon script fonctionne impossible de le mettre dans une crontab.

    J’ai systématiquement un message d’erreur… (pas de crontab)

     

  27. Bonsoir
    Quelle est ta distribution linux
    L’erreur survient quand ?
    Comment est tu connecté (un utilisateur ayant des droits root, un utilisateur normal ?)
    bref donnes nous un peu de contexte.

  28. J’ai une raspbian Jessy.  Je saisie via nano dans un fichier /tmp/crontab.Ui9Jqe/crontabl  ma ligne : */10**** sudo /home/domoticz/domoticz/scripts/Capteur_DHT11.py

    Je sauvegarde Control x, je valide par O et le nom du fichier à écrire s’inscrit :

    /tmp/cromtab.Ui9Jqe/crontab    je tape envoi pour valider et j’ai ceci :

    pi@raspberrypi:~ $ sudo crontab -e
    crontab: installing new crontab
    « /tmp/crontab.Ui9JQe/crontab »:23: bad command
    errors in crontab file, can’t install.
    Do you want to retry the same edit? (y/n)

  29. Bonsoir
    Bien c’est plus clair
    La SEULE commande à utiliser sous Linux pour mettre à jour crontab est …
    crontab -e
    pour peu que tu soit loggé avec l’utilisateur pi
    donc :
    tu vas supprimer le contenu de ton fichier /tmp/crontab.Ui9Jqe/crontab qui n’a pas de rapport, mais faisons propre et pédagogique.
    puis juste un crontab -e
    et tu mets dedans
    */10 * * * * sudo /home/domoticz/domoticz/scripts/Capteur_DHT11.py
    comme c’est indiqué sur l’article du blog
    et voila ça roule

  30. en fait, j’avais déjà essayé exactement comme indiqué mais effectivement le message d’erreur est différent : c’est « no crontab for pi – usibg an empty one

    crontab: installing new crontab

    « /tmp/crontab.eP7CAJ/crontab »:23: bad command

    errors in crontab file, can »t install.

  31. bonjour ,

    Excellent tuto , j’ai testé ma sonde avec /domoticz/scripts $ sudo ./AdafruitDHT.py 2302 4

    les valeurs s’affichent bien :

    Temp=25.4* Humidity=60.0%

    par contre si je rentre /domoticz/scripts $ sudo ./am2302.py

    je me retrouve avec le même problème que ALEX ,
    Traceback (most recent call last):
    File « ./am2302.py », line 76, in <module>
    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
    File « build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py », line 94, in read_retry
    File « build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py », line 78, in read
    ValueError: Expected DHT11, DHT22, or AM2302 sensor value.

    vous n’auriez pas une idée sur le problème ?

    merci pour votre aide

     

  32. bonjour
    oui tu as oublieé d’indiquer le type de capteur que tu as sur la sligne
    sensor=
    exemple du blog

    #

    sensor est 11,22,ou 2302
    # pin est le numero d la pin que vous avez cablée

    sensor=11
    pin=18

  33. bonsoir
    il y a un pb dans sur une ligne existante dans ton crontab
    il n’arrive pas a comprendre que quoi il s’agit et affiche cette erreur
    il faut que les lignes de crontab soit en une seuleligne , pas de retour a la ligne, des expages entre les *
    des dates , heures correctes

    regarde ici https://crontab-generator.org/

  34. bonjour
    oui tu as oublieé d’indiquer le type de capteur que tu as sur la sligne
    sensor=
    exemple du blog

    #

    sensor est 11,22,ou 2302
    # pin est le numero d la pin que vous avez cablée

    sensor=11
    pin=18

  35. pourtant les indication sont corrects

    2302 cela correspond bien a mon sensor

    et 7 c’est le numero pin 7 qui correspond a gpio4

    #sensor est 11,22,ou 2302
    # pin est le numero d la pin que vous avez cablée

    sensor=2302
    pin=7

    par contre si je modifie le sensor par 11 ou 22 il m’indique

    Probleme avec la lecture du DHT. Try again!

    ce qui est normal, mais quand je marque 2302 il m’indique toujours l’erreur

    Traceback (most recent call last): File « ./am2302.py », line 76, in <module> humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) File « build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py », line 94, in read_retry File « build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py », line 78, in read ValueError: Expected DHT11, DHT22, or AM2302 sensor value.

    je ne comprends pas !

     

  36. bonjour ,

    j’ai un dossier complètement vide

    quand je fais un « ls » sur ce dossier  il n’y a rien , il est vide !

    /home/pi/Adafruit_Python_DHT/build/bdist.linux-armv7l

    le message d’erreur fait reference a  « build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py »

     

  37. j’ai un message d’erreur a l’installation , a l’etape

    /Adafruit_Python_DHT $ sudo python setup.py install

    running install
    running bdist_egg
    running egg_info
    writing Adafruit_DHT.egg-info/PKG-INFO
    writing top-level names to Adafruit_DHT.egg-info/top_level.txt
    writing dependency_links to Adafruit_DHT.egg-info/dependency_links.txt
    reading manifest file ‘Adafruit_DHT.egg-info/SOURCES.txt’
    writing manifest file ‘Adafruit_DHT.egg-info/SOURCES.txt’
    installing library code to build/bdist.linux-armv7l/egg
    running install_lib
    running build_py
    running build_ext
    creating build/bdist.linux-armv7l/egg
    creating build/bdist.linux-armv7l/egg/Adafruit_DHT
    copying build/lib.linux-armv7l-2.7/Adafruit_DHT/Test.py -> build/bdist.linux-armv7l/egg/Adafruit_DHT
    copying build/lib.linux-armv7l-2.7/Adafruit_DHT/Raspberry_Pi_2.py -> build/bdist.linux-armv7l/egg/Adafruit_DHT
    copying build/lib.linux-armv7l-2.7/Adafruit_DHT/Raspberry_Pi.py -> build/bdist.linux-armv7l/egg/Adafruit_DHT
    copying build/lib.linux-armv7l-2.7/Adafruit_DHT/Beaglebone_Black.py -> build/bdist.linux-armv7l/egg/Adafruit_DHT
    copying build/lib.linux-armv7l-2.7/Adafruit_DHT/common.py -> build/bdist.linux-armv7l/egg/Adafruit_DHT
    copying build/lib.linux-armv7l-2.7/Adafruit_DHT/Raspberry_Pi_2_Driver.so -> build/bdist.linux-armv7l/egg/Adafruit_DHT
    copying build/lib.linux-armv7l-2.7/Adafruit_DHT/__init__.py -> build/bdist.linux-armv7l/egg/Adafruit_DHT
    copying build/lib.linux-armv7l-2.7/Adafruit_DHT/platform_detect.py -> build/bdist.linux-armv7l/egg/Adafruit_DHT
    byte-compiling build/bdist.linux-armv7l/egg/Adafruit_DHT/Test.py to Test.pyc
    byte-compiling build/bdist.linux-armv7l/egg/Adafruit_DHT/Raspberry_Pi_2.py to Raspberry_Pi_2.pyc
    byte-compiling build/bdist.linux-armv7l/egg/Adafruit_DHT/Raspberry_Pi.py to Raspberry_Pi.pyc
    byte-compiling build/bdist.linux-armv7l/egg/Adafruit_DHT/Beaglebone_Black.py to Beaglebone_Black.pyc
    byte-compiling build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py to common.pyc
    byte-compiling build/bdist.linux-armv7l/egg/Adafruit_DHT/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-armv7l/egg/Adafruit_DHT/platform_detect.py to platform_detect.pyc
    creating stub loader for Adafruit_DHT/Raspberry_Pi_2_Driver.so
    byte-compiling build/bdist.linux-armv7l/egg/Adafruit_DHT/Raspberry_Pi_2_Driver.py to Raspberry_Pi_2_Driver.pyc
    creating build/bdist.linux-armv7l/egg/EGG-INFO
    copying Adafruit_DHT.egg-info/PKG-INFO -> build/bdist.linux-armv7l/egg/EGG-INFO
    copying Adafruit_DHT.egg-info/SOURCES.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
    copying Adafruit_DHT.egg-info/dependency_links.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
    copying Adafruit_DHT.egg-info/top_level.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
    writing build/bdist.linux-armv7l/egg/EGG-INFO/native_libs.txt
    zip_safe flag not set; analyzing archive contents…
    creating ‘dist/Adafruit_DHT-1.3.2-py2.7-linux-armv7l.egg’ and adding ‘build/bdist.linux-armv7l/egg’ to it
    removing ‘build/bdist.linux-armv7l/egg’ (and everything under it)
    Processing Adafruit_DHT-1.3.2-py2.7-linux-armv7l.egg
    Removing /usr/local/lib/python2.7/dist-packages/Adafruit_DHT-1.3.2-py2.7-linux-armv7l.egg
    Copying Adafruit_DHT-1.3.2-py2.7-linux-armv7l.egg to /usr/local/lib/python2.7/dist-packages
    Adafruit-DHT 1.3.2 is already the active version in easy-install.pth

    Installed /usr/local/lib/python2.7/dist-packages/Adafruit_DHT-1.3.2-py2.7-linux-armv7l.egg
    Processing dependencies for Adafruit-DHT==1.3.2
    Finished processing dependencies for Adafruit-DHT==1.3.2

    donc voila pourquoi les dossiers ne sont pas copiez

    zip_safe flag not set; analyzing archive contents…

    qui peut me dire ce que ce message signnifie ?

     

  38. Bonjour,

    Tout fonctionne parfaitement, j’ai juste modifié la ligne 84 du script pour avoir l’affichage avec une seule décimale dans Domoticz, car parfois j’avais une dizaine de chiffres après la virgule (assez illisible).

    Voici la modification :
      url+=str(‘{0:0.1f};{1:0.1f};2’).format(temperature, humidity)

       Ce qui correspond à ce qui est affiché sur la console si on lance en ligne de commande (en terme de précision).

    Yannick

  39. Bonjour,

    mon instal c’est bien déroulé mais lorsque je lance le programme python il me met ce message d’erreur :  File « ./dht.py », line 84
    <span class= »crayon-s »> url+=str(?{0:0.1f};{1:0.1f};2?).format(temperature, humidity)</span>
    ^
    IndentationError: unindent does not match any outer indentation level

    Si je vire la ligne, j’ai bien les valeurs de ma sonde.

    Merci pour votre aide

  40. Bonsoir
    oui en effet, mauvais affichage du script dans le blog, je viens de corriger cela, tu peux reprendre le script en question ou supprimer le

    truc "span class= »crayon-s »" et les signes « <" et "> » devant pour la ligne url+=str(‘{0:0.1f};{1:0.1f};2’).format(temperature, humidity)
    dans ton script

  41. Merci pour l’aide mais il y a aussi une erreur dans les apostrophes :  url+=str(‘{0:0.1f};{1:0.1f};2’).format(temperature, humidity)

  42. Bonjour,

    Superbe tuto. Je suis à deux doigts de réussir. mais j’ai un problème au niveau du script.

    Je pense qu’il y’a un soucis avec la ligne 84:
    url+=str(‘{0:0.1f};{1:0.1f};2’).format(temperature, humidity)

    A la place du signe en gras j’ai un caractère non reconnu.

    url+=str({0:0.1f};{1:0.1f};2).format(temperature, humidity

    J’ai bien essayé de le modifier mais il ne s’agit pas de l’apostrophe classique (celui de la touche 4 de mon clavier) .

    Quelqu’un à une idée?
    merci

  43. Bonjour,
    Je viens de reprendre cette ligne foireuse dans l’editeur de script de WordPress et de la corriger, à priori c’est correct maintenant
    tu peux faire un copier/coller de tous le script , ca fonctionne correctement chez moi

  44. Merci Patrice pour ton retour.

    Apparemment j’ai toujours un problème. Le script me renvoi le message suivant:

    Problème avec la lecture du DHT. Try again.

    Pourtant quand je lance la commande sudo ./AdafruitDHT.py 11 4 cela fonctionne correctement.

    J’ai bien modifié le script avec Pin=7 et sensor=22

    Une idée?

  45. Bonsoir à tous,

     

    super script!! Je cherche à être précis à 0,5 degré près.

    Pouvez-vous, s’il vous plaît, me dire si le DHT11 peut donner cette précision ?

    Si oui, comment faire ?

    J’ai ajouté un second chiffre après la virgule mais j’ai par exemple 23,00 degrés. Je n’arrive pas à avoir une valeur comme par exemple 23,10.

     

    merci pour votre aide.

  46. Bonjour,

    merci pour ce script détaillé.
    Néanmoins, j’ai le problème suivant
    pi@raspberrypi:~ $ chmod +x /home/pi/domoticz/scripts/DHT22-2.py
    chmod: modification des droits de « /home/pi/domoticz/scripts/DHT22-2.py »: Opération non permise

    Comment s’autoriser un droit de modification?
    De même lorsque j’essaye de modifier les scripts écris avec WinSCP j’ai le même type de message
    Permission insuffisante
    Code d’erreur : 3
    Message d’erreur du serveur : Permission denied

    Merci d’avance pour vos lumières

  47. Bonjour
    Il s’agit d’un probleme de droits sur ton script, l’utilisateur que tu utrilise n’a pas assez de droits pour modifier les droits

  48. Salut
    Alors un grand merci pour ce tuto qui est très bien fait.
    N’étant pas une expert en Python (moi et le dev…. ^^) je me demandais s’il était possible de modifier le script de manière à alimenter 3 devices virtuels sous Domoticz
    L’idée serait de récupérer une valeur Température et une valeur HR sur 2 capteurs séparés de manière a créer des événements en fonction de ces valeurs dans Domoticz.

    Merci en tout cas pour le tuto et le taf accompli ca correspond exactement a ce que je cherchai

  49. RAS j’ai finalement trouvé 🙂

    J’ai ajouté 2 variables idx pour configurer mes 2 devices virtuels sous domoticz, puis j’ai dupliqué ton code en l’adaptant pour ne récupérer, à chaque fois qu’une seule des deux valeurs.

    domoticz_idx2=10
    domoticz_idx3=11

    print(‘Temp={0:0.1f}*’.format(temperature))
    url=’/json.htm?type=command&param=udevice&idx=’+str(domoticz_idx2)
    url+=’&nvalue=0&svalue=’
    url+=str(‘{0:0.1f}’).format(temperature)
    #print url
    maj_widget(url)

    print(‘Humidity={0:0.1f}%’.format(humidity))
    url=’/json.htm?type=command&param=udevice&idx=’+str(domoticz_idx3)
    url+=’&nvalue=0&svalue=’
    url+=str(‘{0:0.1f}’).format(humidity)
    #print url
    maj_widget(url)

    Attention : Pour récupérer l’HR sur Domotics il faut créer un device Vortuel en Pourcentage (et pas en Humidité)

    Mais ca permet néanmoins d’avoir les 2 infos séparées et de les utiliser dans des programmations différentes.

     

    Encore merci pour le tuto 🙂

  50. Bonjour à vous tous,

    je n’arrive pas a transfère mes donner dans Domoticz
    avec cette fonction en mode SSH j’ai bien les résultas tout va bien sur le GPIO 24
    sudo /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 22 24

    dans le scripts j’ai bien mit le IP, user, password,IDX le sensor et IDX
    mais pour quoi que sur la page de domoticz je n’est pas les donner

    dans crontab je les mit au 5 minutes le script
    */5 * * * * /home/pi/domoticz/scripts/DHT.PY

    Merci de nous aider

  51. Bonjour,
    Tu as du te tromper dans les ip/user/pasword /idx
    sinon dans le script tu enleve le # devant #print url
    et tu regarde ce que ca affiche comme url , cela doit être celle de ton Domoticz
    Si tu copie/colle cette url dans un navigateur Domotiz doit mettre à jour les infos

  52. Merci pour ce tuto !
    Avant d’exécuter le script python d’installation (sudo python setup.py install), il est apparemment nécessaire d’installer également au préalable la librairie python associée.
    Pour ce faire, un simple « sudo apt-get install python-setuptools » devrait suffire.

Comments are closed.