Archive Page 3



Der integrierte Umweltsensor DHT11 ist ein kostengünstiger Sensor für die Messung von Temperatur und relativer Luftfeuchtigkeit in einem Raum. Der Sensor wird über einen 1-Wire-Bus angesprochen. Eine ausführliche Anleitung von Ladyada und die passende Arduino-Library machen die Verwendung des Sensors zum Kinderspiel.

Das Beispiel aus der genannten Library kann auch auf einem Nanode Board betrieben werden, dabei wird als Datenport D5 verwendet.

In unserer Anwendung werden die Messwerte anschliessend an einen Pachubefeed gesendet und können online abgefragt werden.

Diese Sensorlösung eignet sich ideal für Indooranwendungen, da der kostengünstige DHT11 einen Messbereich von 0…50 Grad C (Temperatur) und 20…90 % (Luftfeuchtigkeit) abdeckt. Der etwas teurere DHT22 ermöglicht mit einem Messbereich von -40…125 Grad C (Temperatur) und 0…100 % (Luftfeuchtigkeit) auch Einsatzfälle im Aussenbereich.

Nach der ersten Testreihe mit den verschiedenen Sensoren zur Messung der Bodenfeuchtigkeit habe ich heute die 2. Testserie gestartet.

Der Topf mit der Erde wurde erneuert und die Sensoren gereinigt und neu montiert. Jeder der 3 Sensoren ist nun 45 mm tief in die Erde gesteckt.

Die erste Testreihe hat gezeigt, dass die Messwerterfassung recht empfindlich ist. Ein Verstellen oder Verschieben der Sensoren oder andere Einflüsse von aussen, ich habe die Spannungsversorgung über den USB-Port durch ein externes Netzteil verändert, hat die Messung unerwartet beeinflusst.

Die aktuellen Daten können wie bisher im öffentlichen Pachube-Feed mitverfolgt werden.

Testprotokoll (Testreihe 2):

30.06.2011, 18:00 Uhr
Testserie 2 gestartet

——————————–
01.07.2011, 06:00 Uhr
Testfall “leichter Regen”

——————————–
05.07.2011, 16:00 Uhr
Testfall “Bewässerung” (Erde oberflächlich ausgetrocknet)

——————————–

Über die Varianten von Sensoren zur Messung der Bodenfeuchtigkeit wurde bereits berichtet. Dabei wurde auch der Sensortyp VG400 erwähnt. Da kürzlich bei Twitter dieses Thema von einem Nanode-Anwender aufgegriffen wurde, habe ich eine Testreihe aufgebaut um verschiedene Varianten von Sensoren zu vergleichen.

In der Testreihe werden 2 Selbstbau-Sensoren mit dem VG400 von Vegetronix verglichen.

Selbstbauvariante 1 mit 2 Nägeln:

Selbstbauvariante 2 mit Nägel in Gipshülle:

Vegetronix VG400:

Für den Messaufbau werden alle 3 Sensoren in die Erde in einem kleinen Topf gesteckt. Die Anschlüsse werden auf einem kleinen Steckbrett zusammengeführt und am Arduino-Board angeschlossen. Über das zusätzliche Ethernet-Shield werden die Daten an Pachube gesendet.

Sensoren (oben), Steckbrett (links), Arduino mit Ethernet Shield (rechts)

Auf einem Datenfeed von pachube.com kann nun der Testverlauf mitverfolgt werden.

Testprotokoll:

27.06.2011, 15:00 Uhr
Start der Messung

27.06.2011, 16:15 Uhr
Testfall “Regen”

——————————–

28.06.2011, 07:40 Uhr
Testfall “Regenschauer”

28.06.2011, 16:30 Uhr
Testfall “Regen”

28.06.2011, 21:00 Uhr
Spannungsversorgung mit Netzteil, statt USB
kurze Bewässerung

——————————–

29.06.2011, 09:00 Uhr
VG400 Position verstellt, Wert ändert sich

——————————–
30.06.2011, 16:30 Uhr
1.Testserie beendet

——————————–

Mit der bereits integrierten Ethernet-Schnittstelle eignet sich das Nanode-Board ideal für die webbasierte Datenerfassung. Die über die analogen Ports erfassten Sensordaten können anschliessend über Ethernet an eine Webanwendung zur Datenerfassung im Internet oder Intranet gesendet werden.

Eine der bekanntesten Anwendungen im Internet ist Pachube, ein Real-Time Open Data Web Service, auf welchem man über eine API Daten speichern und anschliessend darstellen kann.

Für das Speichern der Daten über die Pachube-API kann ein Beispielsketch EtherShield_simpleClient_Pachube aus der EtherShield-Library verwendet werden.

Bild 1: Nanode als Datenlogger, Ethernet (rechts), Temperatursensor (oben)

Neben der oben genannten Datenspeicherung im Internet kann man seine gesammelten Daten auch im Intranet speichern. Für die Datenspeicherung kann beispielsweise eine MySQL-Datenbank verwendet werden, welche über ein PHP-Script mit Daten gefüllt wird.

Das Senden der Daten erfolgt dabei über einen URL-Aufruf.

Beispiel:
http://10.0.1.8/update-daten.php?temp=23.56

Damit nicht ungewollt Daten in die Datenbank gespeichert werden, kann man den URL-Aufruf mit einem zusätzlichen Parameter (Key) erweitert werden.

http://10.0.1.8/update-daten.php?temp=23.56&key=123456789ABCDEF

Vor dem Speichern der Daten in der MySQL-Datenbank prüft die Speicherfunktion ob der in der URL übergebene Key mit einem gespeicherten Key übereinstimmt.

In der Datenlogger-Hardware, in unserem Beispiel dem Nanode, wird für die Datenübergabe an die Intranet-Anwendung das leicht angepasste Beispiel EtherShield_simpleClient_Emoncms verwendet.

Das Beispiel ist universell aufgebaut und kann für viele verschiedene Client-Anwendungen mit dem Nanode verwendet werden.

#include <EtherShield.h>
byte mac[6] =     { 0x54,0x55,0x38,0x12,0x01,0x23};
byte ip[4] =      {10,0,1,100};
byte gateway[4] = {10,0,1,1};
byte server[4] =  {10, 0, 1, 8};

#define HOST ""  // Blank "" if on your local network
#define API "/update-daten.php?key=123456789ABCDEF&"

unsigned long lastupdate;

char str[50];
char fstr[10];
int dataReady=0;

void setup()
{
Serial.begin(9600);
Serial.println("EtherShield Datenlogger");

ethernet_setup(mac,ip,gateway,server,80);
}

void loop()
{
//--------------------------------------
// 1) Measurements and data preparation
//--------------------------------------
if ((millis()-lastupdate)>6000)
{
lastupdate = millis();

float a0 = analogRead(0);

// Build up a json string: {key:value,key:value}
// dtostrf - converts a double to a string!
// strcat  - adds a string to another string
// strcpy  - copies a string
strcpy(str,"temp=");
dtostrf(a0,0,2,fstr);
strcat(str,fstr);
strcat(str,"");

dataReady = 1;
}

//----------------------------------------
// 2) Send the data
//----------------------------------------
if (ethernet_ready() && dataReady==1)
{
ethernet_send_url(PSTR(HOST),PSTR(API),str);
Serial.println("sent"); dataReady = 0;
}

}

Mittels Chart-Funktion, beispielsweise der PHP-Library Libchart, können die in der Datenbank gespeicherten Sensordaten auf einer Webseite dargestellt werden.


Bild 2: Sensordaten auf Webseite darstellen

Mit dieser netzwerkinternen Lösung werden keine Daten ins Internet gesendet. Die Datenverarbeitung-und Speicherung erfolgt mit einer eigenen Lösung. Man hat den vollen Zugriff auf die Daten und kann diese nach Bedarf für andere Anwendungen nutzen.

Nanode (Network Application Node) ist ein Arduino Clone mit integrierter Ethernet-Schnittstelle. Das Lowcost-Board, welches von Ken Boak vom London Hackspace entwickelt wurde, eignet sich für webbasierte Sensor-und Überwachungsanwendungen.

Bild (c) London Hackspace

Das Nanode-Board hat die gleichen Abmessungen wie ein Original-Arduino und bietet 3 Kommunikations-Schnittstellen:

Auf dem Board sind alle nötigen Komponenten platziert. Die Ethernet-Schnittstelle ist mit einem Ethernet-Controller ENC28J60 realisiert. Für die Ethernet-Connectivity wird mit dem Nanode kein zusätzliches Ethernet-Shield benötigt. Zu beachten ist dabei, dass die Standard-Ethernet-Library für Ethernet-Schnittstellen im dem genannten ENC28J60 nicht kompatibel sind. Für eigene Internet-Anwendungen steht eine eigene Library, EtherShield, zur Verfügung. Mit der Bibliothek werden verschiedene nützliche Beispiele mitgeliefert. Für Anwendungen mit der Internet-of-Things-Plattform Pachube realisieren will, der sollte sich die simpleClient-Beispiele genauer anschauen.

Die Programmerstellung erfolgt wie gewohnt über die Arduino IDE. Über ein angeschlossendes FTDI-Kabel oder einen USB zu Seriell-Wandler kann der Programmcode auf das Board hochgeladen werden. Eine USB-Schnittstelle ist auf dem Board hardwaremässig bereits aufgebaut, die Firmware ist aber noch in der Testphase.

Die Nanode-Boards werden zur Zeit nur als Bausatz ausgeliefert und kosten 25 EUR.

Das Aufbauen der Leiterplatte ist recht einfach. Dank der bebilderten Schrit-für-Schritt-Anleitung gelingt der Zusammenbau auch einem Elektronik-Anfänger. Etwas Löterfahrung ist aber von Vorteil.

Meine beiden Nanode Boards haben auf Anhieb funktioniert und mit den Anleitungen im Nu eine IP-Adresse von unserem internen Netzwerkrouter bekommen. Nun erfassen die Nanodes Umweltdaten und senden diese an die Internet-of-Things-Plattform Pachube. Die Applikationsseite im Nanode-Wiki ist ein guter Startpunkt für eigene webbasierte Anwendungen.

Anlässlich des Oxford Hackspace hat der Entwickler Ken Boark das Nanode Board präsentiert.

Teil 1:

Teil 2:

Ein wirklich spannendes Projekt dass ich weiter verfolgen werde. Aktuellste News gibts laufend beim Twitter User @Nanode_1.

Wer Interesse an einem Board hat, wendet sich direkt an Ken. Laufend werden Serien von Bausätzen zusammengestellt und ausgeliefert.

Informationen zum Nanode Projekt:

Auf der DIY-Plattform Instructables hat der User Matchlighter ein originelles Staubsauger-Projekt publiziert. Sein Roomba-Staubsauger wurde mit einem Arduino-Board erweitert und sendet via WiFly-Shield regelmässig einen Putzstatus an Twitter.

(c) matchlighter

Auf dem Twitteraccount @TheRoomba kann man den aktuellen Zustand des Staubsaugers abfragen.

(via Hack A Day)

High Speed Datalogging

Der Entwickler der SD Card Bibliothek SdFat hat im Arduino Forum ein neues Feature dieser Bibliothek vorgestellt.

Die neuste Version erlaubt das High Speed-Loggen von Daten auf die SD Card.

In verschiedenen Foren und Threads wird darüber diskutiert:

(via RSS Feed Arduino Forum)

Arduino Mega ADK for Android

In Kürze verfügbar: Arduino Mega ADK for Android

Bild (c) David Cuartielles

Gemäss Kommentar von David ist dieses Board in wenigen Tagen verfügbar:

“this is a new board that is coming out in a week or so. We will have simultaneous workshops to test it during the week of the 13th of June in Malmo, New York and Stockholm”

(via Arduino Forum)

Bewässerungsanwendung mit Sensoren für Bodenfeuchtigkeit sind Anwendungen welche gerne von Arduino-Anwendern realisiert werden. Dabei werden oftmals Selbstbau-Sensoren verwendet.

Auch das bekannte Projekt Botanicalls nutzt Nägel oder Metallstifte für die Ermittlung der Feuchtigkeit des Bodens im Garten oder der Topfpflanze.

Leider haben diese Selbstbausensoren kein lineares Verhalten und geben nur eine ungefähre Angabe über die Trockenheit der Erde.

Auch ich habe diese Variante schon ausgetestet und die Praxis zeigt dass die Messungen von Sensor zu Sensor unterschiedlich sind und genaue und reproduzierbare Resultate sind nicht möglich.

Die bisher beste und genaueste Lösung kann mit einem kommerziellen Feuchtesensor der Firma Vegetronix realisiert werden. Der Sensor VG400 gibt eine lineares Spannungssignal aus und beschreibt damit einen Bereich von 0-100% Feuchte im Boden.

Der gleiche Sensor kann auch für eine Wasserstandsmessung in einem kleinen Behälter oder Becken verwendet werden.

Nachteil dieser Lösung ist leider der Preis. Der Sensor kostet runde 30 USD. Für die Lieferung nach Europa kommen nochmals 35 USD dazu.

VG400 – Bodenfeuchte Sensor

Dank meinem Hoflieferanten für Arduino-Komponenten bin ich jetzt zu 2  Exemplaren des VG400 gekommen. Die Firma Telepixel bietet diese Sensoren in Zukunft unter dshop.ch an.

Hinweis:
da die Sensoren im Shop von Telepixel momentan noch nicht sichtbar sind, einfach bei Bedarf im Shop via Kontaktformular mit dem Anbieter Kontakt aufnehmen.