Home > Technologie > LED Wettervorhersage

LED Wettervorhersage

0
Advertisement

LED Wettervorhersage

Dieses Projekt verwendet eine 6 x 16 Matrix von RGB-LEDs, um eine Wettervorhersage von der Weather Underground API zu visualisieren. Ein Himbeer-Pi führt ein Pythonprogramm aus, das entworfen wurde, um die Wettervorhersagedaten von der API in regelmäßigen Abständen abzurufen, die Daten in die Temperatur, den Druck, die Feuchtigkeit, die Windgeschwindigkeit, die Niederschlagsgefahr und die Wetterbedingungsarrays zu analysieren und dann diese Daten zu kolorieren und anzuzeigen Die LED-Matrix.

In einem eigenen Gehäuse kann das Projekt in den nächsten 32 Stunden auf einem Regal, einem Schreibtisch oder an einer Wand als kompaktes Display für anstehende Wetterbedingungen eingesetzt werden.

Schritt 1: Materialien

Hardware

  • Himbeer-Pi mit Raspbian installiert und konfiguriert, um eine Verbindung zum Internet (für dieses Projekt habe ich Prototyp mit der 2 B und später installiert die Zero *)
  • 5 Volt Netzteil, 2 Ampere oder mehr
  • 2.1mm Federfassung Jack Adapter oder MicroB USB Anschluss (abhängig von Ihrer Steckdose)
  • Mikro-USB-Verbindungsstück-Shell
  • Kondensator - 1000 μF, 6,3 V oder höher (ich habe eine 1000μF, 16V, die ich auf der Hand hatte)
  • Widerstand (300 bis 500 Ohm)
  • 74AHCT125 Pegelumsetzer
  • Zwölf (12) NeoPixel-Sticks - 8 x 5050 RGB-LEDs
  • Broadboard, Verbindungsdrähte und Header

* Beachten Sie, dass, wenn Sie den Zero verwenden, ein USB-Hub, ein Micro-USB-Stecker auf USB-Buchse und ein Mini-HDMI-HDMI-Buchse zum Anschluss an das Pi für Software-Setup und Fehlerbehebung benötigt werden.

Software

  • NeoPixel Bibliothek für Raspberry Pi - rpi_ws281x Bibliothek (hier)
  • Program Files - apiboot.txt und weather_color.py (hier)
  • API - Schlüssel von Weatherunderground (hier)

Andere Materialien

  • 8 "x 10" Schattenkasten-Rahmen (oder anderes Gehäuse zum Anzug)
  • Karton
  • Pergament
  • Konstruktionspapier oder Mattenbrett
  • Doppelseitiges Klebeband

Spezialwerkzeug

  • Sie müssen in der Lage sein, für dieses Projekt zu löten. Die NeoPixel-Sticks müssen miteinander verlötet werden und benötigen Kopfstücke für ihre Ein- und Ausgänge gelötet. Der Raspberry Pi Zero muss mindestens zwei Header für GPIO-Verbindungen gelötet haben.

Schritt 2: Schließen Sie die Hardware an

LED Wettervorhersage

LED Wettervorhersage

LED Wettervorhersage

LED Wettervorhersage

LED Wettervorhersage

Die LED-Matrix besteht aus sechs Reihen von zwei NeoPixel-Stiften, die unter Verwendung getrimmter Header-Anschlüsse miteinander verbunden sind, um GND-zu-GND, DIN-zu-DOUT, VDC-VDC und (für Flexibilität) GND-zu-GND miteinander zu verbinden. Header-Anschlüsse wurden ebenfalls an GND, DIN, VDC und GND wieder verlötet (für Flexibilität) an einem Ende der Pixelreihe und DOUT an dem anderen Ende.

Der Himbeer-Pi-Zero hat keine Header, die an den GPIO-Pads montiert sind. Sie müssen mindestens zwei Kopfstücke an die Pin 6-Position (GND) und eine andere an die Pin 12-Position (GPIO18) anlöten.

Die grundlegende Hardware - Installation ist eine fast Eins-zu-Eins - Umsetzung des Pegelwandler Chip Wiring - Setup auf Tutorial Learning System Adafruit der gefunden NeoPixels auf Raspberry Pi . Das Breadboard-Setup ist wie folgt zusammengefasst:

  • Schließen Sie die Stromversorgungsmasse an die 74AHCT125 Masse- und 1OE-Pins, die Himbeer-Pi-Masse und jede Reihe von NeoPixel GND an (alle sechs Reihen sind parallel geschaltet).
  • Schließen Sie die Stromversorgung 5V bis 74AHCT125 VCC und jede Reihe von NeoPixel DIN (alle sechs Reihen parallel geschaltet) an.
  • Verbinden Sie den Himbeer Pi Pin 12 (GPIO18) mit dem 74AHCT125 Pin 1A.
  • Verbinden Sie den 74AHCT125 Pin 1Y mit der ersten NeoPixelreihe DIN.
  • Verbinden Sie die erste NeoPixel Zeile DOUT mit der zweiten NeoPixel Zeile DIN (Fortsetzung dieser Serie bis alle sechs Zeilen verbunden sind).

Zusätzlich zu dem obigen habe ich beschlossen, einen Kondensator (1000 μF, 6,3 V oder höher) über die + und - Anschlüsse und einen Datenleitungswiderstand (300 bis 500 Ohm) zwischen dem 74AHCT125 Pin 1Y und dem Eingang des ersten NeoPixels hinzuzufügen . Das Projekt wurde ohne zusätzliche Hardware ohne beobachtbare schädliche Wirkung getestet wurden aber als Vorsichtsmaßnahme auf der Grundlage der hinzugefügt Best Practices in der "Adafruit NeoPixel Überguide" gefunden.

Die Stromversorgung erfolgt über einen MicroB USB Connector Breakout und das Split, um sowohl den Pi als auch den Broadboard parallel zu versorgen. Lötanschlußklemmen an VCC und GND. Löten Sie den Kondensator und zwei Drahtpaar an jeden Headeranschluss (achten Sie darauf, dass die Kondensatorleitungen korrekt an die positive / VCC-Klemme und die negative / GND-Klemme angepasst sind). Verbinden Sie ein Paar VCC- und GND-Aderenden mit dem Steckbrett. Löten Sie die Micro-USB-Steckverbinder-Schale an das andere Adernende und verbinden Sie sie mit dem Himbeer-Pi.

Sie sollten nun in der Lage sein, das Pi von den Mikro-USB-Anschlüssen zu schalten. Allerdings werden die LEDs nichts tun, bis die NeoPixel-Bibliothek im nächsten Schritt installiert ist.

Für dieses Tutorial werde ich nicht gehen Sie in eine Schritt-für-Schritt, wie das Projekt montiert und angezeigt wird. Aus den Bildern können Sie sehen, dass die LEDs in gleichmäßig beabstandeten Reihen von ca. 1 cm Abstand montiert sind. Ich fand, dass Pappe und doppelseitiges Klebeband gut für die Montage der LEDs, Brotschneider und Himbeer-Pi. Außerdem arbeitete ein einzelnes Blatt aus weißem Vellum gut, um die LEDs subtil zu diffundieren. Das gesamte Projekt wird innerhalb eines Schattenkastenrahmens angebracht. Sie müssen einen Rahmen wählen, der mindestens 2,5 Zoll tief ist, um genügend Platz für die Anschlussdrähte und Anschlussköpfe zu bieten.

Schritt 3: Installieren Sie die NeoPixel-Bibliothek und testen Sie die LEDs

Herunterladen und Installieren der NeoPixel Bibliothek für Raspberry Pi (rpi_ws281x Bibliothek), im Anschluss an die Software Befehle aus dem Adafruit Learning System Tutorial mit einer Ausnahme. Zusätzlich zur Tutorial-Anweisung zum Installieren der Bibliothek an Python durch Ausführen von:

  Cd python sudo python setup.py installieren

Sie müssen auch die Bibliothek zu Python 3 installieren, indem Sie ausführen:

  Sudo python3 setup.py installieren

Dies liegt daran, dass das Programm weather_color.py, das Sie in einem späteren Schritt installieren, in Python 3 geschrieben wurde.

Fortsetzen Sie die Softwareanweisungen mit dem Strandtest-Beispiel. Achten Sie darauf, die LED_COUNT-Konstante auf die Anzahl der Pixel in Ihrem Projekt (in diesem Fall 96) zu ändern, oder nur die erste Zeile Ihrer Matrix wird gesteuert, wenn Sie den Beispielcode ausführen.

Wenn alle Ihre Verbindungen gut sind, erhalten Sie eine nette helle * Demonstration über der gesamten Matrix!

* Beachten Sie, dass für das Strandtest-Beispiel und die Verwendung einer Helligkeitseinstellung von 255 und einer Pixelanzahl von 96 eine 2 Ampere Stromversorgung ausreicht (ich habe etwa 1,2 Ampere für die LEDs während der Regenbogen-Chase-Sequenz gemessen). Seien Sie jedoch vorsichtig, wenn Sie mit dem Code spielen. Ein ganz weiß (255, 255, 255) einstellen könnte mehr als 5 Ampere ziehen (Hinweis auf die Powering NeoPixels Abschnitt des "Adafruit NeoPixel Überguide" für die Schätzung NeoPixel Leistungsbedarf).

Schritt 4: Installieren Sie die Programmierung "Wetterfarbe"

Das Wetterfarbprogramm wurde entwickelt, um Wettervorhersagedaten aus einer API in 15-Minuten-Intervallen abzurufen, die Daten in die Temperatur, den Druck, die Luftfeuchtigkeit, die Windgeschwindigkeit, die Niederschlagsgefahr und die Wetterbedingungsarrays zu analysieren und anschließend diese Daten zu kolorieren und anzuzeigen LED-Matrix.

Damit die API zu arbeiten, benötigen Sie einen API - Schlüssel von der Weatherunderground Website zu erhalten (hier erhältlich) . Diese Taste wird zu einem späteren Zeitpunkt in die Datei apiboot.txt eingetragen.

Führen Sie am Raspberry Pi-Terminal den folgenden Befehl aus, um die benötigten Programmdateien apiboot.txt und weather_color.py herunterzuladen und zu installieren.

  Git clone https://github.com/aughtnaughtzero/weather_color.git

Sie müssen nun die apiboot.txt-Datei bearbeiten, um Ihren API-Schlüssel hinzuzufügen und eine der API-Abfrageoptionen zu wählen (uncomment). Wenn Sie den folgenden Befehl ausführen, wird die Datei apiboot.txt im Nano-Texteditor geöffnet.

  Sudo nano /home/pi/weather_color/apiboot.txt

Standardmäßig ist die Stadt / Zustand Abfrage nicht kommentiert (Miami / FL). Wählen Sie und ändern Sie jede Abfrage Ihrer Vorliebe, nur sicher sein, zu kommentieren (#) eine unbenutzte Abfrage. Verweisen Sie auf das Weather Underground - Dokumentation für weitere Beispiele über die Abfragetypen und wie die Abfragen zuzuschneiden mit Ihren spezifischen Bedarf zu arbeiten. Wenn Sie fertig sind, bearbeiten Sie die Nano-Datei, Ctrl-X zu beenden und Y, um die Datei zu speichern. Beachten Sie, dass Sie die Dateien apiboot.txt und log.txt mit jedem beliebigen Texteditor bearbeiten können. Wenn Sie in die Raspbian-Desktop-Umgebung booten, können Sie Leafpad verwenden, um die Dateien zu ändern und zu speichern, indem Sie in das Verzeichnis / home / pi / weather_color navigieren.

Führen Sie zum Testen der Installation die folgenden Schritte aus:

  Sudo python3 /home/pi/weather_color/weather_color.py

Nach der Ausführung wird das Programm seine erste log.txt-Datei schreiben. Wenn Sie die Protokolldatei jetzt öffnen, wird die Protokolldatei nur angeben, dass das Programm mit der Regenbogen-Farbsequenz initialisiert wird.

Die Regenbogen-Farbsequenz wird über die LED-Matrix für 60 Sekunden gejagt. Das Programm weather_color soll nach dem Start von Raspberry Pi gestartet werden. Die 60 Sekunden Verzögerung soll dem Pi viel Zeit zum Booten geben und mit wifi verbinden, bevor es den ersten API-Aufruf macht.

Nach ca. 60 Sekunden wird das Programm seinen ersten API-Aufruf machen. Wenn alles gut geht, wird eine schöne Mischung der LED-Farben angezeigt, die 32 Stunden des prognostizierten Wetters darstellen. Das Öffnen der log.txt-Datei zeigt den Datensatz aus dem API-Aufruf. Das Programm wird weiterhin API-Aufrufe durchführen und die LED-Matrix und die log.txt-Datei alle 15 Minuten aktualisieren, bis das Pi heruntergefahren oder das Programm beendet wird (Ctrl-C vom Terminal).

Wenn der API-Aufruf keine Verbindung herstellt oder einen Fehler zurückgibt, wischt das Programm die LED-Matrix mit einer roten Anzeige ab, schreibt den aufgetretenen Fehler in die Datei log.txt und beendet.

Wenn der API-Aufruf während der Startreihenfolge abgelaufen ist, wischt das Programm die LED-Matrix mit einem gelben Display ab, schreibt eine Nachricht in die Datei log.txt und versucht, die Verbindung in drei Minuten wieder herzustellen.

Weitere Informationen zu den in der Prognoseanzeige verwendeten Farbdarstellungen finden Sie in der Datei color_key.txt im Verzeichnis / home / pi / weather_color. Im allgemeinen repräsentiert Blau niedrige Werte, grün repräsentiert mittlere Werte und rot repräsentiert hohe Werte.

Der letzte Schritt in der Software-Installation ist, dass die Pi starten Sie das Programm beim Start. Dies geschieht durch Verwendung des folgenden Terminalbefehls, um das crontab zu modifizieren.

  Sudo crontab -e

Scrollen Sie zum unteren Rand der Datei und fügen Sie die Zeile hinzu:

  @reboot sudo python3 /home/pi/weather_color/weather_color.py

Wenn Sie fertig sind, bearbeiten Sie die Datei, Ctrl-X zu beenden und Y, um die Datei zu speichern.

Nun, wenn Sie Shutdown und starten Sie Ihre Pi, wird das Programm weather_color wie vorgesehen gestartet. Seien Sie während des Ladens geduldig, da es keine Anzeige für die ersten 15 Sekunden oder so gibt, bis das crontab durchgeführt wird.

Sie können nun das Projekt von Tastatur, Maus und Display aus festlegen und an jedem beliebigen Ort platzieren, um das aktuelle Wetter und die Prognose auf einen Blick zu sehen!

Related Reading