Page 1 sur 3
DHT22
Publié : 09 nov. 2014, 21:18
par oli80330
Bonjour
J'ai installé un DHT 22 sur mon RPi.
En utilisant la bibliothèque Adafruit, script python ou C, j'ai toujours de nombreuses erreurs (retours sans valeurs de température et humidité).
Vous utilisez quel méthode pour lire vos sondes DHT11 ou 22 ?
Merci
Re: DHT22
Publié : 10 nov. 2014, 08:22
par patrice
Bonjour,
En ce qui me concerne je n'ai jamais pu obtenir de résultats corrects avec DHT22 et le Rasp
Autant avec un Arduino cela marche parfaitement que avec le Pi ...
J'envisage donc, mais j'ai un peu la flemme, de connecter DHT a un Arduino puis un bus I2C vers le Rasp,

Re: DHT22
Publié : 10 nov. 2014, 12:38
par oli80330
Ok je termercie
J'ai jamais essayé l'Arduino. C'est compliqué de l'interfacer avec le RPi ?
Re: DHT22
Publié : 11 nov. 2014, 08:50
par patrice
Bonjour
Non ce n'est pas vraiment compliqué mais c'est de la programmation pure et dure
D'autre part ce qui est compliqué c'est d'avoir UN Arduino plus son alim plus les cables de laision I2C vers le PI dédié à UN DHT
, disproportionné par rapport à l'usage que je veux en faire (humidité SDB)
Par contre mon expérience à moi n'est peux être pas représentative de l'ensemble
D'autres avis ?
Re: DHT22
Publié : 29 nov. 2014, 08:11
par nickos
bonjour
J'ai installé la bibliothèque Adafruit et pour moi sur un rpi cella fonctionne
Code : Tout sélectionner
mkdir adafruit
cd adafruit
wget https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/archive/master.zip
unzip master.zip
cd Adafruit-Raspberry-Pi-Python-Code-master/Adafruit_DHT_Driver/
Réponse avec
Code : Tout sélectionner
Using pin #4
Data (40): 0x0 0xfa 0x0 0xee 0xe8
Temp = 23.8 *C, Hum = 25.0 %
J'aurais une question, comment intégrer ces résulta dans domoticz avec des capteur virtuel?
J'ai tester cette méthode (
http://easydomoticz.com/raspberry-et-dht11/) mais j'ai une erreur d'autorisation quand je lance
Code : Tout sélectionner
sudo Adafruit_DHT 11 27
sudo: unable to resolve host PI
sudo: Adafruit_DHT: command not found
merci
Re: DHT22
Publié : 29 nov. 2014, 09:29
par patrice
Bonjour
C'est quoi ta distrib Linux ?
D'autre part je ne comprends pas la différence entre l éetape ou tu décrit que cela fonctionne et celle ou tu dis que cela fait l'erreur dans les 2 cas tu fait sudo adadafruit ....
Pour l'erreur je pense qu'il manque PI dans /etc/hosts and/ou /etc/hostname
Modifie à la main ou avec raspi-config
Re: DHT22
Publié : 30 nov. 2014, 12:05
par nickos
salut
1)
Ma distrib est raspbian. Est installé aussi squeezbox (vue que j'utilise ce rpi comme squeezplay ) et domoticz pour pouvoir recupéré les donnée de la sonde DHT22 dans la salle de bain que j'aimerais renvoyé sur un autre rpi avec mon domoticz principal. Oui je sais ça fait un peut usine a gaz mais jusque ici squeezbox et domoticz cohabite bien.
2)
fonctionne et
me donne l'erreur
3)
hosts
Code : Tout sélectionner
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 Salle De Bain
hostname
Mon probleme est que je n'arrive pas récupérer les donné de la sonde.J'ai suivie ce tuto
http://easydomoticz.com/raspberry-et-dht11/
Ma sonde est sur le gpio 4 elle fonctionne vue que je recupère les donnée avec
sudo ./Adafruit_DHT 22 4
J'ai créer un script dans /home/pi/domoticz/scripts que j'ai nommé sonde_dht22
#!/bin/sh
# Domoticz server
SERVER="192.168.1.10:8081"
# DHT IDX
# le numero de l IDX dans la liste des dispositifs Domoticz
DHTIDX="6"
#DHTPIN
# LE GPIO ou est connecte le DHT11
DHTPIN="4"
# si vous avez un DHT22 modifiez plus bas sur la ligne Adafruit_DHT 11 par Adafruit_DHT 22
# TMPFILE : chemin pour fichier temporaire a placer dans le RAMDRIVE pour eviter les
# ecritures sur la SD card
# sinon chemin ou sera ecrit le fichier contenant les temperature
# /tmp/temper.txt est un bon choix si pas de RAMDRIVE installe
# consultez
http://www.easydomoticz.com pour tout savoir
TMPFILE="/var/tmp/temper.txt"
while :
do
TEMP=""
sleep 5
sudo nice -20 Adafruit_DHT 22 $DHTPIN > $TMPFILE
TEMP=$(cat $TMPFILE|grep Temp |awk '{print $3}')
if [ $TEMP ]
then
TEMP=$(cat $TMPFILE|grep Temp |awk '{print $3}')
HUM=$(cat $ $TMPFILE |grep Temp |awk '{print $7}')
# echo $TEMP
# echo $HUM
# Send data
curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command¶m=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2"
TEMP=""
HUM=""
# rm $TMPFILE
fi
mais mon virtual device m'affiche toujour status 0°C,Humidité 50% donc ça ne fonctionne pas

Re: DHT22
Publié : 02 déc. 2014, 18:55
par nickos
bon j'ai trouvé la solution google est t'on ami.
info trouvé là
http://www.cannaweed.com/topic/190528-j ... -domoticz/
et là
http://www.domoticz.com/forum/viewtopic.php?f=12&t=2006
C'etais qu'une question de droit dans
et dans
un
et
avec mes recherche j'ai vue qu'on pouvait éclaté les résultats en trois, température+Humidité,Température et humidité.
Code : Tout sélectionner
#!/bin/sh
# Domoticz server
SERVER="Ip_de_domoticz:et_son_port"
# DHT IDX
# le numero de l'IDX dans la liste des dispositifs Domoticz
DHTIDX="Idx_temp+hum"
DHTIDX2="temp"
DHTIDX3="hum"
#DHTPIN
# LE GPIO ou est connecte le DHT22
DHTPIN="4"
# si vous avez un DHT22 modifiez plus bas sur la ligne Adafruit_DHT 11 par Adafruit_DHT 22
# TMPFILE : chemin pour fichier temporaire a placer dans le RAMDRIVE pour eviter les
# ecritures sur la SD card
# sinon chemin ou sera ecrit le fichier contenant les temperature
# /tmp/temper.txt est un bon choix si pas de RAMDRIVE installe
# consultez www.easydomoticz.com pour tout savoir
TMPFILE="/var/tmp/temper.txt"
TEMP=""
until [ -n "$TEMP" ] ; do
sleep 5
sudo nice -20 Adafruit_DHT 22 $DHTPIN > $TMPFILE
TEMP=$(cat $TMPFILE|grep Temp |awk '{print $3}')
done
TEMP=$(cat $TMPFILE|grep Temp |awk '{print $3}')
HUM=$(cat $TMPFILE |grep Temp |awk '{print $7}')
# Send data
curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command¶m=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2"
curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command¶m=udevice&idx=$DHTIDX2&nvalue=0&svalue=$TEMP"
curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command¶m=udevice&idx=$DHTIDX3&nvalue=0&svalue=$HUM"
TEMP=""
HUM=""
mais et oui y'a un mais l'humidité seul ne s'affiche pas.pourquoi ça ne peut pas marché du premier coup

Re: DHT22
Publié : 02 déc. 2014, 21:34
par patrice
Bonsoir
LE plus probable est que tu as oublie à la fin de la ligne de HUM un;2 pour le HUM_STAT
/json.htm?type=command¶m=udevice&idx=IDX&nvalue=45&svalue=HUM;HUM_STAT
The above sets the parameters for a Humidity device
IDX = id of your device (This number can be found in the devices tab in the column "Idx")
HUM = Humidity: 45%
HUM_STAT = Humidity_status: 2 (Dry)
Sinon parce que le capteur que tu tente de renseigner avec ton IDX3 n'est pas un capteur humidité
Re: DHT22
Publié : 07 déc. 2014, 16:38
par nickos
salut patrice
pour le ";2" de la ligne de HUM, ça ne fonctionne pas non plus.
le capteur qui renseigner l' IDX3 est un capteur virtuel d'humidité LaCrossTx3
ce que je comprend pas c'est qu'avec le capteyur de temperature ça fonctionne super bien.