[HowTo] Temperatur und Feuchtigkeitssensor DHT11/DHT22 an SaS

in bisschen

Code:
root@s4:~/Adafruit_Python_DHT/Adafruit_DHT# ./tempfeuchtwpi dht11 info 4Fehler: Daten Lesefehler!
┌────────────────────────────────────────────────────┐
│ tempfeuchti2c Version 1.00.0149 (C)2016 BlueDragon │
├───────────────────────────────────────────┬────────┤
│ Temperatur                                │  -,-°C │
│ Luftfeuchtigkeit                          │  -,-%  │
├───────────────────────────────────────────┼────────┤
│ Sensor:  DHT11  GPIO: wiringPi-Pin#: 04   │        │
│ Daten:  (00000):    0x00 0x00 0x00 0x00   │ Fehler │
└───────────────────────────────────────────┴────────┘
root@s4:~/Adafruit_Python_DHT/Adafruit_DHT# ./tempfeuchtwpi dht11 info 7
┌────────────────────────────────────────────────────┐
│ tempfeuchti2c Version 1.00.0149 (C)2016 BlueDragon │
├───────────────────────────────────────────┬────────┤
│ Temperatur                                │  0,0°C │
│ Luftfeuchtigkeit                          │  0,0%  │
├───────────────────────────────────────────┼────────┤
│ Sensor:  DHT11  GPIO: wiringPi-Pin#: 07   │        │
│ Daten:  (00040):    0x00 0x00 0x00 0x00   │ Ok     │
└───────────────────────────────────────────┴────────┘

muss ich den Sensor umhängen auf 0 oder 1 ?
 
Zuletzt bearbeitet:
Beim Pin 7 hat er zumindest 40 Bytes gelesen. Das passt. Lass dem Sensor etwas Zeit und rufe es nach ner Minute nochmal auf.
 
Zuletzt bearbeitet:
ändert nichts ... muss jetzt in die Falle ...
 
Ich schau, was ich da basteln kann...
Gute Nacht :)

- - - Aktualisiert - - -

Neue Fassung: Link zu tempfeucht.zip ;)

- - - Aktualisiert - - -

Nachtrag: ggf. noch
apt-get install wiringPi
installieren

- - - Aktualisiert - - -

Oben nochmal eine neue Fassung (gleicher Link).
 
yepp, that's it.
Code:
root@s4:~/Adafruit_Python_DHT/Adafruit_DHT# ./tempfeuchtwpi dht11 info 7
┌────────────────────────────────────────────────────┐
│ tempfeuchtwpi Version 1.00.0178 (C)2016 BlueDragon │
├───────────────────────────────────────────┬────────┤
│ Temperatur                                │ 24,0°C │
│ Luftfeuchtigkeit                          │ 40,0%  │
├───────────────────────────────────────────┼────────┤
│ Sensor:  DHT11  GPIO:  wiringPi-Pin#: 07  │        │
│ Daten:  (00040):0x28 0x00 0x18 0x00 0x40  │ Ok     │
└───────────────────────────────────────────┴────────┘
root@s4:~/Adafruit_Python_DHT/Adafruit_DHT# ./tempfeuchtwpi dht11 info 9
┌────────────────────────────────────────────────────┐
│ tempfeuchtwpi Version 1.00.0178 (C)2016 BlueDragon │
├───────────────────────────────────────────┬────────┤
│ Temperatur                                │ 23,0°C │
│ Luftfeuchtigkeit                          │ 57,0%  │
├───────────────────────────────────────────┼────────┤
│ Sensor:  DHT11  GPIO:  wiringPi-Pin#: 09  │        │
│ Daten:  (00040):0x39 0x00 0x17 0x00 0x50  │ Ok     │
└───────────────────────────────────────────┴────────┘
root@s4:~/Adafruit_Python_DHT/Adafruit_DHT#

- - - Aktualisiert - - -

root@s4:~/Adafruit_Python_DHT/Adafruit_DHT# ./tempfeuchtwpi dht11 t 7
230
root@s4:~/Adafruit_Python_DHT/Adafruit_DHT# ./tempfeuchtwpi dht11 f 7
410


jetzt brauche ich wieder nachhilfe um mir die SAS 5.0 Zeile zusammenzubasteln
 
Demnach funktioniert es. :)

Poste nochmal deine aktuelle psg dazu und den Pfad, wo du tempfeuchtwpi liegen hast (oder ist der Pfad mit Programmdatei: /root/Adafruit_Python_DHT/Adafruit_DHT/tempfeuchtwpi ? )
 
ja klappt ... Pfad stimmt so ..

psdKeller_DHT.php
Code:
<?php


    /*
        +---------------------------------------------------------------------+
        |                                                                     |
        |   SensorAndSwitch                                      PSG-Script   |
        |                                                                     |
        +---------------------------------------------------------------------+
    */


    include __DIR__."/../include/psg.php";
    $gerarray=getGerInfo(substr(basename(__FILE__,".php"),3));


    if ($gerarray["Counter"]>=4) {
        $ver="V#V 1.00#";
        
				#$befehl='sudo /var/www/sas/getdht11.sh';
        #$url=$helperurlpi."?befehl=".encodiere($befehl,33455);
        #$Status=web($url,$post);
        
        $befehl="tac /media/usbstick/dht11/dht11_2.txt | cut -c6-9";
        $url=$helperurlpi2."?befehl=".encodiere($befehl,33455);
        $temp1=web($url,$post);
                
        $befehl="tac /media/usbstick/dht11/dht11_2.txt | cut -c22-25";
        $url=$helperurlpi2."?befehl=".encodiere($befehl,33455);
        $feucht1=web($url,$post);
        
     $echo='P#<div style="font-size:16px;text-align:right;width:240px;position:absolute;top:-5px;">Luftfeuchtig. : '.sprintf("%.1f",$feucht1).' %%<br />Temperatur..   : '.sprintf("%.1f",$temp1).'°C</div>*HTML#'.$ver;      
                                       }
    else {
        $echo=$ver."C##";
         }
    echo $echo;
    exit;
?>
 
Sorry, war gerade nicht am PC.

PHP:
<?php

    /*
        +---------------------------------------------------------------------+
        |                                                                     |
        |   SensorAndSwitch                                      PSG-Script   |
        |                                                                     |
        +---------------------------------------------------------------------+
    */

    include __DIR__."/../include/psg.php";
    $gerarray=getGerInfo(substr(basename(__FILE__,".php"),3));

    if ($gerarray["Counter"]>=4) {
        $ver="V#V 1.00#";
        
        $befehl='sudo /root/Adafruit_Python_DHT/Adafruit_DHT/tempfeuchtwpi dht11 t 7 2>/dev/null';
        $url=$helperurlpi2."?befehl=".encodiere($befehl,33455);
        $temp1=web($url,$post)/10;
        
        $befehl="sudo /root/Adafruit_Python_DHT/Adafruit_DHT/tempfeuchtwpi dht11 f 7 2>/dev/null";
        $url=$helperurlpi2."?befehl=".encodiere($befehl,33455);
        $feucht1=web($url,$post)/10;
        
        $echo='P#<div style="font-size:16px;text-align:right;width:240px;position:absolute;top:-5px;">Luftfeuchtig. : '.sprintf("%.1f",$feucht1).' %%<br />Temperatur..   : '.sprintf("%.1f",$temp1).'°C</div>*HTML#'.$ver;      
                                       }
    else {
        $echo=$ver."C##";
         }
    echo $echo;
    exit;
?>
 
Ist doch kein Ding, alles nicht lebensnotwendig; Ich glaube das wird zu schnell hintereinander abgefragt, da kommen dann schnell KEINE Werte mehr, vielleicht doch nur einmal Abfragen und gleich beide Werte ziehen?
 
mach folgendes:
PHP:
 <?php

    /*
        +---------------------------------------------------------------------+
        |                                                                     |
        |   SensorAndSwitch                                      PSG-Script   |
        |                                                                     |
        +---------------------------------------------------------------------+
    */

    include __DIR__."/../include/psg.php";
    $gerarray=getGerInfo(substr(basename(__FILE__,".php"),3));

    if ($gerarray["Counter"]>=4) {
        $ver="V#V 1.00#";
        $dummy=sleep(2);
        $befehl='sudo /root/Adafruit_Python_DHT/Adafruit_DHT/tempfeuchtwpi dht11 t 7 2>/dev/null';
        $url=$helperurlpi2."?befehl=".encodiere($befehl,33455);
        $temp1=web($url,$post)/10;
        $dummy=sleep(2);    
        $befehl="sudo /root/Adafruit_Python_DHT/Adafruit_DHT/tempfeuchtwpi dht11 f 7 2>/dev/null";
        $url=$helperurlpi2."?befehl=".encodiere($befehl,33455);
        $feucht1=web($url,$post)/10;
        
        $echo='P#<div style="font-size:16px;text-align:right;width:240px;position:absolute;top:-5px;">Luftfeuchtig. : '.sprintf("%.1f",$feucht1).' %%<br />Temperatur..   : '.sprintf("%.1f",$temp1).'°C</div>*HTML#'.$ver;      
                                       }
    else {
        $echo=$ver."C##";
         }
    echo $echo;
    exit;
?>

- - - Aktualisiert - - -

Ich baue in die nächste Version des Programms den Parameter tf bzw. th ein. Dann liefert er beide Werte und man kann dann das psg entsprechend abändern. Aber so wie oben müsste es erstmal laufen. Ggf. sleep auf 2 setzen. (Hab ich oben auch korrigiert.)
 
dank, ja das geht, dann kann ich meinen cron wieder löschen ;)

edit: was Du auch noch einbauen kannst, ist das keine 0 zurpck kommt? oder zwei Null bei T und f, also die falschen Auslesungen irgendwie verhindert werden?
 
So, neue Fassung:

PHP:
<?php

    /*
        +---------------------------------------------------------------------+
        |                                                                     |
        |   SensorAndSwitch                                      PSG-Script   |
        |                                                                     |
        +---------------------------------------------------------------------+
    */

    include __DIR__."/../include/psg.php";
    $gerarray=getGerInfo(substr(basename(__FILE__,".php"),3));

    if ($gerarray["Counter"]>=4) {
        $ver="V#V 1.00#";
        $dummy=sleep(2);
        $befehl='sudo /root/Adafruit_Python_DHT/Adafruit_DHT/tempfeuchtwpi dht11 tf 7 2>/dev/null';
        $url=$helperurlpi2."?befehl=".encodiere($befehl,33455);
        $erg=web($url,$post);
        if ($erg=="") {
            $echo=$ver."C##";
        }
        else {
            $erg=explode(" ",$erg);
            $temp1=$erg[0]/10;
            $feucht1=$erg[1]/10;
            $echo='P#<div style="font-size:16px;text-align:right;width:240px;position:absolute;top:-5px;">Luftfeuchtig. : '.sprintf("%.1f",$feucht1).' %%<br />Temperatur..   : '.sprintf("%.1f",$temp1).'°C</div>*HTML#'.$ver;
        }
    }
    else {
        $echo=$ver."C##";
         }
    echo $echo;
    exit;
?>


Link für tempfeuchtwpi wie gehabt, da aktualisiert. Bitte testen ;)
Link zu tempfeucht.zip

- - - Aktualisiert - - -

Gewünschtes ist alles eingebaut. ;)
 
Andere Frage hast Du eine Empfehlung für eine schmalen Temperatursensor, dann könnte ich mein Buderus Gateway wieder ganz verticken, das ist totaler Müll und die Temperaturfühler an der Heizung sind viel schlechter als schon diese Lösung nach 3 Tagen basteln, das ist unglaublich ...
 
Wenn es nur um Temperatur geht, dann nutze ich die USB-Lösung. Ist nicht billig, aber der Sensor selbst ist 2-3 Millimeter mit drei Beinchen. Kabel dran und dann am Interface angeschlossen. Das Kabel zwischen Sensor und Interface kann sehr lang sein. Programm dazu gibts auch schon in SAS. Ich hab hier drei im Einsatz und funktionieren gut.

- - - Aktualisiert - - -

https://www.amazon.de/gp/product/B00GLURDTE/ref=oh_aui_search_detailpage?ie=UTF8&psc=1

5 Sensoren sind dabei

Zur Zeit hab ich zwar nur einen pro Pi hängen, aber es gehen auch mehr, muss ich nur mein Programm erweitern.
 
Zuletzt bearbeitet:
ginge ein DS18B20, den bekommt man vergossen ?
 
Habe mal 3 Stück bestellt ...

Ach so: feedback: DHT11 ... geht ;)

So muss morgen früh raus, vielen Dank ... macht Spaß ...
 
Ich denke, ich könnte auch ein C++-Programm für wiringPi schreiben... ;)

Beim direkten Anschluss an den GPIO muss aber ein 4,7kOhm Widerstand dazwischen.

- - - Aktualisiert - - -

Prima :)
Gute Nacht.
 
Kannst du das nicht in das bestehende (dann final) integrieren?
 
Jeder Sensor hat ein anderes "System", sich über wiringPi zu "melden". Daher lieber entsprechend eigene, kleine Programme, aber das schaue ich mir nochmal genauer an.

- - - Aktualisiert - - -

Der DS18B20 legt wenn mit den GPIO verbunden im Verzeichnis /sys/bus/w1/devices eine Datei 28-xxxxxxxxxxxx an, die den Temp-Wert enthält. Könnte man dann direkt im psg verarbeiten. ;)

- - - Aktualisiert - - -

Code:
/sys/bus/w1/devices/28-xxxxxxxxxxxx/w1_slave | grep  -E -o ".{0,0}t=.{0,5}" | cut -c 3-

/sys/bus/w1/devices/28-xxxxxxxxxxxx/w1_slave
Code:
aa 01 4b 46 7f ff 06 10 84 : crc=84 YES
aa 01 4b 46 7f ff 06 10 84 t=26625
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.