Mit Hilfe eines Raspberry PI und zwei LEDs (rot und grün) soll ein Unwetter-Warner gebaut werden. Droht ein Unwetter, leuchtet die rote LED. Gibt es keine Unwetterwarnung, leuchtet die grüne LED. Als Datenquelle dienen die Unwetterwarnungen des Deutschen Wetterdienstes (DWD).
Zunächst der Elektronik-Teil. 2 LEDs (rot und grün) werden über je einen Vorwiderstand an die GPIO-Pins 14 und 15 angeschlossen.
Nun muss zunächst die passende Warn-Seite für die eigene Region gefunden werden. Auf der Webseite des Deutschen Wetterdienstes gibt es eine Karte mit den aktuellen Warnungen für Deutschland unter: http://www.dwd.de/warnungen. Auf der Karte kann man nun seine Region und anschließend seinen Landkreis anklicken und kommt so auf die Warn-Seite für den jeweiligen Landkreis. Für Hamburg ist es zum Beispiel diese Adresse: http://www.dwd.de/dyn/app/ws/html/reports/HHX_warning_de.html. Diese URL wird später vom Raspberry-PI abgefragt und ausgewertet.
Nun zum Python-Script:
dwd_warner.py
#!/usr/bin/python import urllib2 import RPi.GPIO as GPIO URL="www.dwd.de/dyn/app/ws/html/reports/HHX_warning_de.html" LEDS = {"red":14,"green":15} def init(): GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) for color in LEDS: GPIO.setup(LEDS[color],GPIO.OUT) GPIO.output(LEDS[led],GPIO.LOW) def displayWarnLevel(isWarning): for led in LEDS: GPIO.output(LEDS[led],GPIO.LOW) color = "red" if isWarning else "green" GPIO.output(LEDS[color],GPIO.HIGH) def getWarnLevel(): response = urllib2.urlopen(URL) html = response.read() return "ws_warning_content" in html init() isWarning = getWarnLevel() displayWarnLevel(isWarning)
Damit das ganze alle 15 Minuten ausgeführt wird, kommt ein entsprechender Eintrag in die crontab:
/etc/crontab
*/15 * * * * root /home/pi/wetter/dwd_warner.py
Danach noch „sudo /etc/init.d/cron restart“ und fertig ist der Unwetter-Warner. Zur Zeit ist in Hamburg alles grün: