Apr 26

Ich betreibe hier seit über einem Jahrzehnt ein paar von diesen netten günstigen Dallas-1-Wire Dingern (DS1820) an einer Linuxkiste mit samt USB-Host-Adapter im sog. „Parasite-Mode“ (Ausser GND und Data benötigt man da nichts, und kann ein paar von den Sensoren – an bspw. im Haus liegenden Telefonkabeln – abfragen).

Der USB-Host-Adapter ist eigentlich überflüssig, da der Pi das mit seinen GPIO’s von Haus aus kann. Und das ganze ist derartig trivial, dass ich es hier kurz erklären will. Man nehme:

  • den o.g. DS1820 (da gibts div. Variationen von, die sich in der Präzision unterscheiden – kosten ca. 2 Euro)
  • Einen Pi – mit Linux drauf.

 

Den 1820 wie folgt mit dem Pi verbinden:

GND auf GND // Vdd auf 3,3V // VDQ (Data) auf GPIO 4

(Hier eine Ansicht des 1820, und hier eine des GPIO-Ports vom Pi)

Dann ab auf die Shell und kurz 2 Kernel-Module nachladen:

 pi@rasbberrypi ~ $ sudo modprobe w1-gpio pullup=1
 pi@rasbberrypi ~ $ sudo modprobe w1-therm
									

Wenn alles richtig gelaufen ist, gibt es unter /sys/bus/w1/devices nun ein neues Verzeichnis mit der Unique-ID des 1820 (Die haben alle eine Art Mac-Adresse, die die einmalig macht) in dem wiederum eine Datei mit dem Namen „w1_slave“ liegt. Angenommen der 1820 hat die ID „28-0000041234567“ so heisst unsere Datei : „/sys/bus/w1/devices/28-000004593386/w1_slave“. Wenn man sich diese anzeigen lässt (zB via cat), kommt (etwas unsexy) der platte Temperaturwert als ASCII zum Vorschein.

Den hübschen wir nun noch auf, und schon haben wir einen Wert, den man weiterverarbeiten kann (snmp, website, wo auch immer):

cat /sys/bus/w1/devices/28-000004593386/w1_slave |\
grep -e 't=' | \
awk -F't=' '{print $2}'
									

Günstiger kann man keine Temperaturen messen – und erweiterbar und flexibel ist es auch noch. (Es sei denn man will unbedingt 100 Euro für das neueste, hippe, bunte Temperaturmessdevice, dass nur mit App läuft, ausgeben und die Werte alle Nasen lang in die Cloud pumpen…)

Tagged with:
Mrz 26

Sehr cool was mit dem Arduino so alles machbar ist. Um es vorweg zu nehmen: Mit dem Ding habe ich eine Ansteuerung eines BetaBrite LED-Moduls via Netzwerk gebaut (also im „Live-Betrieb“ OHNE Rechner benutzbar).

Doch vorne angefangen:

Vor ein paar Jahren hatte ich mir bei eBay ein BetaBrite geschossen – Das ist so eine nette Laufschrift, die man zum Leute quälen draussen an seinen Copyshop hängen kann, so man(n) den einen hat. Die Idee war damals die Temperaturdaten meiner Wetterstation und ein paar andere Dinge anzeigen zu lassen. Ist aber nie so richtig umgesetzt worden, da mein „Serverpark“ im Keller steht, und die Anzeige dort natürlich null Nutzwert hat. Vor ein paar Tagen bin ich dann auf das Arduino-Projekt gestossen – klang (und ist auch) alles sehr vielversprechend:

Eine simple Plattform incl. Entwicklungsumgebung für die ATMEGA-Microcontroller Serie mit massenweise Zubehör. Wer das Ding nicht kennt, einfach mal bei arduino.cc umschauen. Bezugsquellen sind u.a. watterod, komputer.de oder auch farnell.com, sofern man (bei farnell) denn im Besitz eines Stundentenausweises ist (Die Spareffekte dort sind vernachlässigbar). Der Knaller an dem Ding ist jedoch der Preis. So gibt es den Arduino für ca. 20-28 Euronen incl. Versand zu haben. Der Microcontroller lässt sich über die USB-Schnittstelle (sowohl auf Mac, PC oder Linux) in einer Art C-Dialekt für Kids programmieren (Ist wirklich extremst Easy). Das ganze geht so in Richtung SPS – daher heisst der Dialekt wohl auch „Processing“. Man hat im Template quasi 2 vorgefertigte „Prozeduren“:

  • void setup – wird einmalig aufgerufen, wenn der ATMEGA hochgefahren wird und dient zum initialisieren der Ports, etc.
  • void loop – wird, wie der Name schon sagt, im Loop kontinuierlich durchlaufen – bei mir kamen da direkt Errinerungen an die Lehrzeit wieder hoch (SPS – Merker setzen und sowas)

Hardwaretechnisch verfügt das Ding über 14 Digitale I/O Pins, von denen 6 per PWM ansteuerbar sind (alles TTL-Pegel), sowie 6 Analoge ein/Ausgänge mit einer 8bittigen genauigkeit im A/D bzw. D/A Wandler. Sämtliche Anschlüsse sind auch für Wurstfinger, wie meine, leicht verfügbar, sodass Löten – wenn man es denn nicht gerade drauf anlegt – ausfällt.

Zurück zum Titel dieses Eintrags. Zusätzlich zum Board habe ich mir noch eine Ethernet-Shield gegönnt. Shields sind sowieso die Erfindung hier uberhaupt. Man kann sich das als „Huckepack“-Platine vorstellen, die bestimmte Pins des Arduinos belegen und dann weiter Funktionalitäten bereitstellen. Das eth-Shield stellt also einen Netzanschluss zur Verfügung, und genehmigt sich dafür 6 Pins. (Eine gute übersicht über den „Pinverbrauch“ und verfügbare Shields gibts übrigens bei shieldlist.org). Das Shield selbst lässt sich dann im „Processing“ über ein paar Simple Funktionen ansteuern / auslesen.

Problematisch beim BetaBrite war, dass dieses über eine RS232 (vulgo: Serielle) Schnittstelle verfügt, der Arduino aber nur TTL-Pegel verarbeiten kann. Es gibt für den Ard. eine Serial-Library, mit der man aus zwei weiteren Pins einen Seriellen Anschluss „emulieren“ kann, aber ohne korrekte RS232-Pegel ist das suboptimal. Was tun ? Mal ein wenig gekramt, und dann ist mir ein MAX232 zwischen die Finger gekommen – quasi genau das was man braucht. Die Schaltung mit dem MAX232 ist mehr als simpel (Einfach ausgedrückt konvertiert der 232 die Pegel). Somit steht das ganze Hardwaremässig schonmal. Ethernet-Shield -> Arduino -> MAX232 -> BetaBrite. Fehlt nur noch die „Software“. Die Ansteuerung der BetaBrites ist schnell im Netz gefunden (z.B. hier, bzw. als PDF direkt beim Hersteller). Der Code auf dem Arduino umfasst gerade mal 2kB (incl. inline-Dokumentation !!!). Falls interesse besteht, stell ich den gerne mal hier ein.

Was kann das ganze jetzt ?

Nun, Der Microcontroller mit Ethernetanschluss „horcht“ auf TCP-Port 23. Immer wenn sich etwas connected und eine Zeile schreibt, dann gibt der Controller das an das Betabrite weiter. Serverseitig kann ich nun, aus dem Keller heraus :-), das BetaBrite ansteuern, wo immer auch Netz verfügbar ist…

Tagged with:
Jan 09

Habe mal ein paar Links zusammengesucht, mit denen sich die Hochwasserlage im Bonner/Kölner Raum recht gut beobachten lässt:

Wenn noch jemand weitere Links hat – immer her damit…

[EDIT:] Pegel im Vergleich / zum „selberkombinieren“

Tagged with:
Jan 03

Endlich bin ich mal dazu gekommen die Wetterdatenseite neu aufzubauen. Was gibt es dort zu sehen ?

  • Aktuelles Wetter aus Oberdollendorf / Königswinter im Rheinland bestehend aus:
    • Luftfeuchtigkeit
    • Aussentemperatur
    • Das ganze als zusätzlich als Diagramm der letzten sechs Tage
    • Aktualisiert im 5 Minutentakt
  • Aktuelles Bild (Aktualisierung jede Minute) der Webcam mit Blick auf den Petersberg (wenn denn nicht zu nebelig ist 🙂

Hintergründe, wie das ganze technisch realisiert ist, gibt es auf der Seite „Meine Wetterstation„. Viel Spass beim abrufen der Wetterdaten aus dem Rheinland

Tagged with:
Mrz 19

Der „Winter“, oder was auch immer das sein mag, hat nun doch noch ein, wahrscheinlich kurzes, Gastspiel im Sauerland eingelegt. So sah es heute morgen hier vor der Türe aus:

Nov 26

Von nun an gibt es, rechts in der Sidebar zum anklicken bzw. abonnieren, das aktuelle Mescheder Wetter auch als RSS-Feed zu beziehen.

Nov 09

Inspiriert von der Heatmap by crazyegg habe ich mal versucht eine eigene Karte zu bauen, eine mit Wetterdaten. Mal schauen wo man demnächst eine neue Wetterkarte bewundern kann. So richtig fein mit Farbverlauf usw. Z.zt. ist das Ding allerdings noch ein wenig Beta. Der letzte Blog-Eintrag mit ImageMagick hat zumindest seinen teil dazugetan. So wird Sie irgendwann aussehen… (click für gross)

Wetterkarte_Beta

Update 10.11.2006:
Der Link hinter der Beispielkarte zeigt jetzt auf eine Beispielkarte – immer noch Beta, aber funktionsfähig und ausbaubar 😉

Nov 04

Da war die Post schneller als ich dachte. Die neue Wetterstation ist heute schon angekommen. Also, fix ausgepackt, angeschlossen und die Sensoren (provisorisch) verteilt, und schon läufts. Die Daten kommen jetzt im 5-Minuten-Takt herausgepurzelt und werden rechts in der Sidebar angezeigt. Das Integrieren ging erstaunlich einfach. Grafisch kann man sich die Historie übrigens hier ansehen. Nett, oder ?
Mehr zur Realisierung via Perl, der Datenhaltung und zur Station hier im Blog nächste Woche.

Nov 01

Langsam bin ich es leid, mein Datenlieferant für frische Wetterdaten (rechts in der Sidebar) hat wohl Connectprobleme mit seinem DSL. Daher habe ich mal ein wenig gesucht, und bin selbst fündig geworden. Demnächst kommt mir also eine „Matrix“ Wetterstation ins Haus. Das schöne an dem Gerät ist, die ist:

  • günstig
  • via Linux ansteuerbar
  • mit allem Schnickschnack ausgestattet (Regensensor, Aussensensor etc. schon dabei)

damit sollte es in Zukunft weniger Probleme mit der Datenversorgung geben.

Okt 31

Nun gibts auch rechts in der Sidebar aktuelle Wetterdaten aus meinem Heimatdörfchen. Sieht irgendwie noch suboptimal aus, aber was nicht ist, kann ja noch werden. Die Daten werden via Ajax (huch – Web 2.0) direkt gezogen und anschliessend angezeigt. Wer sich an den XML-Feed anschliessen möchte, kurze Mail an mich.

Joerch

preload preload preload