RPi-Projekt Twitternde Webcam Teil 3: Wie ist das Wetter
Geschrieben von Mario Hommel amNachdem das mit dem Twittern des Webcambilds funktioniert, hatte ich noch die Idee, nicht immer nur einen statischen Text dazu zu twittern, sondern noch etwas individuelles wie zum Beispiel die aktuelle Temperatur hinzuzufügen. In diesem Teil des Artikels schreibe ich, wie ich das gemacht habe.
Artikelübersicht
- Teil 1: Der Raspi macht Bilder
- Teil 2: Hallo Twitter
- Teil 3: Wie ist das Wetter? (Dieser Artikel)
- Teil 4: Aufbau und fertig
Teil 3: Wie ist das Wetter?
Ok, wo bekomme ich die aktuelle Temperatur her? Die eine Möglichkeit wäre, einen Temperaturfühler an den Raspi anzuschliessen. Oder ich könnte die Temperatur von einem Wetterdienst im Internet beziehen. Ich habe mich zunächst für die zweite Variante entschieden (aber was nicht ist, kann ja noch werden).
Ich möchte die API von worldweatheronline.com nutzen. Sie bietet viele Wetterdaten und es gibt eine kostenlose Version. Nach der Anmeldung bei dem Dienst erhalte ich zunächst eine Trial-Version der Premium-API, die ich erstmal zwei Monate lang nutzen kann. Danach werde ich auf die freie Version umsteigen, die für meine Zwecke völlig ausreichend ist.
Mit der Anmeldung erhält man einen API-Key, den man dann für Abfragen im XML- oder JSON-Format nutzen kann. Ich nutze das JSON-Format und frage das ganze über die entsprechenden Bibliotheken in Python ab. Das Skript dazu sieht folgerndermaßen aus:
#!/usr/bin/env python # -*- coding: utf8 -*- # imports import urllib import json import serial # let's start by getting the current temperature in Bad Zwesten # using the worldweatheronline.com api url = "http://api.worldweatheronline.com/premium/v1/weather.ashx?key=[DeinenKeyEinfuegen]&q=Zwesten, Germany&format=json&num_of_days=1" try: response = urllib.urlopen(url) except: print ("Error getting weather info.") object = json.load(response) cTemp = int(object["data"]["current_condition"][0]["temp_C"]) ttext = "Täglicher Blick über Bad Zwesten, heute bei " + str(cTemp) + " Grad." print ttext
Ich frage erstmal aus dem ganzen JSON-Objekt nur den Wert der momentanen Temperatur in Celsius ab. Die Ausgabe des Skripts sieht so aus:
Täglicher Blick über Bad Zwesten, heute bei 6 Grad.
Gern könnt ihr auch mal einen Blick in das komplette JSON-Objekt werfen, hier seht ihr alle Werte, die man über die API erhält.
Ich denke, jetzt habe ich alles zusammen, was ich für den Aufbau des Projekts brauche und im vorerst letzten Teil dieser Artikelserie werde ich dann beschreiben, wie ich alles zusammenfüge und fertigstelle.
Trackbacks
Trackback-URL für diesen EintragDieser Link ist nicht aktiv. Er enthält die Trackback-URI zu diesem Eintrag. Sie können diese URI benutzen, um Ping- und Trackbacks von Ihrem eigenen Blog zu diesem Eintrag zu schicken. Um den Link zu kopieren, klicken Sie ihn mit der rechten Maustaste an und wählen "Verknüpfung kopieren" im Internet Explorer oder "Linkadresse kopieren" in Mozilla/Firefox.
Kommentare
Ansicht der Kommentare: Linear | VerschachteltNoch keine Kommentare