Domoticz met DHT-22 sensor

Naast de Dallas sensor was ik ook nog in het bezit van een DHT-22. Deze had ik altijd al in de meterkast om daar de temperatuur en luchtvochtigheid te meten. Om de DHT-22 met Domoticz te laten samenwerken is er meer nodig.

De DHT-22 heeft dezelfde 4 pinnen als de DHT-11, dus heb ik een rode draad op de +3,3V, een bruine draad op de data en een zwarte draad op de GND pin gesoldeerd. Tussen de rode spanning en de data op de bruine draad moet een 4K7 weerstand aangesloten worden.

Domoticz heeft een bestand van Adafruit nodig:

sudo wget https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/ -O Adafruit_DHT
sudo cp Adafruit_DHT /usr/bin/
sudo chmod 777 /usr/bin/Adafruit_DHT

De bruine data draad sluit ik aan op GPIO 17 (Pin 11), rood op +3,3V (Pin 1 of 17) en zwart op GND (Pin 6,9,20,25,30,34 of39), vervolgens kun je via Putty testen of het werkt (22 staat voor DHT 22 sensor en 17 voor de gebruikte GPIO Pin):

sudo Adafruit_DHT 22 17

In Domoticz maakt je vervolgens een Dummy, Virtuele Temp&Hum sensor aan en je maakt het volgende bestand:

touch /var/tmp/temper.txt

Je maakt nu het bestand /home/pi/domoticz/scripts/dht22.sh en plakt onderstaand script er in. Verander je IP adres en Idx van de net aangemaakte virtuele sensor en GPIO17:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash

# Domoticz server
SERVER="192.168.2.3:8080"

# DHT IDX
# le numéro de l IDX dans la liste des peripheriques
DHTIDX="18"
#DHTPIN
# LE GPIO ou est connecte le DHT11
DHTPIN="17"

# 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"
# modif de patrick du 08/03/15 pour interroger que 5 fois maxi
cpt=0
while [ $cpt -lt 6 ]
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&param=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2"
TEMP=""
HUM=""
rm $TMPFILE
exit 0
fi
#echo $cpt
cpt=$(($cpt+1))
done
exit 1

Nu maken we het bestand uitvoerbaar:

chmod +x /home/pi/domoticz/scripts/dht22.sh

Om regelmatig (iedere 5 minuten) de temperatuur en luchtvochtigheid uit te lezen voegen we onderstaande regel toe aan Domoticz:

crontab -e

*/5 * * * * /home/pi/domoticz/scripts/dht22.sh

meterkast

Bron: http://easydomoticz.com/raspberry-et-dht11/#more-325

Bewaren

Reacties

reacties

41 reacties op “Domoticz met DHT-22 sensor

  1. yes I did all your instructions
    Now I’m back to 17 and it looks like:
    pi@raspberrypi ~ $ sudo Adafruit_DHT 22 17
    Using pin #17
    Data (0): 0x0 0x0 0x0 0x0 0x0
    Maybe I should make some other arrangements to let Domoticz to see GPIO’s?

  2. chmod +x /home/pi/domoticz/scripts/nom_du_script.sh
    chmod: veranderen van toegangsrechten van ‘/home/pi/domoticz/scripts/nom_du_script.sh’: Bewerking niet toegestaan

    Wat hier mee te doen..
    in domoticz geen waarde te zien wel via putty.
    Data (39): 0x26 0x0 0x14 0x0 0x3a
    Temp = 20 *C, Hum = 38 %

  3. Leuk artikel. Ik heb de sensor inmiddels besteld. Nog een paar dingen die ik niet zo goed begrijp:
    – “Tussen de rode spanning en de data op de zwarte draad moet ook weer een 4K7 weerstand aangesloten worden”. Die moet zijn op de rode draad en de bruine draad toch??

    – Je sluit de data aan op pin 17, maar volgens jouw plaatje is dat 3.3V. Hoe zit dat precies?

  4. Pingback: Domotica wensenlijstje

  5. Beste hr Oldenburger,

    ik heb meerdere raspberry’s waarop verschillende applicaties draaien. Op 2 daarvan probeer ik een DHT22 werkend te krijgen. Op de pi zonder domoticz lukt dit maar ik krijg het niet werkend onder domoticz. Ik krijg steeds 2 meldingen:
    a) Adafruit_DHT lib niet aanwezig
    b) eea als root draaien.

    Ik heb deze Pi diverse keren helemaal schoongemaakt en de instructies van uw site gevolg maar geen resultaat. Wat mis ik of doe ik niet goed?

  6. Hoi Gertjan,

    Bedankt voor je beschrijving.

    Hopelijk kan jij mij helpen, ik heb de stappen zoals hierboven vermeld staan doorgelopen.

    Helaas krijg ik bij sudo Adafruit_DHT 22 27 (27 is mijn GPIO) een output van Data (0): 0x0 0x0 0x0 0x0 0x0. Het bestand de juiste permissies (gecheckt!).

    Een ander DHT script van Adafruit (https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/software-install-updated) gaf wel output (Temp=9.1* Humidity=72.1%) dus aan de bekabeling/DHT22/GPIO zal het niet liggen.

    Alvast heel hartelijk dank voor je reactie.

    Gr.

    Wouter

    • Vervelende dat het niet werkt bij jou. Waarom is moeilijk te achterhalen (reboot gedaan?).

      Heb je meegestuurde link even kort bekeken. Je zou dat script ook kunnen gebruiken, alleen moet je dan nog zorgen dat het in Domoticz komt. Hoe dat moet, weet ik niet. Misschien even kijken op het Domoticz forum, of de vraag daar stellen. Lees graag het vervolg.

  7. Hoi Gertjan,

    Bedankt voor je bericht! Reboot idd gedaan ;-).

    Ik al het forum eens bezoeken.

    P.s. op lijn 27 moet > een dakje naar rechts zijn (>). Zie ook het Franse script.

  8. Gertjan,
    Ik probeer de DHT op de raspberry te plaatsen.
    Onder een Arduino werht die sensor.
    Maar Als ik jouw procedure volg krijg ik een fout
    dat het bestand er niet is.

    sudo wget http://goo.gl/oadpl -O Adafruit_DHT

    klopt dat adres wel?

    Dick

  9. Wat je misschien ook een optie is, is om ESP8266 te gebruiken voor de sensor(en).
    Het enige wat je daarvoor nodig hebt is een micro-usb voeding en de data wordt over Wifi naar de Domoticz (Pi) gestuurd.

  10. Beste Gertjan
    grijg bij comando
    sudo Adafruit_DHT 22 17
    fout /usr/bin/Adafruit_DHT: Syntax error: newline unexpected

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*