Montag, 1. Februar 2016

Online Wettervorhersage

In diesem Post geht es darum, wie man sich über den ESP 8266 eine Online Wettervorhersage holt, und über einen Arduino diese dann auf einem LCD Display anzeigen lässt.

Die Hardware

Wie bereits erwähnt, benötigt man für dieses Projekt ein ESP8266 Wlan Modul (hier bei AZDelivery ), einen kleinen Arduino, beispielsweise einen preiswerten Arduino Nano Klon, und ein LCD Display (hier bei AZDelivery).

Das LCD Display kann, wie in diesem Post erklärt, ganz normal an den Arduino Nano angeschlossen werden. Zur Kommunikation zwischen dem ESP8266 und dem Arduino kann man die serielle Verbindung benutzen. Dabei muss RX des ESP mit TX des Arduino und umgekehrt verbunden werden. Wie man den ESP8266 anschließt und programmiert, habe ich bereits sehr ausführlich hier erklärt.

Die Sketche

Der ESP8266 Sketch

Als Quelle für aktuelle Wettervorhersagen verwende ich Yahoo! Wetter, da dort das Wetter im XML Format zur Verfügung gestellt wird. XML ist ein Datenformat, welches, im Gegensatz zu HTML Websiten, dazu ausgelegt wurde von Maschinen gelesen zu werden. Genaues zu XML auf Wikipedia.

Das bedeutet, dass der übermittelte Text vergleichsweise kurz und einfach strukturiert ist:
Um eine XML Seite mit der Wettervorhersage für eure Stadt zu erhalten, müsst ihr auf Yahoo! Wetter den Code eurer Stadt herausfinden,
und in die XML URL einfügen: 
http://weather.yahooapis.com/forecastrss?w=676757&u=c
Hier ist 676757 der Code, welchen ihr durch den eurer Stadt ersetzen müsst.

Nun könnt ihr die URL aufrufen, und seht übersichtlich aufgeschlüsselt die aktuellen Wettervorhersagen. 

Diese Seite kann der ESP8266, wie eine normale Website, aufrufen, und in einer Variable abspeichern. In dieser Variable kann das Wlan Modul dann über die Funktion indexOf() die passende Stelle finden, und die Wettervorhersagen herausfiltern. 

Der gesamte Code für den ESP8266 sieht so aus:


Alles was man vor dem Hochladen nun noch tun muss, ist das passende Wlan Netzwerk samt Passwort eintragen, und den richtigen Code für Yahoo! Wetter eingeben.

Der Arduino Sketch

Der Arduino muss nur die beiden Temperaturen für den nächsten Tag (minimal & maximal) über die serielle Verbindung empfangen, und auf dem LCD Display ausgeben:

Nach dem Anpassen und Hochladen beider Programme sieht man dann laufend die aktuelle Wettervorhersage für den nächsten Tag:


Keine Kommentare:

Kommentar veröffentlichen