Sensordaten mit dem esp8266 Modul an einen Server senden

Wie ich im Artikel „http://fluuux.de/2016/08/einfuehrung-esp8266-wifi-modul/“ bereits erwähnt habe, möchte ich nun in diesem Beitrag zeigen wie man mit dem esp8266 WiFi Modul, die mittels DHT22 Sensor ermittelten Temperatur und Luftfeuchtewerte an einen Server senden und diese anschließend auswerten kann.

Für dieses Beispiel benötigen wir an Hardware gerade einmal ein esp8266 Modul, einen DHT22 Sensor, einen Widerstand für den DHT22 Sensor und ein paar Jumperkabel. Zum übertragen des Sketches auf den esp8266 brauchen wir aber wie gehabt zwei Buttons. Einen um das Board zu reseten und einen um in den Upload Modus zu wechseln.

esp8266 - DHT22 - Breadboard

 

Für dieses Beispiel wollte ich nicht erst selbst eine Website anlegen um die Sensordaten zu empfangen und in einer Datenbank zu speichern. Dafür gibt es ja bereits einen Beitrag.

Um es mir also einfach zu machen, habe ich auf https://data.sparkfun.com/streams/make einen neuen Stream, also ein Projekt erstellt in dem die Sensorwerte gespeichert werden. Im Formular auf dieser Seite müssen lediglich die Felder für Titel, Beschreibung, Sichtbarkeit und Felder ausgefüllt werden. Im Eingabefeld „Fields“ habe ich die schon vorgegebenen Bezeichner „humidity“ und „temp“ getrennt durch ein Komma eingetragen. Passt ja ganz gut zu diesem Projekt.

Außerdem habe ich angegeben dass mein Stream nicht in der Liste der öffentlichen Streams erscheinen soll. Das ist allerdings Geschmackssache und muss jeder selber wissen ob er will dass seine Sensordaten für alle sichtbar sein sollen. Nachdem Sie auf den Save Button geklickt haben, wird eine Seite geöffnet, auf der Sie sämtliche Daten für das Projekt und ein kleines Beispiel angezeigt werden.

Ganz wichtig. Notieren Sie sich die Daten oder lassen Sie sich diese per eMail zuschicken, da Sie diese für das Sketch und auch später zum verwalten des Streams auf data.sparkfun.com benötigen.

Wenn Sie den Aufbau wie oben zu sehen fertig haben, kann es auch schon an das schreiben des Sketches gehen das im Anschluss auf dem esp8266 gespeicheret werden soll.

 

Arduino Sketch für den esp8266

 

Bitte passen Sie nun die Werte in den Zeilen 14, 15, 17 und 18 an. Geben Sie dazu die Werte, die nach dem erstellen des Streams angezeigt wurden, hier ein. Ich hoffe doch dass Sie diese auch wirklich gespeichert haben.
Wenn Sie in Zeile 10 DEBUG auf true setzen dann können Sie sich im Seriellen Monitor die ermittelten Sensorwerte, die Rückgabe des Servers und die ermittelte IP, sowie eventuell auftretende Fehler ausgeben lassen. Das ist also gerade am Anfang, bis alles sauber läuft, sehr emfehlenswert.

 

Sketch auf dem esp8266 speichern

Ich denke zum speichern des Sketches auf dem esp8266 brauche ich nicht mehr viel zu schreiben da dies bereits im Beitrag http://fluuux.de/2016/08/einfuehrung-esp8266-wifi-modul/ behandelt wurde. Nur noch mal in groben Zügen. Das esp8266 nie mit mehr als 3,6V betreiben. „Prog-Button“ drücken und gedrückt halten, „Reset-Button“ kurz drücken und anschließend den „Prog-Button“ loslassen. Nun kann man, nachdem man das passende Board und den richtigen Port im Menü ausgewählt hat, das Sketch auf den esp8266 speichern.

Um sich die auf den sparkfun Server gespeicherten Sensorwerte nun auch graphisch ansprechend anzeigen lassen zu können, muss noch eine kleine Html-Seite angelegt werden. Wenn Sie die Felder auf der sparkfun Seite auch humidity und temo genannt haben, müssen Sie lediglich Ihren PublicKey in Zeile 14 anpassen. Ansonsten ändern Sie noch die Feldnamen in den Zeilen 26 und 27. Die in Zeile 25 angegebene Spalte Time wird automatisch generiert. In dieser wird jedesmal wenn ein Sensorwert auf sparkfun.com gespeichert wird, der aktuelle TimeStamp abgelegt.

 

Html-Seite für die Ausgabe der Sensordaten

 

Wenn Sie diese Website nun aufrufen erhalten Sie eine Ausgabe in folgendem Design.
Da es sich hierbei um ein ganz gewöhnliches Google Chart handelt, kann man sich hier natürlich selbst noch einiges anpassen.

Webansicht_Sensorwerte

Misstrauen Sie Drittanbietern bei denen Sie kostenlos Daten ablegen können, haben Sie natürlich auch die Möglichkeit eine eigene Seite zu programmieren die Ihre Sensordaten entgegennimmt und vielleicht in einer MySQL-Datenbank abspeichert.
Das war es auch schon. Sie sehen wie einfach es Dank des esp8266 ist, Sensordaten an einen Server zu senden.

Ich hoffe der Beitrag hat Ihnen gefallen. Bei Fragen oder Anregungen benutzen Sie bitte das Kommentarfeld.

 

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

Kommentar verfassen