Pimp my Net-IO

Jetzt im Urlaub bin ich endlich dazu gekommen, eines der AVR Net-IO von Pollin zu pimpen, die ich mir gefühlt vor Jahren gekauft habe. Ich hatte mir schon einige Zeit vorgenommen z.B. die Linear-Regler durch Traco-Power Schaltregler zu ersetzen. Die sind einfach PIN-kompatibel, aber deutlich effizienter. OK, leider auch nicht ganz billig. Des weiteren habe ich den Atmega32 durch eine Atmega 1284p ersetzt. Und die Firmware auf Ethersex (ja, heißt wirklich so) umgestellt. Hier ein Bild von meinem Bastel-Setup:

netio

Natürlich stellt sich jetzt die Frage, wieso…..

…um diverse Messwerte zu erheben und diese in meiner bereits vorhandenen Monitoring- und Visualisierungs-Infrastruktur (Icinga, Cacti) zu verwenden. Dazu gehören im Moment Wetter-Daten wie Luftdruck, Temperatur und Luftfeuchtigkeit, Innen wie Aussen. Wie im Bild zu sehen, habe ich folgende Sensoren auf dem Steckbrett untergebracht:

  • BMP085 Luftdrucksensor (in Form des GY-65 Breakout, gibts günstig bei Amazon)
  • AM2303/DHT22 Temperatur und Luftfeuchtigkeit (für draussen, auch von Amazon)
  • DS18B20 One-Wire Temperatur (für drinnen)

Netterweise unterstützt Ethersex alle diese Sensoren bereits mehr oder weniger Out of the Box. Die OneWire-Sensoren und den DHT22 kann man direkt per SNMP abfragen. Hier eine beispielhafte Ausgabe für den DHT22:

$ snmpwalk -v1 -c public 192.168.131.123 .1.3.6.1.4.1.39967.5
iso.3.6.1.4.1.39967.5.1.0 = INTEGER: 333
iso.3.6.1.4.1.39967.5.2.0 = INTEGER: 246
iso.3.6.1.4.1.39967.5.3.0 = INTEGER: 430
End of MIB

Hier für den OneWire Bus. OneWire mit DS18B20 bietet sich vor allem an, um viele Sensoren in einem einfache Bus zu betreiben. 20m und mehr Kabellänge – z.B. 3-adriges Mikrofonkabel ist sehr flexibel und beständig – sind kein Problem. Ein OneWire Bus kann sehr einfach an den Schraubklemmen des Net-IO angeschlossen werden, wenn man den ADC nicht verwenden möchte. Dort stehen auch gleich entsprechende 5V und GND zur Verfügung. Man kann die Sensoren auch “parasitär” mit Strom versorgen, allerdings habe ich mich entschieden auf einen 3-adrigen Bus zu gehen.

$ snmpwalk -v1 -c public 192.168.131.123 .1.3.6.1.4.1.39967.3
iso.3.6.1.4.1.39967.3.1.0 = STRING: “28754c7a05000023”
iso.3.6.1.4.1.39967.3.1.1 = STRING: “0000000000000000”
iso.3.6.1.4.1.39967.3.1.2 = STRING: “0000000000000000”
iso.3.6.1.4.1.39967.3.1.3 = STRING: “0000000000000000”
iso.3.6.1.4.1.39967.3.1.4 = STRING: “0000000000000000”
iso.3.6.1.4.1.39967.3.1.5 = STRING: “0000000000000000”
iso.3.6.1.4.1.39967.3.1.6 = STRING: “0000000000000000”
iso.3.6.1.4.1.39967.3.1.7 = STRING: “0000000000000000”
iso.3.6.1.4.1.39967.3.1.8 = STRING: “0000000000000000”
iso.3.6.1.4.1.39967.3.1.9 = STRING: “0000000000000000”
iso.3.6.1.4.1.39967.3.3.0 = INTEGER: 249
iso.3.6.1.4.1.39967.3.3.1 = INTEGER: 0
iso.3.6.1.4.1.39967.3.3.2 = INTEGER: 0
iso.3.6.1.4.1.39967.3.3.3 = INTEGER: 0
iso.3.6.1.4.1.39967.3.3.4 = INTEGER: 0
iso.3.6.1.4.1.39967.3.3.5 = INTEGER: 0
iso.3.6.1.4.1.39967.3.3.6 = INTEGER: 0
iso.3.6.1.4.1.39967.3.3.7 = INTEGER: 0
iso.3.6.1.4.1.39967.3.3.8 = INTEGER: 0
iso.3.6.1.4.1.39967.3.3.9 = INTEGER: 0
iso.3.6.1.4.1.39967.3.4.0 = INTEGER: 1
iso.3.6.1.4.1.39967.3.4.1 = INTEGER: 0
iso.3.6.1.4.1.39967.3.4.2 = INTEGER: 0
iso.3.6.1.4.1.39967.3.4.3 = INTEGER: 0
iso.3.6.1.4.1.39967.3.4.4 = INTEGER: 0
iso.3.6.1.4.1.39967.3.4.5 = INTEGER: 0
iso.3.6.1.4.1.39967.3.4.6 = INTEGER: 0
iso.3.6.1.4.1.39967.3.4.7 = INTEGER: 0
iso.3.6.1.4.1.39967.3.4.8 = INTEGER: 0
iso.3.6.1.4.1.39967.3.4.9 = INTEGER: 0

Für den BMP085 gibt es noch nicht die Möglichkeit, die Daten per SNMP aus zu lesen. Aber da Ethersex Open-Source ist, rüste ich das jetzt als nächstes nach. Leider ist es im Moment auch nicht möglich mehr als einen DHT11 oder DHT22 Sensor zu betreiben. Auch daran arbeite ich gerade, da ich gerne für die Innenräume die sehr günstigen DHT11 Schätzeisen verwenden möchte.

Natürlich ist es auch möglich, sich auf dem Net-IO per telnet ein zu loggen und Daten ab zu rufen. Ich ziehe zwar SNMP vor, aber jeder wie er will. Und es gibt auch einen Web-Server, auf den ich hier aber nicht weiter eingehe. Hier ein Screenshot einer Terminal-Session in der ich einige Kommandos abgesetzt habe.

netio-telnet

Praktisch ist auch, dass im Ethersex-Framework bereits eine Debug-Ausgabe via UART vorgesehen ist, und der Net-IO bereits eine brauchbare Schnittstelle dafür an Board hat. Somit ist es komfortabel, neue Module zu entwickeln und an brauchbaren Debug-Ouput zu kommen. Hier ein Beispiel:

netio-debug

Und wenn die oben beschriebenen Punkt soweit abgehandelt sind, dann habe ich noch ein paar Ideen 😉

  • Anbindung meiner günstigen PIR Sensoren zur Personenerkennung
  • Strom-Sensor zur Verbrauchsmessung
  • RFM12 Funkanbindung (Ethersex kann IP auf diesem Layer)

D.h. da ist noch einiges an Bastelspaß drinn…

Leave a Reply