Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:sensors:1_wire

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
hardware:channels:sensors:1_wire [2013/10/12 11:00] – [Raspberrypi] ollirhardware:channels:sensors:1_wire [2017/12/15 18:20] – adding ESPeasy princemichi
Zeile 4: Zeile 4:
  
  
-===== Raspberrypi =====+===== RaspberryPi =====
  
-Den Raspberrypi kann man auch gut zu einlesen der Sensoren verwenden. Ich benutzt hierzu zwei Raspberrypi, einen für die Datenbank und einen für die Temperatursensoren.+Den RaspberryPi kann man gut zum Einlesen der Sensoren verwenden.
  
 +[[hardware:controllers:raspberry_pi_erweiterung_klein|Raspberry Pi-Erweiterung_klein]]\\
 +[[hardware:controllers:raspberry_pi_erweiterung_mit_schaltausgaengen_rev.1|Raspberry Pi-Erweiterung_groß]]\\
 [[http://www.raspiprojekt.de/anleitungen/schaltungen/9-1wire-mit-temperatursensor-ds18b20.html]] [[http://www.raspiprojekt.de/anleitungen/schaltungen/9-1wire-mit-temperatursensor-ds18b20.html]]
  
-Bei mir musste zustäzlich das Script /etc/modules modufiziert werden:+Ohne VZ-Erweiterung muss unter umständen zusätzlich das Script /etc/modules modufiziert werden:
  
 <code> <code>
 # 1wire # 1wire
-w1-gpio   pullup=1+w1-gpio   pullup=1  ( nicht bei den Raspberry Pi-Erweiterungen)
 w1-therm w1-therm
 </code> </code>
 +
 +Eine Übersicht über die Sensoren bekommt man mit "ls /sys/bus/w1/devices/".
  
 Mit dem Befehl "cat /sys/bus/w1/devices/*/w1_slave" kann man dann die Sensoren abfragen. Mit dem Befehl "cat /sys/bus/w1/devices/*/w1_slave" kann man dann die Sensoren abfragen.
  
-Um das ganze dann in die Volkszählerdatenbank zu bekommen brauche wir wieder perl:+ 
 +In der Datenbank des Volkszähler müssen die einzelnen Kanäle angelegt werden. Die Kanalnummer müssen dann in das script übernommen werden [[software/middleware/einrichtung]]. 
 + 
 +Um das ganze dann in die Volkszählerdatenbank zu bekommen brauchen wir wieder perl:
  
 <code> <code>
Zeile 26: Zeile 33:
 </code> </code>
  
-Das Abfragescript selber "get1wire.pl":+Das Abfragescript selber "get1wire.pl", das Script mit "chmod ugo+x get1wire.pl" ausführbar machen:
 <code> <code>
 #!/usr/bin/perl #!/usr/bin/perl
  
 # welche werte sollen geholt werden? # welche werte sollen geholt werden?
-my %Daten = (      # Name => [ Adresse , Faktor ]+my %Daten = (      # Name => [ Adresse onewire, uuid-Volkszaehler , Faktor ]
                         "WWKessel"   => ["28-0000022c2dd7", "834c8be0-293c-11e3-8abd-911b2ff9df4c" , 0.001] , # in GradC                         "WWKessel"   => ["28-0000022c2dd7", "834c8be0-293c-11e3-8abd-911b2ff9df4c" , 0.001] , # in GradC
                         "WWVorlauf"  => ["28-0000022bef46", "860f8b30-2940-11e3-92d2-b39a45aed701" , 0.001] , # in GradC                         "WWVorlauf"  => ["28-0000022bef46", "860f8b30-2940-11e3-92d2-b39a45aed701" , 0.001] , # in GradC
Zeile 66: Zeile 73:
  
   # decodieren   # decodieren
-  $sensor_temp =~ /t=(\d+)/i;+  $sensor_temp =~ /t=(\-?\d+)/i;    # ALT: geht nicht bei Minusgraden$sensor_temp =~ /t=(\d+)/i; 
   $val = (($1*$fak)-0);   $val = (($1*$fak)-0);
  
Zeile 120: Zeile 128:
 </code> </code>
  
-Wenn alles erfolgreich war, dann kann das Script auch vom Cron ausführen lassen: 
  
-Mit crontab -e können dann im Intervall die Daten ausgelesen werden und in der Datenbak gespeichert werden. Achtung: Leerzeile am Ende nicht vergessen. Das Script wird mit der folgenden Einstellung alle 1min ausgeführt.+Das Script sollte dann manuell ausgeführt werden. Wenn alles erfolgreich war, dann kann das Script auch vom Cron ausführen lassen: 
 + 
 +Mit crontab -e können dann im Intervall die Daten ausgelesen werden und in der Datenbank gespeichert werden. Achtung: Leerzeile am Ende nicht vergessen. Das Script wird mit der folgenden Einstellung alle 1min ausgeführt.
 <code> <code>
 # m h  dom mon dow   command # m h  dom mon dow   command
 */1 *        /root/bin/get1wire >/dev/null 2>&1 */1 *        /root/bin/get1wire >/dev/null 2>&1
 </code> </code>
 +
 +===== BananaPi =====
 +
 +Ein HowTo für den BananaPi ist hier zu finden: [[howto:bananapi:1wire an GPIO4|1wire an GPIO4]]
  
 ===== log_onewire.sh ===== ===== log_onewire.sh =====
Zeile 245: Zeile 258:
   CONTROL_END   CONTROL_END
  
 +
 +===== ESPeasy =====
 +Es gibt auch noch weitere Möglichkeiten einen DS18B20 1-Wire Sensor auszulesen und die Messwerte an die Middleware zu übertragen, z.B.mit einem [[hardware:controllers:espeasy|NodeMCU]].
hardware/channels/sensors/1_wire.txt · Zuletzt geändert: 2020/01/19 15:42 von ruperts