Podłączenie czujnika temperatury i wilgotności DHT 11 i DHT 21 do Raspberry Pi w systemie Domoticz

wpis w: Domoticz | 73

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ę.

 

Wersja czujnika DHT11 z diodą sygnalizującą zasilanie
Wersja czujnika DHT11 z diodą sygnalizującą zasilanie

 

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:

 

Oznaczenie wyjść w czujniku DHT11

    Oznaczenie wyjść w czujniku DHT11

 

  1. VCC – podłączamy do 3,3V albo 5V w Raspberry Pi
  2. DATA – podłączamy do Pinu GPIO 4 w Raspberry Pi (pomiędzy VCC a DATA wpinamy Rezystor 4,7Ω lub 10Ω)
  3. Pozostawiamy pusty
  4. Podłączamy do GND w Raspberry Pi

 

Schemat podłączenia czujnika DHT 11 do Raspberry Pi
Schemat podłączenia czujnika DHT 11 do 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:

 

Przykładowe odczyty z czujnika DHT11
Przykładowe odczyty z czujnika DHT11

 

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:

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:

 

cron

 

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.

 

A tak to wygląda u mnie
A tak to wygląda u mnie

 
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.

73 Odpowiedzi

  1. Witam.
    Wyskakuje mi takie coś:
    [email protected]:~/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.

  2. 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

  3. 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ę

  4. 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

    • 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

        • 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

  5. 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 😉

  6. 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!

  7. 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%

  8. Witam serdecznie,
    dziękuję za tą instrukcję i zwracam się jednocześnie o pomoc.

    Mam czujnik DHT21
    W konsoli czujnik odczytuje temperaturę i wilgotność:
    [email protected]:~/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&param=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

      • 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

  9. 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?
    [email protected]:~ $ 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

    • Panie Pawle,
      proszę spróbować:
      curl -s -i -H „Accept: application/json” „http://uzytkownik:haslo@$SERVER/json.htm?type=command&c=getauth&param=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2”

      Pozdrawiam
      Grzegorz

  10. 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

      • 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.

        • [email protected]:~ $ 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”

  11. U mnie wywala taki błąd i nie mam pojęcia dlaczego ;)) liczę na małą podpowiedź 😉

    [email protected]:~/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”
    }

    • Już sobie poradziłem, ten błąd oznaczał że źle podałem numer IDX 😉

    • 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

  12. 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.

  13. 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

  14. 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

  15. 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

  16. Witam,

    stworzyłem wirtualny przycisk w domoticzu ale cały czas wyskakuje mi:

    [email protected]:~ $ ./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

      • #!/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&param=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

  17. 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

    • 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 …

  18. 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 ..

  19. 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

  20. 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

  21. Dobry artykuł, zrobiłem wszystko w 3min i działa tylko, że pokazuje dziwnie niską wilgotność:
    [email protected] ~/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):
    [email protected] ~/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ą:)

      • 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?

        • 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

    • 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

  22. 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ę

  23. 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)

  24. 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

  25. 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

      • 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ź.

  26. mi nie działa ;< walczyłem długo i nie mam pojęcia.
    Próbowałem na dwóch dht22
    [email protected]:~/Adafruit_Python_DHT $ cd examples/
    [email protected]:~/Adafruit_Python_DHT/examples $ sudo ./AdafruitDHT.py 22 4
    Failed to get reading. Try again!
    [email protected]:~/Adafruit_Python_DHT/examples $

Zostaw Komentarz

*