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