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
|
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%
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.
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é.
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é ,
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
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¶m=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¶m=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.
Un énorme merci, après des heures de prise de tête voici enfin la solution. 🙂
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.
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 ?
Bonjour
merci des remarques, j’ai corrigé les points ci-dessus
Hello
Yes it works with the DHT22.
Your error is not related to the DHT22 but to the python file.
Try the responses here https://www.google.fr/search?client=ubuntu&channel=fs&q=No+connection+adapters+were+found+for+&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=DcutWJStDLD_8AeZ66y4Bw
And say us wich response is the good one for for you
Pingback: Les DomoNews qu'il ne fallait pas manquer durant la semaine du 18/02 au 25/02
pour le crontab il manque un espace entre le sudo et /home/pi/… 😉
merci de la remarque , c’est corrigé
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).
Bonjour
C’est corrigé , merci et j’ai inclus tes remarques dans l’article.
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 ?’
Ronald
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?
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 …
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
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 ?
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
Bonjour
il manque la libraire python nommée requests, installe la comme cela
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
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
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.
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.
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
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
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 🙂
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 ?
Bonjour
Pour l’erreur dans le script , que ce passe t’il si tu lance sudo ./AdafruitDHT.py 2302 4 ?
@ Oli80330 super merci. Il est maintenant fixé
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.
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.
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
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)
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.
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)
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
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.
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
bonjour
oui tu as oublieé d’indiquer le type de capteur que tu as sur la sligne
sensor=
exemple du blog
#
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/
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
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 !
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 »
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 ?
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
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
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
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)
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
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
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?
J’ai trouvé mon erreur : pin=4 et non 7 pour le GPIO4
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.
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
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
Thank you!
I have some remote pi zero wifi with dht22 sensors and read data from them using your script, great!
My Pleasure !
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
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.
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 🙂
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
Merci pour le tuto cela fonctionne chez moi
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
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.