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
hardware:channels:sensors:1_wire [2013/10/12 11:02] – [Raspberrypi] ollirhardware:channels:sensors:1_wire [2020/01/19 15:42] (aktuell) – Einlesen mit vzlogger ergänzt ruperts
Zeile 3: Zeile 3:
 Derzeit haben wir mehrere Möglichkeiten 1-Wire Sensoren auszulesen. Derzeit haben wir mehrere Möglichkeiten 1-Wire Sensoren auszulesen.
  
 +===== RaspberryPi =====
  
-===== Raspberrypi ===== +Den RaspberryPi kann man gut zum Einlesen der Sensoren verwenden.
- +
-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.+
  
 +[[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 modifiziert 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/".+Eine Übersicht über die Sensoren bekommt man mit ''ls /sys/bus/w1/devices/''.
  
-Mit dem Befehl "cat /sys/bus/w1/devices/*/w1_slavekann man dann die Sensoren abfragen.+Mit dem Befehl ''cat /sys/bus/w1/devices/*/w1_slave'' kann man dann die Sensoren abfragen.
  
  
 +In der Datenbank des Volkszähler müssen die einzelnen Kanäle angelegt werden. Die Kanalnummern müssen dann in das Script bzw. Config-File übernommen werden [[software/middleware/einrichtung]].
  
 +Um das ganze dann in die Volkszählerdatenbank zu bekommen, gibt es mehrere Möglichkeiten.
  
-Um das ganze dann in die Volkszählerdatenbank zu bekommen brauche wir wieder perl:+==== Einlesen mit vzlogger ==== 
 + 
 +Siehe 1wire an GPIO des BananaPi, Abschnitt [[howto:bananapi:1wire an GPIO4#vzlogger.conf]]. 
 + 
 +==== Einlesen mit perl-Script ====
  
 <code> <code>
Zeile 31: Zeile 38:
 </code> </code>
  
-Das Abfragescript selber "get1wire.pl"+Das Script mit ''chmod ugo+x get1wire.pl'' ausführbar machen
-<code>+<code perl get1wire.pl>
 #!/usr/bin/perl #!/usr/bin/perl
  
Zeile 71: Zeile 78:
  
   # 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 125: Zeile 133:
 </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 178: Zeile 191:
  
 Dann ganz normal kompilieren. "Include unix timstamp" funktioniert **so nicht** für Volkszaehler, siehe unten. Dann ganz normal kompilieren. "Include unix timstamp" funktioniert **so nicht** für Volkszaehler, siehe unten.
- 
  
  
Zeile 215: Zeile 227:
   ON STARTUP DO THREAD_START(1wirelog) END   ON STARTUP DO THREAD_START(1wirelog) END
   CONTROL_END   CONTROL_END
-  </code>+</code>
  
 Für control6 ist bei aktiviertem "Onewire naming support" ebenfalls eine neuer Befehlt vorhanden. Für control6 ist bei aktiviertem "Onewire naming support" ebenfalls eine neuer Befehlt vorhanden.
Zeile 224: Zeile 236:
 Beispiel mit aktiviertem Timestamp und Namensupport : Beispiel mit aktiviertem Timestamp und Namensupport :
  
 +<code>
   C6_HEADER(`/* This will be in control6.h */')   C6_HEADER(`/* This will be in control6.h */')
   dnl   dnl
Zeile 249: Zeile 262:
     ON STARTUP DO THREAD_START(onewire) END;     ON STARTUP DO THREAD_START(onewire) END;
   CONTROL_END   CONTROL_END
 +</code>
  
 +===== 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.1381568537.txt.gz · Zuletzt geändert: 2013/10/12 11:02 von ollir