Hier, j'ai reçu de Chine mon DHT22 (en fait, c'est un AM2302 car la résistance de tirage est déjà sur le PCB). Ca marche nickel en utilisant le programme C fourni par Adafruit (et oui, ce capteur n'est pas 1-wire ) MAIS (il y a toujours un mais) le programme ne retourne pas forcément toujours les valeurs de T° et humidité :S
Quand ça se passe bien :
Code : Tout sélectionner
pi@raspberrypi ~ $ sudo ./Adafruit_DHT 22 4
Using pin #4
Data (40): 0x2 0x13 0x0 0xce 0xe3
Temp = 20.6 *C, Hum = 53.1 %
pi@raspberrypi ~ $
Code : Tout sélectionner
pi@raspberrypi ~ $ sudo ./Adafruit_DHT 22 4
Using pin #4
Data (40): 0x2 0x13 0x0 0xce 0xe3
pi@raspberrypi ~ $
Pour l'instant, j'ai contourné le problème en faisant ce genre de script bash :
Code : Tout sélectionner
/usr/local/bin/Adafruit/Adafruit_DHT 22 4 > /tmp/DHT22.out
OUT=`cat /tmp/DHT22.out | wc -l`
while [ $OUT -ne 3 ]
do
sleep 2
/usr/local/bin/Adafruit/Adafruit_DHT 22 4 > /tmp/DHT22.out
OUT=`cat /tmp/DHT22.out | wc -l`
done
TEM=`tail -1 /tmp/DHT22.out|awk -F',' '{print $1}'|awk '{print $3}'`
HUM=`tail -1 /tmp/DHT22.out|awk -F',' '{print $2}'|awk '{print $3}'`
echo "Il fait $TEM °C et l'humidité est de $HUM %"
Je compte le nombre de ligne, si 2 lignes alors j'attends 2 secondes et je relance une lecture.
Si 3 lignes, extraction des infos. Reste à appeler un autre programme, en Python, qui va aller enregistrer les 2 infos dans la BDD MySQL.
Pensez-vous que cela soit normal de ne pas avoir un résultat à chaque interrogation du capteur via le programme ?