W tym artykule opiszę jak podłączyć jeden z najbardziej popularnych i najtańszych czujników temperatury i wilgotności DHT 11. Do jego podłączenia będą potrzebne 3 kable (męsko-męski). Rezystor 4,7Ω oraz Nasze Raspberry Pi.
Czujnik ten występuje w kilku wariantach. Jeden bardziej nadaje się do wpięcia do płytki stykowej z racji cienkich nóżek a drugi jest nieco droższy ale nie trzeba bawić się już z rezystorem i ma diodę informującą o tym, że jest podpięty do zasilania – zdecydowanie bardziej polecam gdyż łatwiej go podłączyć bezpośrednio do Raspberry. W moim przypadku opisałem jednak tą tańszą wersję.

Parametry techniczne czujnika:
Dane techniczne:
- Interfejs wyjścia: 1 wire
- Krótki czas odpowiedzi
- Stabilność pomiarów w całym zakresie pomiaru
- Wysoka wytrzymałość i niezawodność
- Zasilanie: 3,5 – 5,5V
- Niski pobór prądu
- Zakres pomiaru temperatury: 0 – 50 st. C
- Dokładność pomiaru temperatury: ±2,0 st. C
- Zakres pomiaru wilgotność: 20% – 95%RH
- Dokładność pomiaru wilgotności: ±5,0%RH
Czujnik do kupienia w sklepie electropark.pl (http://electropark.pl/czujniki-wilgotnosciwilgotnosci/2853-dht11-czujnik-temperatury-i-wilgotnosci.html)
Podłączenie do Raspberry Pi:
- VCC – podłączamy do 3,3V albo 5V w Raspberry Pi
- DATA – podłączamy do Pinu GPIO 4 w Raspberry Pi (pomiędzy VCC a DATA wpinamy Rezystor 4,7Ω lub 10Ω)
- Pozostawiamy pusty
- Podłączamy do GND w Raspberry Pi

Gdy już wszystko mamy poprawnie podłączone logujemy się do Naszego Raspberry przez SSH.
W konsoli wpisujemy kolejno:
sudo apt-get install git-core
sudo apt-get update
sudo apt-get install -y python3 python3-pip python-dev
sudo pip3 install rpi.gpio
sudo apt-get update
sudo apt-get install build-essential python-dev
sudo git clone http://github.com/adafruit/Adafruit_Python_DHT.git
-
cd Adafruit_Python_DHT
sudo python setup.py install
-
cd examples
sudo chmod +x AdafruitDHT.py
sudo ./AdafruitDHT.py 11 4
Po wpisaniu ostatniej komendy powinniśmy otrzymać Nasze odczyty. Powinno to wyglądać mniej więcej tak:

Widać na nich, że Nasza temperatura to 24 stopnie a wilgotność 34.
Gdy wszystko działa poprawnie należy dodać w systemie Domoticz „Wirtualny Przełącznik” o czym pisałem w tym artykule…tylko w akurat w tym przypadku w typie przełącznika należy ustawić „Temp+Wilg”.
Należy zapamiętać IDX tego przełącznika i utworzyć plik, który będzie automatycznie odczytywał wartości temperatury i wilgotności z czujnika i przesyłał je do systemu Domoticz.
Aby to zrobić wpisujemy w konsoli kolejno:
sudo nano temp.sh
W nowo otwartym pliku wklejamy poniższy kod:
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 |
#!/bin/sh # Domoticz server SERVER="192.168.0.15:8080" # DHT IDX DHTIDX="107" # DHTPIN DHTPIN="4" sleep 5 sudo nice -20 python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 11 $DHTPIN > /var/tmp/temp.txt #TEMP=$(cat /var/tmp/temp.txt | grep "Temp" | awk '{ print $3 }') #TEMP=$(cat /var/tmp/temp.txt | grep "Temp") TEMP=$(awk ' /Temp/ {print substr ($0,6,4)}' /var/tmp/temp.txt) #HUM=$(awk ' /Hudmidity/ {print substr ($0,0)}' /var/tmp/temp.txt) #HUM=$(awk ' /Humidity/ {print 1$}' /var/tmp/temp.txt) HUM=$(awk ' /Humidity/ {print substr ($0,22,4)}' /var/tmp/temp.txt) echo $TEMP echo $HUM # Send data curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command&c=getauth¶m=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2" TEMP="" HUM="" |
Wartości:
SERVER – zmieniamy na IP swojego systemu Domoticz i swój PORT
DHTIDX – zmieniamy na Idx Waszego Wirtualnego czujnika temperatury i wilgotności, który wcześniej utworzyliście
DHTPIN – jest to PIN GPIO, do którego podłączyliście PIN DATA czujnika – w moim przykładzie jest to PIN 4.
Musicie zwrócić uwagę czy w linii 15 utworzonego pliku temp.sh (/home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver/Adafruit_DHT 11) ścieżka do Waszego pliku Adafruit_DHT jest taka sama w Waszym przypadku.
Na koniec musimy już tylko zapisać Nasz plik i nadać mu uprawnienia poprzez komendę:
sudo chmod +x temp.sh
Ostatnim etapem będzie sprawienie by skrypt uruchamiał się co określony czas i przesyłał odczyty do Naszego systemu Domoticz.
Aby to zrobić w naszej uruchomionej konsoli wpisujemy:
crontab -e
Przechodzimy do końca pliku gdzie wpisujemy:
*/10 * * * * /home/pi/temp.sh
W moim przypadku będzie to odczyt co 10 minut. Wy możecie ustawić sobie jaki chcecie poprzez modyfikację wartości – „10”
Powinno to wyglądać mniej więcej tak:
Zapisujemy Nasz plik.
W tym momencie powinniśmy mieć działający czujnik temperatury i wilgotności, który co 10 minut będzie wysyłał odczyty do Naszego „Wirtualnego Przełącznika” w systemie Domoticz.

W przypadku DHT 21 wszystko robimy tak samo tylko w pliku temp.sh zamiast liczby „11” w ścieżce „sudo nice -20 python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 11 $DHTPIN > /var/tmp/temp.txt” wpisujemy „2302”
Gdyby coś nie działało pod tym adresem znajdziecie gotowy plik.
141 Odpowiedzi
Paweł
Witam.
Wyskakuje mi takie coś:
pi@raspberrypi:~/Adafruit-Raspberry-Pi-Python-Code $ sudo git clone git://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
fatal: destination path ‚Adafruit-Raspberry-Pi-Python-Code’ already exists and is not an empty directory.
Proszę o pomoc.
Agnieszka Kostrzewa
Witam
Z opisu błędu wynika, iż istnieje już taki folder na raspberry. Bardzo proszę sprawdzić komendą „ls” czy taki folder już nie istnieje. Możliwe, że już wcześniej wykonał Pan ten krok.
Ewentualnie proszę usunąć katalog „sudo rm-r Adafruit-Raspberry-Pi-Python-Code” i spróbować raz jezcze.
Pozdrawiam
Paweł
Witam.
Nie ma takiego pliku pod tym kodem:
sudo git clone git://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
Jest tam tylko plik README.
Znalazłem inny program, który zczytuje dane z dht11 ale mam problem z crone. Pojawia mi się taki widok i nic nie mogę z tym zrobić.
http://www77.zippyshare.com/v/oV1OHvyy/file.html
Proszę o pomoc.
Pozdrawiam.
Agnieszka Kostrzewa
Witam raz jeszcze.
Najwyraźniej projekt zawieszono lub przeniesiono.
Widzę, że można go teraz znaleźć pod adresem:
https://github.com/adafruit/Adafruit_Python_DHT
Pozdrawiam
Paweł
Witam ponownie.
Tak sprawdziłem te pliki ale nic z nich nie działa, spędziłem kilka dobrych godzin żeby je wszystkie przejrzeć ale niestety fiasko. Czy mogłaby Pani wrzucić swój plik z raspberrego gdzieś w folder i mi podesłać? Bardzo by mi to pomogło. Z góry dziękuję
Agnieszka Kostrzewa
Panie Pawle
Faktycznie teraz to wszystko wygląda inaczej.
Poprawiłem już plik temp.sh – teraz powinno być wszystko dobrze.
Proszę zacząć od początku i po komendzie:
sudo apt-get install git-core
Wpisać kolejno:
sudo apt-get update
sudo apt-get install -y python3 python3-pip python-dev
sudo pip3 install rpi.gpio
sudo apt-get update
sudo apt-get install build-essential python-dev
sudo git clone git://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
cd examples
sudo chmod +x AdafruitDHT.py
sudo ./AdafruitDHT.py 11 4 (o ile 4 to Pana pin gdzie podłączył Pan czujnik)
Pozdrawiam
Damian
witam serdecznie.
mam problem z komenda „sudo pip3 install rpi.gpio”
po podaniu tej komendy pojawia się info ” requirement already satisfied (use-upgrade to upgrade)
co jest nie tak?
co mam zrobić żeby było ok?
z góry dziękuję za pomoc.
Łukasz Kostrzewa
Witam
Proszę spróbować wpisać komendę bez sudo:
pip3 install rpi.gpio
Proszę dać znać czy pomogło
Pozdrawiam
Damian
pomoglo dziekuje.
teraz mam inny proble, gdy uruchamiam skryp ręcznie pokazuje temp i wilgotnośc ale nie chce przesłać tego do domoticza.
w czym może być problem?
Łukasz Kostrzewa
Witam Serdecznie
Utworzył Pan z pliku temp.sh plik wykonawczy poprzez -sudo chmod +x temp.sh?
Co się Panu wyświetla w konsoli po odpaleniu pliku temp.sh poprzez komendę sudo ./temp.sh?
Pozdrawiam
Paweł
Serdecznie dziękuję za pomoc. W końcu się udało. Tylko jedna uwaga dla kogoś kto miał taki sam problem i sugerował się naszymi postami pod artykułem. Pani Agnieszko, zapomniała Pani napisać, że po komendzie cd Adafruit_Python_DHT należy wpisać komendę sudo python setup.py install , ale dla kogoś kto będzie postępował zgodnie z instrukcją zawartą w artykule nie będzie miał żadnych problemów. Dziękuję jeszcze raz za pomoc i pozdrawiam 😉
Tomasz
Dobry wieczór, na wstępie bardzo dziękuję za powyższy tutorial. Mam jednak problem z uruchomieniem lokalnie czujnika DHT11 na malinie.
Po wpisaniu komendy
sudo pip3 install rpi.gpio otrzymuję:
sudo: pip3: nie znaleziono polecenia
idąc dalej
po wpisaniu komendy
sudo ./AdafruitDHT.py 11 4
otrzymuję:
Traceback (most recent call last):
File „./AdafruitDHT.py”, line 24, in
import Adafruit_DHT
ImportError: No module named Adafruit_DHT
Proszę o pomoc, pozdrawiam!
Tomasz
Znalazłem obecny błąd. Zamiast komendy:
sudo pip3 install rpi.gpio wpisałem
sudo pip-3.2 install rpi.gpio
i ruszyło.
Mój wynik po wpisaniu sudo ./AdafruitDHT.py 11 4
Temp=22.0* Humidity=45.0%
Łukasz Kostrzewa
Witam Serdecznie
Fajnie, że sobie Pan poradził.
Z tego co widzę komenda pip-3.2 używa się w przypadku Raspiana Wheezy (https://www.raspberrypi.org/documentation/linux/software/python.md) – info na dole strony. Ja poradnik pisałem na przykładzie Raspiana Jessie.
Najważniejsze, że się udało a odczyt z czujnika jest poprawny.
Pozdrawiam i życzę miłego dnia
Sławek
Witam serdecznie,
dziękuję za tą instrukcję i zwracam się jednocześnie o pomoc.
Mam czujnik DHT21
W konsoli czujnik odczytuje temperaturę i wilgotność:
root@raspberrypi:~/Adafruit_Python_DHT/examples# sudo ./AdafruitDHT.py 2302 4
Temp=21.7* Humidity=37.0%
konfig temp.sh wygląda tak:
#!/bin/sh
# Domoticz server
SERVER=”192.168.1.5:8080″
# DHT IDX
DHTIDX=”2″
# DHTPIN
DHTPIN=”4″
sleep 5
sudo nice -20 python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 2302 $DHTPIN > /var/tmp/temp.txt
#TEMP=$(cat /var/tmp/temp.txt | grep „Temp” | awk ‚{ print $3 }’)
#TEMP=$(cat /var/tmp/temp.txt | grep „Temp”)
TEMP=$(awk ‚ /Temp/ {print substr ($0,6,4)}’ /var/tmp/temp.txt)
#HUM=$(awk ‚ /Hudmidity/ {print substr ($0,0)}’ /var/tmp/temp.txt)
#HUM=$(awk ‚ /Humidity/ {print 1$}’ /var/tmp/temp.txt)
HUM=$(awk ‚ /Humidity/ {print substr ($0,22,4)}’ /var/tmp/temp.txt)
echo $TEMP
echo $HUM
# Send data
curl -s -i -H „Accept: application/json” „http://$SERVER/json.htm?type=command&c=getauth¶m=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2″
TEMP=””
HUM=””
W domoticz, który pracuje pod adresem 192.168.1.5:8080 w którym dodany jest sprzęt dummy i urządzenie: temperatura i wilgotność już nie pokazuje wartości (idx czujnika ma wartość:2)
Prośba o pomoc co robię źle, dziękuję
Łukasz Kostrzewa
Witam Serdecznie
Utworzył Pan z pliku temp.sh plik wykonawczy poprzez -sudo chmod +x temp.sh?
Co się Panu wyświetla w konsoli po odpaleniu pliku temp.sh poprzez komendę sudo ./temp.sh?
Nie miałem do czynienia akurat z tym czujnikiem (DHT21) ale jeżeli odczytuje wartości temperatury i wilgotności to działa.
Proszę sprawdzić co się wyświetla po odpaleniu sudo ./temp.sh i dać znać.
Pozdrawiam
Sławek
Panie Łukaszu, mistrzostwo, nie utworzyłem pliku wykonawczego teraz działa,
można podpiąć że powyższy opis działa z czujnikiem dht21
jeszcze raz dziękuję za pomoc i pozdrawiam serdecznie
Łukasz Kostrzewa
Bardzo się cieszę, że się udało 🙂
Zaraz zmienię opis i dodam DHT21 – dziękuję za info, że wszystko działa jak należy.
Pozdrawiam
Paweł
Witam
U mnie wszystko działa do czasu ustawienia hasła do panelu Domoticz – powoduje to brak możliwośći przesyłu danych przez skrypt czy istnieje możliwość zapisania w pliku temp.sh loginu i hasła ewentualnie jakaś inna możliwość przesyłu w takim przypadku?
pi@raspberrypi:~ $ sudo ./temp.sh
awk: line 1: syntax error at or near }
23.0
47.0
HTTP/1.1 401 Unauthorized
Content-Length: 91
Content-Type: text/html
Set-Cookie: SID=none; path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT
Unauthorized401 Unauthorizedp
Grzegorz
Panie Pawle,
proszę spróbować:
curl -s -i -H „Accept: application/json” „http://uzytkownik:haslo@$SERVER/json.htm?type=command&c=getauth¶m=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2”
Pozdrawiam
Grzegorz
Paweł
Witam!
jak wpisuję komendę sudo ./AdafruitDHT.py 11 4 to podaje temp. i wilgotność.
A w domoticzu pokazuje 0 stopni / 50%
Co może być nie tak?
Łukasz Kostrzewa
Witam Serdecznie
Jeżeli uruchamia Pan ./AdafruitDHT.py 11 4 to raspberry wyświetla wartości z czujnika (skoro się wyświetlają na pewno wiadomo, że wszystko jest dobrze podłączone).
Za pomocą tej komendy nie wyśle Pan danych do Domoticz.
Aby to zrobić należy utworzyć pik temp.sh o czym pisałem w poradniku.
Musi Pan podać w tym pliku odpowiedni dla Pana systemu numer IP, ścieżkę dostępu do AdafruitDHT.py oraz IDX urządzenia i wszystko powinno działać poprawnie.
Pozdrawiam
paweł
Już się zorientowałem ze ten plik temp.sh ma być w home/pi. Już zrobiłem, ale teraz jak uruchamiam ./AdafruitDHT.py 11 4 to jest inna temp. i wilg. niż w domoticzu.
paweł
pi@pi:~ $ sudo ./temp.sh
./temp.sh: 1: ./temp.sh: #!/bin/sh: not found
16.0
35.0
HTTP/1.1 200 OK
Content-Length: 53
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *
{
„status” : „OK”,
„title” : „Update Device”
Rafał
U mnie wywala taki błąd i nie mam pojęcia dlaczego ;)) liczę na małą podpowiedź 😉
pi@raspberrypi:~/domoticz $ sudo ./temp.sh
23.8
37.8
HTTP/1.1 200 OK
Content-Length: 24
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *
{
„status” : „ERR”
}
Rafał
Już sobie poradziłem, ten błąd oznaczał że źle podałem numer IDX 😉
Rafał
Jednak problem nie został rozwiązany do końca, bo wystąpił drugi, mianowicie po odpaleniu skryptu temp.sh, widzę prawidłową temperaturę i wilgotność, lecz później stoi w miejscu, nie zmieniają się parametry temperatury i wilgotności, mimo że LAST SEEN, zmienia się co 1min, bo tak mam ustawione.
Łukasz Kostrzewa
Witam Serdecznie
Rozumiem, że w crontab ustawiał Pan by skrypt odpalał się co 1 minutę?
Nie zmieniają się wartości bo może temperatura i wilgotność się nie zmienia? Proszę złapać czujnik w dwa palce i wtedy sprawdzić czy temperatura nie rośnie?
Ja mam ustawione żeby sprawdzał temperaturę co 10 minut i wszystko działa poprawnie.
Czujnik DHT 11 nie jest jednak zbyt dokładny (+-1 stopień).
Pozdrawaim
Maniek
Dzięki za powyższy tutorial, wszystko przejrzyście i fajnie opisane. Niestety napotkałem na jeden problem czujnik (DHT22) działa ok, kłopot jest wysyłką danych do Domoticza. Kiedy ręcznie wywołam skrypt temp.sh wszystko jest super. Natomiast crone nie chce aktualizować danych, ustawioną mam aktualizację co 5 min, poza ty wszystko jak w tutorialu. Dane na pewno się zmieniają bo widzę to przy ręcznym wywołaniu skryptu.
Łukasz Kostrzewa
Witam Serdecznie
Bardzo się cieszę, że „prawie wszystko” już działa:)
Bardzo bym prosił o wysłanie screena z crontab -e na maila [email protected].
Sprawdzę czy wszystko jest poprawnie.
Bardzo proszę zrestartować raspberry o ile Pan tego nie robił wcześniej albo o wpisanie – sudo service cron restart.
Rozumiem, że jak wywoła Pan skrypt ręcznie to wszystkie wartości w Domoticz się aktualizują?
Pozdrawiam i czekam na screena
Maniek
Witam,
znalazłem rozwiązanie problemu, proponuję aby wszyscy, którzy mają problemy z crone-em spróbowali poniższego, ponieważ podobnie jak u mnie może to być problem z uprawnieniami.
Zatem, zamiast „crontab -e” wpiszcie proszę „sudo crontab -e” a następnie tak jak w tutorialu „*/10 * * * * /home/pi/temp.sh” u mnie zaczęło działać bez problemu.
Pozdrawiam.
Łukasz Kostrzewa
Witam raz jeszcze
Bardzo się cieszę, że się udało. Czasami trzeba pokombinować…w sumie to prawie zawsze:)
Pozdrawiam
paweł
Wiatm!
A ja mam taki problem, odczyt z dht22 co jakiś czas jest -12C i 3623 wilgontość. Co może być nie tak?
Łukasz Kostrzewa
Witam Serdecznie
Dał Pan rezystor 4,7 Ohma między DATA a VCC?
Z drugiej strony nie jest to nic nadzwyczajnego – mam 5 sztuk DHT11 zamontowanych w moim mieszkaniu i też mam takie dziwne odczyty co jakiś czas (raz na kilka dni). Te czujniki majątku nie kosztują także…:)
Pozdrawiam i życzę miłego dnia
sky
W dokumentacji producent mówi o rezystorze 5k, nie 5Ω. =)
http://i.imgur.com/NujPKwa.png
Agnieszka Kostrzewa
Racja. We wpisie jest pomylka. Dzieki za sluszna uwage. Pozdrawiam
paweł
Tak dałem. Zaobserwowałem że dzieje się to w czasie gdy załącza się wyciąg w łazience. Bo czujnik mam w łazience, i mam ustawne zdarzenie, że jak wilgotność przekroczy 45% to się załącza wyciąg. Ale to tylko jeden zły odczyt i potem jest OK. Pozdrawiam.
Łukasz Kostrzewa
No to mamy winowajce 🙂 Niestety te czujniki są podatne na wiele rzeczy.
Ja mam za to ciągły problem z gniazdkami 433Mhz (raz działają a raz nie – zależy gdzie stanę w mieszkaniu 🙁 To samo tyczy się bramki Mysensors na arduino nano (o czym będę pisał w przyszłych postach).
Pozdrawiam
paweł
🙁
Tomek
Witam, jak można podpiąć kilka czujników DHT11.
Można na jednej lini, czy należy każdy na oddzielnym GIPO.
Pozdrawiam,
Tomek
Łukasz Kostrzewa
Witam Serdecznie
Oczywiście można do jednej szyny GPIO w Rasberry podpiąć kilka czujników DHT11.
Należy pin DATA podpiąć pod inny PIN GPIO i odpowiednio skonfigurować skrypt – to samo co w przykładzie tylko z innym numerem PIN.
Pozdrawiam
Seweryn
Witam,
stworzyłem wirtualny przycisk w domoticzu ale cały czas wyskakuje mi:
pi@raspberrypi:~ $ ./temp.sh
23.0
40.0
HTTP/1.1 200 OK
Content-Length: 24
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *
{
„status” : „ERR”
}
i trochę już nie wiem gdzie jest błąd
z terminala mogę odczytać temperaturę i wilgotność ale do domoticza nie eksportuje
Może jakieś sugestię?
Łukasz Kostrzewa
Witam Serdecznie
A może Pan wkleić zawartość pliku temp.sh?
Pozdrawiam
Seweryn
#!/bin/sh
# Domoticz server
SERVER=”192.168.1.105:8080″
# DHT IDX
DHTIDX=”5″
# DHTPIN
DHTPIN=”4″
sleep 5
sudo nice -20 python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 11 4 > /var/tmp/temp.txt
#TEMP=$(cat /var/tmp/temp.txt | grep „Temp” | awk ‚{ print $3 }’)
#TEMP=$(cat /var/tmp/temp.txt | grep „Temp”)
TEMP=$(awk ‚ /Temp/ {print substr ($0,6,4)}’ /var/tmp/temp.txt)
#HUM=$(awk ‚ /Hudmidity/ {print substr ($0,0)}’ /var/tmp/temp.txt)
#HUM=$(awk ‚ /Humidity/ {print 1$}’ /var/tmp/temp.txt)
HUM=$(awk ‚ /Humidity/ {print substr ($0,22,4)}’ /var/tmp/temp.txt)
echo $TEMP
echo $HUM
# Send data
curl -s -i -H „Accept: application/json” „http://$SERVER/json.htm?type=command&c=getauth¶m=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2″
TEMP=””
HUM=””
Łukasz Kostrzewa
Witam Serdecznie
Niech Pan usunie cyfrę „4” z tej linijki –> sudo nice -20 python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 11 4 > /var/tmp/temp.txt
Bardzo proszę o info czy pomogło.
Jest Pan pewny, że DHTIDX=”5″ odpowiada Pańskiemu wirtualnemu przyciskowi i wybrał Pan w nim Tem+Wilg?
Pozdrawiam
Seweryn
Bardzo dziękuje usunięcie 4 pomogło 🙂
Łukasz Kostrzewa
Bardzo proszę 🙂
Cieszę się, że mogłem pomóc
Pozdrawiam
Przemysław
Witam mam taki sam problem, tą 4 usunąłem, idx się zgadza, server tak samo. Bardzo proszę o pomoc.
Armin
Witam, próblem który mam u siebie pojawił w komentarzach ale rozwiazania brak a chodzi o ostatnią komende :
sudo ./AdafruitDHT.py 11 4
i to co sie wyświetla :
Traceback (most recent call last):
File „./AdafruitDHT.py”, line 24, in
import Adafruit_DHT
ImportError: No module named Adafruit_DHT
Proszę o pomoc
Armin
wpisując polecenia w ten sposób wszystko działa … :
sudo apt-get install git-core
sudo apt-get update
sudo apt-get install -y python3 python3-pip python-dev
sudo pip3 install rpi.gpio
sudo apt-get update
sudo apt-get install build-essential python-dev
sudo git clone git://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python setup.py install
cd examples
sudo chmod +x AdafruitDHT.py
sudo ./AdafruitDHT.py 11 4
dziwne …
Łukasz Kostrzewa
Witam Serdecznie
Czyli, że jednak działa?:)
Pozdrawiam
Armin
Tak Panie Łukaszu, ten problem a w zasadzie ten komunikat o którym wspomniałem czyli :
”
Traceback (most recent call last):
File „./AdafruitDHT.py”, line 24, in
import Adafruit_DHT
ImportError: No module named Adafruit_DHT ” nie pojawia sie po użyciu tego kodu który wstawiłem w komentarzu 🙂
Wszystko działa z wyjątkiem odczytu temperatury co 10 min i wyświetlaniu jej w Domoticz ..
Armin
Panie Łukaszu czy ten problem z tym odczytem temperatury może wynikać z tego że :
Program temp.sh jest w : :~/domoticz/scripts
Natomiast komenda do corna wygląda tak : */10 * * * * /home/pi/temp.sh
Czy program powinienem umieścić w home/ pi ?
Łukasz Kostrzewa
Witam Serdecznie
Dokładnie dlatego 🙂 Proszę zmienić na poprawny adres w cronie –> */10 * * * * /home/pi/domoticz/scripts/temp.sh i zrestartować raspberry.
Pozdrawiam
Michał
Ja mam pytanko o dokładność np do dwóch miejsc po przecinku jeśli chodzi o temperaturę. Jak tego dokonać?
Łukasz Kostrzewa
Witam Serdecznie
A po co aż tak dokładny pomiar?:)
DHT11 ma dokładność +-2 stopnie a DHT22 +- 0,5 stopnia także na tych czujnikach nie widzę możliwości (a bardziej sensu) takich pomiarów bo i tak są zbyt mało dokładne żeby się opierać na ich wynikach (zwłaszcza do dwóch miejsc po przecinku)
Pozdrawiam i życzę miłego dnia
Michał
Racja, w sumie lepiej użyć ds18b20 do dokładniejszych pomiarów 🙂
Maciej
Dobry artykuł, zrobiłem wszystko w 3min i działa tylko, że pokazuje dziwnie niską wilgotność:
pi@raspberrypi ~/projects/Adafruit_Python_DHT/examples $ sudo ./AdafruitDHT.py 11 4
Temp=24.0* Humidity=16.0%
Z ciekawości próbowałem też ten drugi (może jednak mam dht22):
pi@raspberrypi ~/projects/Adafruit_Python_DHT/examples $ sudo ./AdafruitDHT.py 2302 4
Temp=614.4* Humidity=409.6%
A kupiłem dokładnie dht11 z wlutowanym opornikiem – taką gotową płytkę z wychodzącymi trzema pinami.
Wilgotność 16% to jakoś nisko.. szczególnie, że niby zakres dht11 jest od 20%.. Coś robię nie tak?
Łukasz Kostrzewa
Witam Serdecznie
Cieszę się, że wszystko się udało i działa 🙂
Jeżeli chodzi o wilgotność to mi czujniki DHT11 (mam ich 4) pokazują (w tym momencie) 19, 20, 29 i 34%.
16% wydaje się faktycznie trochę mało ale też wszystko zależy od tego gdzie Pan ma umieszczony czujnik.
Mi pokazuje najmniejszą wilgotność w miejscu gdzie mam cały sprzęt (Amplituner, TV, Konsola, Dyski twarde – tam mam 19%) Największą wilgotność mam w sypialni 🙂
Niech Pan chwilę potestuje – ale te 16 niewiele odbiega od niektórych moich wskazań. Fajnie by było jakby w mieszkaniu było minimum 30% wilgotności a najlepiej i zdecydowanie więcej.
Niech Pan spróbuje otworzyć okna na kilka godzin i sprawdzi czy odczyt się zmienia.
Pozdrawiam i czekam na info jak się sprawny mają:)
Maciej
Hmm może faktycznie, czujnik mam obok access pointu i raspberry. Niestety nie mam jak przetestować w innym miejscu bo mam bardzo krotkie kabelki do pi 😉 A powiedz Łukasz, jak masz połączone te wszystkie dht11 z pi? Masz kable przez całą chatę? A może da się jakoś sensownie bezprzewodowo ten sygnał przesyłać z różnych pomieszczen?
Maciej
Położyłem obok czujnika stacje pogodową i ona pokazuje 41% wilgotności i 22C. Czujnik podaje 17% i 24C aktualnie. Może i temperatura w ramach błędu ale wilgotność kompletnie z czapy… Coś musi być nie tak
Łukasz Kostrzewa
Witam
Czujniki DHT11 to jedne z najtańszych czujników na rynku i nie należą one do najdokładniejszych (chociaż ich dokładność to +-5% jeżeli chodzi o wilgotność i +-2 stopnie jeżeli chodzi o temperaturę) jednak to zbyt duża różnica w stosunku do stacji pogodowej (co nie znaczy, że akurat to ona wskazuje dobrze:)
Pozdrawiam
Łukasz Kostrzewa
Witam raz jeszcze
Mam w domu 4 Raspberry Pi i 2 Arduino.
Dlatego nie musiałem ciągnąć kabli bo w każdym pomieszczeniu jest oddzielny „komputerek”:)
Można zrobić bezprzewodowo za pomocą bramki Mysensors o czym pisałem na blogu (tylko trzeba wgrać odpowiedni program do czujników DHT11).
Pozdrawiam
Maciej
Rozwiązałem problem 🙂 Gdyby ktoś miał taki efekt, że ma zbyt niskie odczyty wilgotności a od czasu do czasu wahają się mocno np. ja miałem raz ok. 19% raz ok. 33% przy pomiarach co 15min. Próbowałem wszystkiego: umieszczania w różnych pomieszczeniach, z dala od urządzeń elektrycznych, z dala od okien, próbowałem zasilania 3,3V i 5V, różnych płytek, trzymania w wilgoci i w suchym żeby niby skalibrować, nawet z głupa stawiałem sam czujnik w różnych pozycjach itp. itd. Ostatecznie zmieniłem ładowarkę do raspberry pi i jak ręką odjął 🙂 teraz mam stały odczyt temperatury (czasem się wahnie o 1 stopień) i odczyt wilgotności ok 40% czyli tak jak stacja pogodowa, wahniecia wilgotności z odczytu na odczyt są cały czas ale w ramach 5% więc wszystko się zgadza.
Ja mojej ładowarki używałem od lat do raspberry i nigdy nie było problemów a chodzi tam wiele usług i dość mocno jest wykorzystywane. Ładowarka dodam, że jest z duzego centrum rtv agd za niemałe pieniądze więc nie sugerujcie się że „macie dobrą ładowarkę”. Także jeśli masz problem taki jak ja – sprobuj paru innych ladowarek do swojego serwerka.
Pozdrawiam!
Łukasz Kostrzewa
Witam Serdecznie
Bardzo dziękuję za podzielenie się swoimi przemyśleniami…
Nigdy bym nie wpadł na to, że problemem może być ładowarka!
Ja mam u siebie odczyty w okolicach 30% co może odpowiadać stanowi faktycznemu (każdy czujnik to inne raspberry).
Okazuje się, że dobre zasilanie raspberry to podstawa i bardzo częsta przyczyna wielu problemów w różnych projektach i samym działaniu.
Jeszcze raz bardzo dziękuję za spostrzeżenia, które na pewno się komuś przydadzą.
Pozdrawiam
wube
Cześć,
w moim małym projekcie użyłem d1 mini oraz DHT11 oraz gotowego kodu wgranego przez Arduino IDE (https://www.hackster.io/vsaravind007/esp8266-simple-weather-station-f0824b). Chciałbym aby Domoticz widział ten czujnik da sie zamienić jakoś api.iostash.io na domoticz badz tez moze zmienic calkiem kod (niestety żaden ze mnie programista) potrafie wykorzystac tylko juz istniejacy kod. Bardzo prosze o poradę. Dziękuję
Łukasz Kostrzewa
Witam Serdecznie
Niestety nigdy nie używałem D1 Mini a z ESP miałem do czynienia tylko w przypadku Sonoff Touch ale…
Na stronie https://www.domoticz.com/wiki/ESP8266_WiFi_module jest wszystko pięknie opisane jak skonfigurować ESP 8266 do pracy z czujnikiem temperatury w systemie Domoticz.
Chyba najlepiej będzie użyć oprogramowania ESP Easy – https://www.letscontrolit.com/wiki/index.php/ESPEasy
Link do ściągnięcia – http://www.letscontrolit.com/downloads/ESPEasy_R120.zip
Proszę dać znać czy się udało
Pozdrawiam
Paw
w moim przypadku nie chce sie zapisac crontab…
no crontab for pi – using an empty one
crontab: installing new crontab
„/tmp/crontab.5iBoWy/crontab”:23: bad command
errors in crontab file, can’t install.
Do you want to retry the same edit? (y/n)
Łukasz Kostrzewa
Przykro mi ale nie wiem jak pomóc 🙁
Paw
Witam ponownie.
Problem rozwiazany. Bląd, tradycyjnie, prozaiczny.
Przeoczyłem spacje pomiedzy *
Kolejnym problemem było przesłanie danych do Domoticza przez json
Rozwiazaniem okazalo sie wpisanie adresow rodzimych routera w ustawieniach Domoticza.
Pozdr
Łukasz Kostrzewa
Witam Serdecznie
Cieszę się, że się udało. W przypadku raspberry i pythona oraz innych języków programowania każda literka i spacja się liczy:)
Pozdrawiam
Grzegorz
Bardzo dziękuję za te wpisy. WSZYSTKO działa. Zrobiłem jak w opisie, zainstalowałem i CHODZI!
Jeszcze raz dziękuję.
Mam pytanko (jestem laikiem) co trzeba pozmieniać w skrypcie, żeby podpiąć np. 6-7 czujek?
Co należy dopisać?
Mam czujniki DHT11 (jak na pierwszym obrazku).
Pozdrawiam
Łukasz Kostrzewa
Witam Serdecznie
Bardzo się cieszę, że wszystko gra i buczy:)
7 czujek? Znaczy się 7 czujników DHT11?
Po pierwsze będzie trzeba kupić płytkę stykową bo raspberry ma tylko 4 piny zasilające (2x5V i 2x3v3V).
W skrypcie trzeba będzie zmienić tylko DHTPIN (odpowiednie piny, d o których podłącza Pan kolejne czujniki) i DHTIDX (należy utworzyć 7 Dummy switches w Domoticzu i wpisać kolejny IDX) na odpowiednie.
Pozdrawiam i życzę powodzenia
Grzegorz
Hm, a tego nie podłącza się równolegle? Poza tym mam dodatkowy zasilacz 3,3V stabilizowany.
Myślałem, że wszystko „idzie” na PIN-ie 4 a dopisać trzeba tylko dodatkowe linie z DHT IDX.
Dziekuję za odpowiedź.
Agnieszka Kostrzewa
Nie ma sprawy
Pozdrawiam
Bartosz
mi nie działa ;< walczyłem długo i nie mam pojęcia.
Próbowałem na dwóch dht22
pi@raspberrypi0:~/Adafruit_Python_DHT $ cd examples/
pi@raspberrypi0:~/Adafruit_Python_DHT/examples $ sudo ./AdafruitDHT.py 22 4
Failed to get reading. Try again!
pi@raspberrypi0:~/Adafruit_Python_DHT/examples $
Grzesiek Łazarz
Ładowanie strony trwa bardzo długo…
Agnieszka Kostrzewa
Witam. u mnie dziala dzybko. Moze byly jakies chwilowe problemy z serwerem. Pozdrawiam
Paweł
A mi wyskakuje cos takiego
pi@pi:~/Adafruit_Python_DHT/examples $ sudo ./AdafruitDHT.py 11 17
Traceback (most recent call last):
File „./AdafruitDHT.py”, line 41, in
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/Beaglebone_Black.py”, line 206, in read
ValueError: Pin must be a valid GPIO identifier like P9_12 or GPIO1_28.
Domanw
Witam,
polecenie: sudo ./temp.sh
zwraca:
21.0
65.0
HTTP/1.1 401 Unauthorized
Content-Length: 91
Content-Type: text/html
Set-Cookie: SID=none; HttpOnly; path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT
a w Domoticz widze tylko 0,50
a
sudo curl -s -i -H „Accept: application/json” „http://admin:haslo@$SERVER/json.htm?type=command&c=getauth¶m=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2”
[4] 1929
[5] 1930
[6] 1931
[7] 1932
[8] 1933
-bash: 2”: nie znaleziono polecenia
[3] Kod wyjścia 1 curl -s -i -H „Accept: application/json” „http://admin:doman@$SERVER/json.htm?type=command
[5] Zakończono c=getauth
[6] Zakończono param=udevice
[7] Zakończono idx=$DHTIDX
[8]- Zakończono nvalue=0
Agnieszka Kostrzewa
Widac ze czujnik dziala ale jest problem z wyslaniem informacji do Domoticz. Serwer i idx sa na bank dobrze wpisane? Ma Pan ustawione w Ustawieniach Domoticz zeby w sieci lokalnej nie zadał haseł? Trzeba w tym polu wpisac: 127.0.0. *; 192.168.0.* lub inne w zaleznosci od Pana sieci. Moze to o to chodzi. Prosze sprobowac
domanw
ustawiłem Local Networks (no username/password): 127.0.0. *; 192.168.120.* a w temp.sh wpisalem recznie:
curl -s -i -H „Accept: application/json” „http://192.168.120.210/json.htm?type…………………………
teraz jest : pi@raspberrypi:~ $ sudo ./temp.sh
20.0
57.0
ale wartosci w Domoticz nadal 0,50
Agnieszka Kostrzewa
Nie mam pomyslu:(
domanw
ruszylo,
dodalem nowy dummy czujnik, zmienilem idx, jako adres serwera w temp.sh podalem 127.0.0.1 i działa, dzieki
może jakiś tutorial z bmp180?
Agnieszka Kostrzewa
Dzieki za info. Dziwne to troche ale grunt ze działa 🙂 Poki co nie mialem do czynienia z tym barometrem… Moze w przyszlosci… Pozdrawiam
Jakub
Dzien dobry, wszystko dzialalo, nagle przestalo, prosze o pomoc w czym moze byc problem?
root@raspberrypi:/home/pi# ./temp.sh
1.9*
6.3%
HTTP/1.1 400 Bad Request
Content-Length: 89
Content-Type: text/html;charset=UTF-8
Last-Modified: Wed, 29 Nov 2017 18:44:00 GMT
Bad Request400 Bad Requestroot@raspberrypi:/home/pi#
Agnieszka Kostrzewa
Ale tutaj widac ze zaczytuje temperature…
Jakub
Blad wystepuje gdy temperatura jest ponizej 10st. Powyzej 10 st wszystko jest ok. Czujnik DHT 22
Agnieszka Kostrzewa
Dziwne bo DHT22 jest do – 40.
Mi czasami nie zaczytuje temperatury w kazdym z 5 DHT11. Przewaznie wystarczy ze rusze kablem i dziala ale w tym przypadku musi byc inny problem. Tylko jaki? Moze sa to ograniczenia sterownika… Moze sa jakies nowsze w sieci? Kurcze nie mam pojecia. Ale skoro dxieje sie tak ponizej minus 10 to dzwna sprawa. Przepraszam ale nie pomogę 🙁
Jakub
Nie, dzieje sie tak ponizej -10 tylko ponizej 10 st. Mam wrazenie ze Domoticz nie przyjmuje jednej cyfry
Jakub
Jakby ktos mial taki sam problem jak moj to ponizej jest rozwiazanie:
#!/bin/bash
# Domoticz server
# Please replace [SERVER] and [PORT] to reflect the Domoticz server specifications
SERVER=”[SERVER]:[PORT]”
# DHT IDX
# The number of the IDX in the list of peripherals
DHTIDX=”18″
# DHTPIN
# The GPIO or connects DHT11
DHTPIN=”22″
# TMPFILE: path for temporary file in place to avoid the RAMDRIVE
TMPFILE=”/var/tmp/dht22.txt”
# Retry loop, try 5 times
cpt=1
while [ $cpt -lt 6 ]
do
TEMP=””
echo Attempt: $cpt
sudo nice -20 /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 22 $DHTPIN > $TMPFILE
TEMP=$(cat $TMPFILE | awk -F „=” ‚{print $2}’ | awk -F „.” ‚{print $1}’)
HUM=$(cat $TMPFILE | awk -F „=” ‚{print $3}’ | awk -F „.” ‚{print $1}’)
echo „Temp=” $TEMP
echo „Humid=” $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;0″
TEMP=””
HUM=””
exit 0
cpt=$(($cpt+1))
done
exit 1
Agnieszka Kostrzewa
Bardzo dziekuje za gotowe rozwiazanie. Pozdrawiam
Marcin
Witam,
A jak mam podłączone czujniki DS18B20 pod GPIO4 czy z DHT nie będą się gryzły ??
Agnieszka Kostrzewa
Nie widze powodu zeby tak być mialo…
Marcin
Właśnie podłączyłem czujnik DHT21 i klapa temperatury na 1wire pokazują 0 lub pokjazują temperatury z kosmosu. Jednak nie działają ze sobą te dwa czujniki a szkoda 🙁
Marcin
Witam ponownie,
Powiedzcie mi jaki dobrać rezestor podciągakący zamiast 4,7k gdy przewód mam 25m ??
Rafał
Witam,
W moim OP Plus2 i Armbianie nie chce to chulać…
root@orangepiplus2e:~/Adafruit_Python_DHT/examples# sudo ./AdafruitDHT.py 11 37
Traceback (most recent call last):
File „./AdafruitDHT.py”, line 41, in
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 81, in read
File „build/bdist.linux-armv7l/egg/Adafruit_DHT/Beaglebone_Black.py”, line 213, in read
RuntimeError: Error accessing GPIO. Make sure program is run as root with sudo!
root@orangepiplus2e:~/
Spotkał się ktoś
Rafał
Usunełem nawet całą zawartość mimo wszystko dalej to samo.
Rafał
Zrezygnowałem z biblioteki Adafruit…
Rozwiązałem problem przez bibliotekę https://github.com/AiratNig/DHT22-DHT11_Orange-Pi_Python
Zmodyfikowałęm troszkę skrypt startowy i chodzi 🙂
#!/bin/sh
# Domoticz server
SERVER=”192.168.1.120:9090″
# DHT IDX
DHTIDX=”6″
# DHTPIN
DHTPIN=”4″
sleep 5
sudo nice -20 python /root/domoticz/scripts/python/dht11.py $DHTPIN > /var/tmp/dht11.txt
TEMP=$(awk ‚ /Temp:/ {print substr ($0,6,2)}’ /var/tmp/dht11.txt)
HUM=$(awk ‚ /Hudmidity:/ {print substr ($0,19,4)}’ /var/tmp/dht11.txt)
echo $TEMP
echo $HUM
# Send data
curl -s -i -H „Accept: application/json” „http://$SERVER/json.htm?type=command&c=getauth¶m=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2″
TEMP=””
HUM=””
Agnieszka Kostrzewa
Dzieki za info jak sobie poradziles. Napewno sie konus przyda. Pozdrawiam
Łukasz
A czy jest jakaś możliwość przesłania danych o temperaturze i wilgotności powietrza do domoticza bezprzewodowo?
Tomasz
Dzień dobry,
Dziękuję za artykuł. Udało mi się uruchomić pomiar temperatury i wilgotności oraz zwizualizować dane w Domoticzu. Mam jednak problem z samym czujnikiem DHT11. Co jakiś czas odczyt temp. znacznie spada a wilgotność wzrasta do 147%. Poniżej efekt kilkukrotnego wywołania polecenia ./AdafruitDHT.py (co kilka sekund)
Jakiś pomysł co może być nie tak? Pomiędzy pinem zasilającym a pinem danych jest rezystor 4,7k Ohm
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=15.0* Humidity=147.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=39.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=39.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=39.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=15.0* Humidity=147.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=38.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=38.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=38.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=15.0* Humidity=147.0%
Agnieszka Kostrzewa
Witam Serdecznie. Niestety u mnie też występuje ta przypadłość. Ja mam za to temperaturę 250 stopni:) Jak ktoś wie jak sobie z tym poradzić niech napisze. Pozdrawiam
Tomasz
Dzień dobry,
Dziękuję za artykuł. Udało mi się uruchomić pomiar temperatury i wilgotności oraz zwizualizować dane w Domoticzu. Mam jednak problem z samym czujnikiem DHT11. Co jakiś czas odczyt temp. znacznie spada a wilgotność wzrasta do 147%. Poniżej efekt kilkukrotnego wywołania polecenia ./AdafruitDHT.py (co kilka sekund)
Jakiś pomysł co może być nie tak? Pomiędzy pinem zasilającym a pinem danych jest rezystor 4,7k Ohm
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=15.0* Humidity=147.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=39.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=39.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=39.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=15.0* Humidity=147.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=38.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=38.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=31.0* Humidity=38.0%
pi@DOMOTICZ:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 11 4
Temp=15.0* Humidity=147.0%
Tomasz
Problem rozwiązany po kilku godzinach udręki. – Jak zwykle błąd ekstremalnie banalny – Błąd w okablowaniu – nie stykała masa.
Paweł
U mnie dokładnie ta sama sytuacja, trzy czujniki DHT11 i na każdym co chwilę wyrzuca w pomieszczeniu 10*C i 147% wilgotności
Kable sprawdzone.
Agnieszka Kostrzewa
Ciezko mi coś sensownego poradzić. Moze jakis rezystor dodatkowo? A może jednak warto spróbować DHT22. Dokładniejsze. Ja od dłuższego czasu nie mam z DHT11 żadnych problemów ale tak jak pisałem wcześniej…zdarzały się w przeszłości dziwne wyniki. Pozdrawiam
Paweł
Witam ponownie,
zmiana na DHT22 pomogła, dzięki za pomoc 🙂
Agnieszka Kostrzewa
Ciesze się że pomogło. Pozdrawiam 🙂
Joseph
Dzien dobry
Na moim Domoticzu jest uzytkownik i haslo.
Mam problem dopisac username i password.
Jak powinno wygladac polecenie z uzytkownikiem i haslem
probuje
<http://domoticz-ip/json.htm?> nie dziala
probuje tez
<http://domoticz-ip/json.htm?username=MkE=&password=OVM=& ……..>
Licze na pomoc, pozdrawiam
Agnieszka Kostrzewa
W sieci lokalnej nie trzeba wpisywać użytkownika i hasła. A z zewnątrz najlepiej używać oficjalnej aplikacji Domoticz lub Imoerihome
Agnieszka Kostrzewa
A login i hasło powinno być chyba na poczatku– http://login:haslo@domoticzip itd.
Marcin
Witam.
Świetny blog!!!
Mam pytanie bo zaczynam budować system na domoticz.
Posiadam zainstaliwany program domoticz na głównym routerze w domu z systemem openwrt i mam też kilka innych routerów w domowej sieci z openwrt. Moje pytanie jest takie czy jeżeli na tych pozostałych routerach zamontuje ds18b20 to będzie możliwy odczyt na domoticzu? Jeżeli tak to jak to zrealizować?
Z góry dziękuję za odpowiedź.
Pozdrawiam.
Agnieszka Kostrzewa
Dziękuję za me słowa. Niestety nie pomogę gdyż nie miałem z tym systemem doczynienua:( Moze ktos inny wie jak pomoc?
Marcin
Witam.
Świetny blog!!!
Mam pytanie jak przeslac dane z czujnika temperatury ds18b20 zainstalowanego na routerze z openwrt na drugi router w tej samej sieci z zainstalowanym domoticzem tez na openwrt ? Czy jest taka mozliwosc ?
Dziekuje i pozdrawiam
Kaczakat
Bardzo fajny opis, ale zmieńcie ten schemat z rezystorem podciągającym na 4,7k bo już parę razy widziałem posty na forum o upalonym 3.3V i się zastanawiam, czy to nie dzięki temu opisowi.
Agnieszka Kostrzewa
Witam. Ja takiego używam a mam 5 czujników i 5 raspberry i wszystko działa jak nalezy
Robert
Witam. u mnie z konsoli wszystko działa ale nie wysyła danych do domoticza. Zrezygnowałem z hasła do logowania i dalej to samo.
#!/bin/sh
# Domoticz server
SERVER=”192.168.0.5:8080″
# DHT IDX
DHTIDX=”14051″
# DHTPIN
DHTPIN=”24″
sleep 5
sudo nice -20 python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 2302 $DHTPIN > /var/tmp/t$
#TEMP=$(cat /var/tmp/temp.txt | grep „Temp” | awk ‚{ print $3 }’)
#TEMP=$(cat /var/tmp/temp.txt | grep „Temp”)
TEMP=$(awk ‚ /Temp/ {print substr ($0,6,4)}’ /var/tmp/temp.txt)
#HUM=$(awk ‚ /Hudmidity/ {print substr ($0,0)}’ /var/tmp/temp.txt)
#HUM=$(awk ‚ /Humidity/ {print 1$}’ /var/tmp/temp.txt)
HUM=$(awk ‚ /Humidity/ {print substr ($0,22,4)}’ /var/tmp/temp.txt)
echo $TEMP
echo $HUM
# Send data
curl -s -i -H „Accept: application/json” „http://$SERVER/json.htm?type=command&c=getauth¶m=udev$
TEMP=””
HUM=””
Robert
Cześć. A u mnie z konsoli działa wszystko tylko nie wysyła do domoticza.
Wiktor
Witam.
Mam problem z tym czujnikiem i Domoticzem. Wszystkie odczyty przez SSH są poprawnie dokonywane, ale dane nie są przesyłane do Domoticza. Po wejściu na http://192.168.0.106:8080/json.htm?type=command&c=getauth¶m=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2
pojawia się komunikat:
{
„status” : „ERR”
}
Proszę o pomoc, wszystkie pliki są poprawnie utworzone, ale nie wiem co może stanowić problem.
Agnieszka Kostrzewa
A utworzyl Pan przelacznik w Domoticz i zmienił odpowiednio dane w pliku temp tak jak opisałem? Jeżeli tak to może kwestia hasła w Domoticz. W ustawieniach Domoticz w zakładce Sieci lokalne (bez hasla/loginu) proszę wpisać 192.168.0.*;127.0.0.* Nie mam pomysłu co może być inna przyczyną
Maciej
Witam,
Jestem na etapie utworzenia crontab, niestety po wpisaniu podanych wartosci wyskakuje blad:
no crontab for pi – using an empty one
crontab: installing new crontab
„/tmp/crontab.FWzTfF/crontab”:25: bad command
errors in crontab file, can’t install.
Do you want to retry the same edit? (y/n)
Czy przez ten blad nie mam zadnych wartosci temperatury i wilgotnosci w Domoticzu?
Z gory dziekuje za pomoc
Rafał
witam,
mam problem z wyświetleniem temperatury i wilgotności w domoticzu (pokazuje mi ciągle 0st.C i 50% wilgotności). Natomiast jak uruchamiam skrypt temp.sh z konsoli i pojawiają się właściwe odczyty. Skrypt temp.sh umieściłem w katalogu „domoticz/scripts” – czy mam go umieścić w innym katalogu. W crontab ścieżkę dałem „*/10 * * * * /home/pi/domoticz/scripts temp.sh”
Agnieszka Kostrzewa
Witam. Wszystko wydaje się być ok. Rozumiem że po scripts jest / tylko w komentarzu zabrakło? Nie mam pomysłu co może być nie tak:(
Maciej
Witam,
Prosze o pomoc…
Maciej
Witam,
Wszystko pracuje jak nalezy, problem z crontabem spowodowany byl „niewlasciwymi” gwiazdkami.
Wspanialy, przejzysty poradnik. Z niecierpliwoscia czekam na kolejne..moze na temat wykozystania do przesylu danych z czujnikow do malinki poprzez jakies moduly bezprzewodowe?
Pozdrawiam…
Agnieszka Kostrzewa
Dzieki za info i miłe słowa 🙂
rafal
witam,
dziękuję za szybka odpowiedź, udało się namierzyć błąd – zły adres ip serwera. Teraz domoticz zaczytuje dane z dht11, niestety wilgotność jest mocno zawyżona wskazuje od 82 do 90 %., co może być przyczyną(kabel ok 2m, testowałem na zwykłej skrętce i na ytdy)?
Agnieszka Kostrzewa
Fajnie że się udało. Ja znowu mam niska wilgotność (między 20 a 25:) Moze czujnik dht walniety? Warto spróbować innego. Generalnie DHT11 są średnie. Lepsze i dokładniejsze są DHT22. Pozdrawiam
Aleksander
Witam.
Proponuje analogiczny skrypt tylko w Python-ie. Moim zdanie bardziej zwięzły i programowo poprawny. Podejrzewam tez że efektywniejszy – szybszy.
#!/usr/bin/python
import sys
import Adafruit_DHT
import urllib2
# Domoticz server
SERVER=”192.168.1.201:8080″
# DHT IDX
DHTIDX=”21″
# DHTPIN
DHTPIN=”22″
hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, DHTPIN)
print(‚Temp={0:0.1f}* Humidity={1:0.1f}%’.format(temp, hum))
url = „http://{}/json.htm?type=command&c=getauth¶m=udevice&idx={}&nvalue=0&svalue={:0.1f};{:0.1f};2”.format(SERVER, DHTIDX, temp, hum)
#print (url)
request = urllib2.Request(url)
response = urllib2.urlopen(request)
html = response.read()
print(html)
Agnieszka Kostrzewa
Hej. Dzięki za alternatywę. Bede musial wypróbować. Pozdrawiam
Aleksander
Dopisałem sobie jeszcze kontrole poprawności wyników (bo czasami pojawiają się „śmieci”) i ponowny odczyt
for i in range(9):
hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, DHTPIN)
if (hum > 0) and (hum -30) and (temp < 40):
break
time.sleep(3)
if (i < 9):
print('Temp={0:0.1f}* Humidity={1:0.1f}%'.format(temp, hum))
url = "http://{}/json.htm?type=command&c=getauth¶m=udevice&idx={}&nvalue=0&svalue={:0.1f};{:0.1f};2".format(SERVER, DHTIDX, temp, hum)
print (url)
request = urllib2.Request(url)
response = urllib2.urlopen(request)
html = response.read()
print(html)
else:
print("Błąd odczytu czujki")
Piotr
Witam, po wprowadzeniu pierwszej komendy (sudo apt-get install git-core) otrzymuję taki wynik (oczywiście próbowałem wcześniej update / upgrade):
Czytanie list pakietów… Gotowe
Budowanie drzewa zależności
Odczyt informacji o stanie… Gotowe
Zostaną zainstalowane następujące NOWE pakiety:
git-core
0 aktualizowanych, 1 nowo instalowanych, 0 usuwanych i 3 nieaktualizowanych.
Konieczne pobranie 1 504 B archiwów.
Po tej operacji zostanie dodatkowo użyte 21,5 kB miejsca na dysku.
Błąd:1 http://archive.raspbian.org/raspbian jessie/main armhf git-core all 1:2.1.4-2.1+deb8u7
404 Not Found [IP: 93.93.128.191 80]
E: Nie udało się pobrać http://archive.raspbian.org/raspbian/pool/main/g/git/git-core_2.1.4-2.1+deb8u7_all.deb 404 Not Found [IP: 93.93.128.191 80]
E: Nie udało się pobrać niektórych archiwów, proszę spróbować uruchomić apt-get update lub użyć opcji –fix-missing.
Proszę o pomoc
Agnieszka Kostrzewa
Sorki ale nie mam pojęcia czemu tak się dzieje 🙁
Piotr
OK, dziękuję za szybką odpowiedź
Gosia
Witam,
Świetny artykuł, u mnie działa wszystko jak należy. Zastanawia mnie tylko czy możliwe jest podłączenie szeregowe kilku czujników dht 11 do RPi? W jaki sposób w takiej sytuacji powinien być napisany skrypt?
Agnieszka Kostrzewa
Najłatwiej podłączyć kilka czujników gdzie wspólne jest zasilanie i 0 a pin do komunikacji za każdym razem inny. Nie trzeba tego robić w jednym skrypcie tylko w kilku i po problemie.
Albert
Witam,
Mam zainstalowana najnowsza wersje rasbiana boostera light i niestety nie da sie tego zrobic wedlug tego poradnika, przynajmniej mnie sie nie udaje. Udalo mi sie poprzez strone https://github.com/szazo/DHT11_Python.git i wszystko dziala z poziomu konsoli. Jednak nie widzi czujnika Domoticz. Mysle, problem tkwi w sciezce w pliku temp.sh (moje zdanie) jednak nie potrafie jej okreslic prawidlowo i nie wiem jak to zrobic. Moglbym prosic o jakas podpowiedz?
Pozdrawiam
Agnieszka Kostrzewa
Niestety nie mam żadnych doświadczeń z raspianem boosterem także ciężko mi będzie pomoc 🙁
Albert
Ok rozumiem i dziękuję za szybką odpowiedź. Jeszcze jedno pytanie. Gdyby to była starsza wersja rasbiana to jak określić dokładnie ścieżkę prowadzącą do katalogu, w którym odczytuje się wartości z czujnika?
Dziękuję i pozdrawiam
Agnieszka Kostrzewa
Witam. Ścieżka jest w kodzie temp.sh : home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py