Inhaltsverzeichnis:

Einfache Wetteranzeige mit Raspberry PI und Cyntech WeatherHAT - Gunook
Einfache Wetteranzeige mit Raspberry PI und Cyntech WeatherHAT - Gunook

Video: Einfache Wetteranzeige mit Raspberry PI und Cyntech WeatherHAT - Gunook

Video: Einfache Wetteranzeige mit Raspberry PI und Cyntech WeatherHAT - Gunook
Video: Raspberry Pi Wetterstation mit Weewx 2024, Juni
Anonim
Einfache Wetteranzeige mit Raspberry PI und Cyntech WeatherHAT
Einfache Wetteranzeige mit Raspberry PI und Cyntech WeatherHAT
Einfache Wetteranzeige mit Raspberry PI und Cyntech WeatherHAT
Einfache Wetteranzeige mit Raspberry PI und Cyntech WeatherHAT

* Im Jahr 2019 hat Yahoo seine API geändert und dies funktionierte nicht mehr. Ich war mir der Änderung nicht bewusst. Im September 2020 wurde dieses Projekt aktualisiert, um die OPENWEATHERMAP-API zu verwenden. Siehe den aktualisierten Abschnitt unten, der Rest dieser Informationen ist jedoch immer noch gut. Danke fürs Hinschauen und danke, dass du mich über die Yahoo-Änderung informiert hast. *

Vor kurzem habe ich ein Cyntech WeatherHAT erworben, aber ich war ein wenig enttäuscht über den Mangel an Software dafür.

Der HAT selbst scheint gut konstruiert zu sein, mit 6 blauen LEDs in Form von Regentropfen, 6 orangen LEDs in Form eines Blitzes, 6 weißen LEDs in Form einer Wolke. 1 (Was ich glaube, ist eine RGB-LED) für die SONNE - sie wird orange angezeigt (also könnte ich falsch liegen, dass es sich um eine RGB-LED handelt). Und 6 WS2812 LEDs (Das sind RGB:-))

Cyntech hat eine Anleitung für die ersten Schritte, und selbst das ist gut - es ist einfach, den HAT zu installieren und zu verwenden.

Daher war ich nur überrascht, keine Software zu sehen (außer der von Cyntech bereitgestellten Demo). Ich war ebenso überrascht, dass niemand dies wirklich benutzte - Vielleicht wollen die Leute ein "schickes" Display mit Temperaturen und all diesen Informationen. Für mich ist es schön, einfach auf ein paar LEDs zu schauen und zu wissen - es regnet oder Gewitter oder Bewölkt - Wenn ich an diesem Punkt mehr Informationen benötige, kann ich auf mein Tablet oder Telefon schauen.:-)

Ein bisschen mehr - dies ist wirklich mein erstes Mal, dass ich Python benutze, ich bin keineswegs gut darin. Und ich bin mir sicher, dass Leute, die Python wirklich kennen, mir einen besseren Weg dazu sagen werden.

Lass uns anfangen:

Wir benötigen eine SD-Karte (mindestens 8 GB)

Ein Raspberry PI (ich verwende einen Zero W) benötigt einen Internetzugang.

und wir brauchen den Cyntech WeatherHAT

Wenn Sie einen Raspberry PI Zero W verwenden, müssen Sie auch einen Satz Header an die Platine löten können.

Ansonsten sind die erforderlichen Fähigkeiten die Fähigkeit, Software zu verwenden und die SD-Karte einzurichten.

Schritt 1: SD-Karte und Raspberry PI einstellen

Stellen Sie die SD-Karte und den Raspberry PI ein
Stellen Sie die SD-Karte und den Raspberry PI ein
Stellen Sie die SD-Karte und den Raspberry PI ein
Stellen Sie die SD-Karte und den Raspberry PI ein

Sie müssen das neueste Raspbian herunterladen (zum Zeitpunkt dieses instructable, das Raspbian Stretch März 2018 (2018-03-13) ist)

www.raspberrypi.org/downloads/raspbian/

Ich habe die Desktop-Edition verwendet, obwohl ich mein Setup kopflos ausführe und die meisten Dinge über die CLI (Befehlszeilenschnittstelle) über ssh tue.

Folgen Sie der Setup-Anleitung, die Sie hier finden:

www.raspberrypi.org/documentation/installa…

Nachdem Etcher fertig ist, entfernen Sie die SD-Karte und legen Sie sie erneut in den Computer ein.

* Sie müssen diesen Schritt unten wirklich nur ausführen, wenn Sie eine Headless-Installation planen

Wir müssen SSH und WIFI einrichten, bevor wir die SD-Karte im Raspberry PI verwenden. Erstellen Sie in der BOOT-Partition der Karte eine Datei namens "ssh" ohne Anführungszeichen. In dieser Datei muss nichts sein. Wenn der PI bootet, sieht er diese Datei und schaltet SSH ein.

Wir müssen auch eine Datei namens "wpa_supplicant.conf" erstellen. Wir müssen diese Datei mit Ihren WLAN-Einstellungen bearbeiten.

Es sollte ungefähr so aussehen:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1 network={ ssid="yourwifiSSID" psk="yourwifipassword" scan_ssid=1 }

* Sie müssen dies wirklich nur tun, wenn Sie eine Headless-Installation planen

Sobald dies erledigt ist, entfernen Sie die SD-Karte sicher und setzen Sie den Raspberry PI ein (stellen Sie sicher, dass der PI nicht mit Strom versorgt wird).

Schließen Sie den WeatherHAT an und schalten Sie den Raspberry PI ein.

Schritt 2: Einrichten der WeatherHAT-Bibliotheken

Einrichten der WeatherHAT-Bibliotheken
Einrichten der WeatherHAT-Bibliotheken
Einrichten der WeatherHAT-Bibliotheken
Einrichten der WeatherHAT-Bibliotheken

Für diesen Schritt befolgen wir die gefundene Erste-Schritte-Anleitung

guides.cyntech.co.uk/weatherhat/getting-sta…

WENN Sie eine Headless-Installation durchführen, möchten Sie ssh [email protected]

Wenn Sie keinen SSH-Client haben, ist PUTTY ein guter.

Wenn Sie eine Tastatur und einen Monitor verwenden, ist die obige Anleitung gut zu befolgen, sie startet Sie auf einem GUI-Desktop.

Die wichtigen Schritte hier sind die Installation der WS281x-Bibliothek und der WeatherHAT-Bibliotheken zusammen mit der jeweiligen Abhängigkeit.

sudo apt-get update

sudo apt-get upgrade -y sudo apt-get install build-essential python-dev git scons swig python-smbus git clone https://github.com/jgarff/rpi_ws281x.git > git clone https://github.com/ jgarff/rpi_ws281x.git > cd rpi_ws281x scons cd python sudo python setup.py install

Jetzt müssen wir sicherstellen, dass I2C eingeschaltet ist.

sudo raspi-config

Die Anleitung ist für eine ältere Version von raspi-config geschrieben und sagt zu "Advanced Options", die durch ich glaube "Interfaces" ersetzt wurde

Sobald Sie I2C einschalten, müssen Sie neu starten.

Jetzt ist es Zeit, den HAT zu testen

cd WeatherHAT

sudo python cycle.py

Wenn alles gut gelaufen ist, sollten Sie alle Funktionen und einen Regenbogen sehen.

Strg-z stoppt das Programm.

*Besondere Hinweise: Ich habe erfahren, dass die Timings des Raspberry PI 3 unterschiedlich sind und der Rainbow möglicherweise nicht richtig funktioniert. Wenn Sie dieses Problem haben, können Sie es hier beheben.

github.com/CyntechUK/WeatherHAT/issues/3

guides.cyntech.co.uk/raspberry-pi/assemblin…

Wenn alles funktioniert, können wir mit dem nächsten Schritt fortfahren.

Update: (6. Oktober 2020) Dieses Repository enthält jetzt mein getWeather.py-Skript, das sind großartige Neuigkeiten, da das Interesse wieder geweckt ist und neue Dinge passieren werden.

Schritt 3: Installieren der Wetter-API und des GetWeather-Skripts

Installieren der Wetter-API und des GetWeather-Skripts
Installieren der Wetter-API und des GetWeather-Skripts
Installieren der Wetter-API und des GetWeather-Skripts
Installieren der Wetter-API und des GetWeather-Skripts
Installieren der Wetter-API und des GetWeather-Skripts
Installieren der Wetter-API und des GetWeather-Skripts
Installieren der Wetter-API und des GetWeather-Skripts
Installieren der Wetter-API und des GetWeather-Skripts

Also habe ich eine PULL-Anfrage an CyntechUK für mein Skript gestellt - hoffentlich akzeptieren sie die Anfrage und Sie können den Download meines Repositorys überspringen. (Sie möchten meinen Code vielleicht nicht einschließen)

(6. Oktober 2020) Die PULL-Anfrage wurde genehmigt, mein getWeather-Skript ist jetzt im Weatherhat-Repository enthalten.

*********Sie können diese Informationen weiterhin verwenden, wenn Sie möchten, aber getWeather.py wurde jetzt in das Weatherhat-Repository aufgenommen ****************** ****************

Mein Repository finden Sie hier:

github.com/kd8bxp/WeatherHAT/tree/getWeath…

und mein Skript heißt getWeather.py

WENN sie den Pull-Request akzeptieren, haben Sie dieses Skript bereits - wenn nicht, müssen Sie das Repository klonen.

Geben Sie in Ihrem Home-Verzeichnis (/home/pi) ein:

git-Klon https://github.com/kd8bxp/WeatherHAT.git getWeather

Dadurch wird das Repository in ein Verzeichnis namens getWeather geklont, als nächstes müssen wir den getWeather-Zweig auschecken.

cd getWeather

git zur Kasse getWeather

**********************************************************************

Sie müssen in das WeatherHAT-Verzeichnis wechseln, das zuvor geklont wurde und

Wir müssen das Skript getWeather.py für Ihren Standort bearbeiten.

nano getWeather.py

Sie sollten eine Zeile sehen, die mit beginnt

location und endet mit lookup(45042) - Dies ist meine Postleitzahl, ich habe festgestellt, dass es nicht so gut funktioniert, wie Sie denken

und die auskommentierte Zeile direkt darüber funktioniert besser mit einem Städtenamen. Das ist der, den Sie wahrscheinlich verwenden möchten. Kommentieren Sie also die Postleitzahlzeile (#) und entkommentieren Sie und ändern Sie Ihren Stadtnamen.

********** ALTE YAHOO-INFORMATIONEN - Nicht mehr erforderlich **********

Damit dies funktioniert, müssen wir eine weitere Bibliothek installieren, die weather-api, die ein Wrapper für die Yahoo-Wetter-API ist.

pypi.python.org/pypi/weather-api/0.0.5

Die Installation ist einfach -

pip install wetter-api

***********************************************************************************

Jetzt können wir das Skript ausführen:

sudo python getWeather.py &

Das & lässt das Skript im Hintergrund laufen. Das Skript schläft etwa 5 Minuten lang und überprüft dann Yahoo Weather, ob sich etwas geändert hat - wenn ja, aktualisiert es die Anzeige. Die 5-Minuten-Zeit kann geändert werden, sie befindet sich am unteren Rand des Skripts.

schlafen (60 * 5)

Sie könnten einen crontab-Job einrichten (denken Sie daran, dass dieser als Root ausgeführt werden muss), der das Skript bei jedem Booten startet.

verwenden:

sudo crontab -e

Eintreten:

@Reboot Python /home/pi/weatherHAT/getWeather.py

Ich denke, das sollte funktionieren - ich habe Cron noch nicht auf meinem System eingerichtet.

Das wars so ziemlich -

Wie ich bereits sagte, ist dies eines meiner ersten Python-Programme, und ich bin sicher, jemand, der mehr weiß, wird einen besseren Weg sehen, dies zu tun.

Ich habe dies nur begrenzt getestet - ich habe gesehen, dass "Snow", "Rain" und "Thunderstorm" bisher funktionieren, Es gibt einige Bedingungen, bei denen ich noch nicht sicher bin, wie ich damit umgehen soll - ich freue mich über Ideen.

Schritt 4: Aktualisierte Informationen für: Openweathermap API

Im September 2020 habe ich das Skript aktualisiert, um die https://openweathermap.org-API zu verwenden.

HINWEIS: Dies war eine "schnelle" Lösung für mich und begrenzt getestet - (In den letzten Tagen war es bewölkt, und ich sehe nur die Wolken- und Regenanzeige) - Obwohl ich glaube, dass ich alle Bedingungen erwischt habe, die leicht zu erreichen sind display, es ist möglich, dass ich ein paar übersehen habe, weil dieser Fix so "schnell" war. Wenn Sie jedoch der Meinung sind, dass ein Problem vorliegt, hinterlassen Sie bitte einen Kommentar und wenn es die Zeit erlaubt, werde ich es mir ansehen - oder versuchen, Sie in die richtige Richtung zu weisen. *

Sie müssen sich über den obigen Link für einen API-Schlüssel anmelden. Wenn Sie das Skript bearbeiten, um Ihre Stadt zu platzieren, wird ein Platz für den Schlüssel angezeigt. Kopieren Sie es einfach und fügen Sie es ein, und Sie sollten gut sein.

Weitere Hinweise:

Dieses Skript verwendet jetzt die "Aktuelle Wetterdaten-API" Informationen zu dieser API finden Sie hier:

openweathermap.org/current Beachten Sie, dass Sie eine Stadt, ein Bundesland und ein Land verwenden können.

IE: Die Stadt "Dayton" wird zu "Dayton, OH, US" Beachten Sie, dass sowohl der Bundesstaat als auch der Ländercode in Großbuchstaben geschrieben sind, dies ist erforderlich. Die API sagt, dass sie nur "Dayton, OH" verwenden kann, aber ich habe Fehler vom Skript erhalten, als ich dies tat - und da dies eine schnelle Lösung war, habe ich nicht untersucht, warum. Daher empfehle ich die Verwendung von "Stadt, Bundesland, Land"

Wenn Sie aus irgendeinem Grund keine guten Informationen mit einem Städtenamen erhalten, können Sie auch die Stadt-ID nachschlagen oder den Breiten- und Längengrad oder die Postleitzahl verwenden. In jedem Fall muss die URL geändert werden. Wenn Sie auf den Link auf der rechten Seite der API-Website klicken, wird ein Beispiel für die URL angezeigt.

Sie müssen auch die URL im Skript ändern.

Noch mehr Hinweise: 3. Oktober 2020

@Itsmedoofer wies darauf hin, dass sie die Python-Anforderungen der Bibliothek mit dem neuen Update installieren mussten. Ich bin mir nicht sicher, ob ich dies benötigt habe (es ist auch möglich, dass ich es vor Jahren installiert habe oder verschiedene Versionen von Python standardmäßig verschiedene Bibliotheken installieren). Wenn das Skript also einen Fehler bezüglich Python-Anfragen ausgibt, ist es einfach zu beheben.

Geben Sie diesen Befehl in die CLI ein: python -m pip install request

und du sollst gut sein.

Hoffentlich macht das seitdem, dies war eine schnelle Lösung, und vielleicht kann ich eines Tages, wenn ich es zulässt, daran arbeiten, es ein bisschen besser aufzuräumen.

Update (6. Oktober 2020) Der Github-Pull-Request wurde akzeptiert, das ursprüngliche CyntechUK-Original-Repository enthält nun dieses Skript. https://github.com/CyntechUK/WeatherHAT Der Benutzer Boeerb hat einige Ideen, wie einige der Bedingungen angezeigt werden können, die derzeit nicht angezeigt werden, sowie einige andere Ideen für die Verwendung. Behalten Sie also dieses Repository im Auge. Und hoffentlich tut sich was.

Update: (8. Oktober 2020) Open Weather Map hat ein kurzes Tutorial zum Einrichten und Verwenden der API, https://openweathermap.org/appid Ein guter Ausgangspunkt.

Empfohlen: