1-wire Wetterstation (Teil 1: Installation)

In letzter Zeit wurde in den Medien vermehrt über den 1-wire Bus berichtet. Er bietet Kabellängen von bis zu 800 Metern und es gibt günstige Sensoren, die über den Bus mit Strom versorgt werden. Darüber hinaus kann man die Sensoren sowohl sternförmig als auch in einer Reihe anschließen. Höchste Zeit also, um mir den Bus mal näher anzusehen. Also beschloss ich mit meiner Tochter eine Wetterstation auf Basis des 1-wire Bus zu bauen. In der ersten Ausbaustufe haben wir uns dabei auf Temperatur- und Feuchtigkeitssensoren beschränkt. In der zweiten Ausbaustufe sollen dann weitere Sensoren folgen.

Als Hardwareplattform haben wir eine AMD Geode LX CPU und ein ALIX-Board verwendet, da uns der geringe Stromverbrauch und Preis überzeugten. Die Hardware hat insgesamt 249,69- € gekostet und der Stromverbrauch liegt bei unter 5 Watt.

Lieferant Hersteller/Model Preis
Amazon Mainboard ALIX.1D, Bundle (Board, Netzteil,
CF, Gehäuse)
113,58- €
www.fuchs-shop.com 1-Wire Verteiler 8-fach 17,90- €
www.fuchs-shop.com LinkUSB 27,90- €
www.fuchs-shop.com MS-TH 51,90- €
www.fuchs-shop.com Patchkabel 10m 2,00- €

Als Softwareplattform haben wir ein Ubuntu Linux 10.04 Server verwendet, welches wir „minimal“ als „LAMP-Server“ (Linux, Apache, MySQL und PHP) installiert haben. Weitere Informationen über ALIX und Ubuntu findet man auf den Webseiten http://wiki.ubuntuusers.de/Alix und https://help.ubuntu.com/community/1wireSoftware.

Installation von Ubuntu
Zunächst haben wir Ubuntu 10.04 Server wie auf der Webseite http://wiki.ubuntuusers.de/Alix beschrieben installiert. Nach der „minimalen“ Installation mussten noch einige Softwarepakete nachinstalliert werden.

sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
sudo apt-get install libfuse-dev
sudo apt-get install libusb-dev
sudo apt-get install libusb++-dev
sudo apt-get install swig
sudo apt-get install php5
sudo apt-get install php5-dev
sudo apt-get install python-dev
sudo apt-get install libperl-dev
sudo apt-get install tcl-dev

Danach haben wir die neuste Version des OWFS von der Webseite http://sourceforge.net/projects/owfs/files/ herunter geladen und kompiliert (man könnte natürlich auch ein Paket bauen). Dazu haben wir einfach das Archiv das wir herunter geladen haben entpackt und sind in das Verzeichnis owfs gewechselt. Danach braucht man nur die folgen befehle anwenden.

./bootstrap
./configure
make
sudo make install
modprobe fuse

Danach haben wir die Sensoren angeschlossen, ein Verzeichnis angelegt und das owfs gemountet.

mkdir /var/1wire
/opt/owfs/bin/owfs --link=/dev/ttyUSB0 -p 4304 /var/1wire

Danach sind die Sensoren einsatzbereit. In dem Verzeichnis /var/1wire findet man jetzt für jeden Sensor ein Unterverzeichnis das die ID-Nummer des Sensors als Namen trägt. Das könnte z.B. 26.7ECCCF000000 sein. In diesem Verzeichnis findet man wiederum die einzelnen Daten des Sensors. Bei einem Temperatursensor findet man die Temperatur dann z.B. in der Datei /var/1wire/26.7ECCCF000000/temperature.

Fortsetzung im Artikel 1-wire Wetterstation (Teil 2: Datenbank).

12 Antworten auf „1-wire Wetterstation (Teil 1: Installation)“

  1. Hallo Kristian,

    herlichen Glückwunsch zum super Beitrag,
    ich würde auch gerne mit einem ALIX Board Temparaturen messen 24/7, aber auch gerne Grafisch anzeigen. Mein ersten Plan war, UBUNTU, Digitemp und dann auslesen und grafisch anzeigen lassen.
    Wie bist Du weiter vorgegangen, ist auf dem Rechner dann noch Platz für z.B. ein Tabellenprogramm Open Office nur Tabelle?
    Gibt es noch einen Teil 2 nach Teil 1 Instalation.
    vielen Dank

    Uwe

  2. Hallo Uwe,

    im Sommer bin ich immer viel unterwegs und habe zu wenig Zeit. Aber für diesen Winter ist ein Teil 2 geplant. Ich habe mir inzwischen auch eine Grafik in PHP (jpgraph) programmiert, die aus den Daten einer MySQL-Tabelle erstellt wird. Du kannst sie Dir mal unter http://preetz.dnsalias.net ansehen. Wenn es Dich interessiert schicke ich Dir gerne mal die Sourcen.

    Gruß
    Kristian

  3. Hi,

    ich baue mir gerade etwas ähnliches. Ubuntu auf dem Alix und den gleichen 1Wire Adapter an das Teil.

    Ich hatte den Adapter vorher an einem virtuellen vmware Ubuntu am laufen. Lief super. Nun habe ich die scripte und den Adapter an das Alix umgezogen und muss feststellen, dass OWFS bis zu ca. einer Minute braucht um die Werte vom 1Wire Bus auszulesen (2 Temperaturen) anstatt nur 4 Sekunden. Ist der Zugriff auf den 1Wire Bus auch so langsam? Allein das „mounten“ des OWFS dauert eine Minute.

    Könnt ihr mal grob sagen, wie lange bei Euch das „/opt/owfs/bin/owfs -d /dev/ttyUSB0 /tmp/1wire/“ dauert? Wie lange braucht Euer Alix-System zum Abfragen der Werte?

    Grüße

    Florian

  4. kurzes Update: Mit einem Maxim DS9490R funktioniert das Auslesen der Sensoren in unter 3 Sekunden. Das Alix Board ist also mit dem seriellen Adapter überfordert oder der Adapter hat ne Macke.

    Grüße

    Florian

  5. Bin sehr gespannt auf Teil 2 des ganzen.
    Ich versuche etwas ähnliches gerade mit ein embedded Linux auf
    einer Seagate Dockstar mit 1-Wire zum laufen zu bekommen.
    Hab nur noch keine genaue Idee wie ich das mit der Auswertung hinbekommen
    kann – soll als Webpage angezeigt werden, das man auch mal eben vom Heim PC
    drauf schauen kann, was es so „meldet“.

  6. Hallo Kristian!

    Leider ist http://preetz.dnsalias.net nicht erreichbar. Gibts einen anderen Ort um die sourcen herunterzuladen? Ich möchte meine mittlerweile 27 Sensoren grafisch besser Darstellen. Momentan erfasse ich die Daten mit temploggerd, was mir aber mitlerweile zu eingeschränkt ist.

    Gruss,
    Peter

  7. Hallo Peter,

    das scheint ein Hardware-Defekt zu sein. Bin aber gerade bei einem größeren IT-Projekt 400 KM entfernt und komme deshalb nicht dazu mir den ALIX-Server näher anzusehen. Sobald ich wieder vor Ort schaue ich mal nach.

    Gruß
    Kristian

  8. Da hatte sich leicher die Flash-CARD zerlegt. Habe das System neu installiert 😉 Jetzt muss ich nur noch mal ne’n bisschen programmieren und den zweiten Teil schreiben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.