1Aug

Erstellen Sie eine LED-Anzeige mit einem Raspberry Pi( für E-Mail, Wetter oder irgendetwas)

click fraud protection

Der Raspberry Pi ist eine schöne kompakte Plattform, an der eine Anzeige für alle Arten von Projekten angebracht werden kann - Wetterbenachrichtigungen, neue E-Mails usw. Lesen Sie weiter, wie wir Ihnen zeigen, wie Sie ein LED-Modul an Ihrem Pi anschließen und einige Basisfunktionen einrichtenBenachrichtigungen.

Warum möchte ich das tun?

Weil es Spaß macht. Im Gegensatz zu vielen unserer Tutorials, in denen oben ein kleiner Klappentext steht, der genau beschreibt, welchen Nutzen Sie aus dem Projekt ziehen, ist der Klappentext in diesem Fall ziemlich kurz, da der Vorteil einfach Spaß ist.

Der Raspberry Pi ist ein perfektes Gerät, um mit Elektronik zu experimentieren und etwas zu lernen. Niemand benötigt zum Beispiel einen Umgebungsregenmelder in ihrer Küche, aber der Aufbau eines ist eine lustige Übung und eine großartige Erinnerung, um Ihren Regenschirm an potentiell stürmischen Tagen mitzunehmen.

Was brauche ich?

Um mit dem Tutorial zu folgen, benötigen Sie ein paar Dinge. Als erstes gehen wir davon aus, dass Sie bereits unserem vorherigen Tutorial gefolgt sind: Der HTG-Leitfaden für den Einstieg in Raspberry Pi( und damit die Grundlagen für die Installation von Rasbian auf unserem Raspberry Pi).

instagram viewer

Wenn Sie dieses Projekt zu einem günstigen Preis anbieten möchten, können wir Ihnen mit Sicherheit sagen, dass das neueste Modell Raspberry Pi für diesen Job einen erheblichen Overkill darstellt und wir empfehlen Ihnen, den Staub von einem alten Raspberry Pi abzublasen, den Sie habenin den Schrank geschoben oder einen billig gebrauchten von eBay oder ähnlichem abholen. Budget-weise der Lange-in-der-Zahn ein Raspberry Pi 1 Model A oder Model B abgehackt eBay für $ 10-15 ist eine perfekte Passform für dieses Projekt über den Kauf einer brandneuen $ 35 aktuelle Generation Pi.

Zusätzlich zu einer funktionierenden Pi-Einheit mit installiertem Raspbian benötigen Sie folgende Dinge:

  • 1 LedBorg Modul( ~ $ 5,00 mit $ 4 Versand von Großbritannien nach USA, funktioniert mit allen Raspberry Pi Modellen).
  • 1 Klar Raspberry Pi Case kompatibel mit Ihrem speziellen Pi-Modell wie diesem Raspberry Pi 1 Modell B-Fall.

Hinweis: Das klar / gefrostete Pi-Gehäuse ist völlig optional, aber wenn Sie derzeit ein lichtundurchlässiges Gehäuse verwenden, wird Ihre LED-Anzeige darin versteckt. Sie müssen entweder ein Loch in Ihr Gehäuse schneiden, um das Licht auszulassen, oder ein GPIO-Verlängerungskabel mit einem Breakout-Kit - wie diesem von Adafruit Industries - verwenden, um die LedBorg mit Ihrem Raspberry Pi zu verbinden. Während die Verwendung des Breakout-Kabels etwa $ 8 zu den Kosten des Projekts beiträgt, bietet es mehr Potential für die Anpassung des Endprodukts, da Sie die LED leichter in Dinge oder unter etwas platzieren können, das Sie beleuchten möchten.

Installation des LedBorg

Während Sie sich selbst eine komplett neue LED-Anzeige bauen könnten( und eine Suchmaschine viele Leute dazu bringen wird), produziert die Piborg-Organisation ein so kompaktes und billiges LED-Modul, das LedBorg, dass wir nicht widerstehen konnten, es als Grundlage für unser Raspberry Pi LED Indikatorprojekt zu verwenden.

Die Installation des Moduls ist ein Kinderspiel, da es direkt auf die GPIO-Pins des Pi passt. Schalten Sie zuerst Ihren Pi aus und öffnen Sie den Fall.

Der wichtigste Teil des Installationsprozesses besteht darin, dass Sie das Modul so ausrichten, dass das LedBorg - Symbol dem RCA - Modul auf der Raspberry Pi - Platine am nächsten ist( und somit die Kante der LedBorg bündig mit den Kanten der Pi - Platine abschließt)überhängender Teil der LedBorg hängt über der Pi - Platine und nicht über die Kante hinaus).Siehe das Foto oben.

Während Sie die Pi-Platine geöffnet haben, wäre jetzt eine hervorragende Zeit, um die LED-Anzeigen an der Platine( neben den USB-Anschlüssen) abzudecken, besonders wenn Sie einen klaren Fall verwenden. Sie möchten nicht, dass es verwirrend ist, Ihre LedBorg-Anzeige zu lesen, da die Netz- und Netzwerkanzeigen so hell leuchten.

Wir haben unsere mit einer Schicht weißen Isolierband bedeckt. Das dämpfte sie so sehr, dass wir sie immer noch referenzieren konnten, aber sie waren so viel schwächer als die LedBorg, dass sie nicht länger störte.

Sobald Sie die LedBorg installiert haben und optional die LED-Anzeigen des Pi mit Isolierband abdecken, ist es Zeit, das Gehäuse wieder zu schließen. Starten Sie Ihr Pi, bevor Sie mit der nächsten Phase des Tutorials beginnen.

Installation der LedBorg-Software

PiBorg bietet ein großartiges Softwarepaket für die LedBorg, das sowohl einen GUI-Controller als auch Treiber für den Zugriff auf die LedBorg über die Befehlszeile enthält.

Bevor wir beginnen, müssen Sie sicherstellen, dass Sie das richtige Paket für Ihre Version von Rasbian und die Revision # Ihres Raspberry Pi-Boards greifen.

Wenn Ihr Raspberry Pi-Board keine Montagelöcher hat, ist es Revision 1. Wenn Ihr Raspberry Pi Montagelöcher hat( an den USB-Ports und zwischen dem Strom- und HDMI-Port), ist es Revision 2. Sie müssen auch den Kernel kennenVersion Ihrer Rasbian-Installation.Öffnen Sie das Terminal und geben Sie folgenden Befehl ein, um zu prüfen:

uname -r

Sobald Sie die Revisionsnummer und die Kernel-Nummer haben, können Sie den Abschnitt Pakete hier besuchen, um den Link für Ihr Paket zu erhalten. In unserem Fall verwenden wir eine Revision 1-Karte mit dem Kernel 3.6.11, so dass wir uns die Datei raspbian-2013-02-09-rev1.zip schnappen würden.

Um alle Leckereien zu installieren, müssen wir das Terminal auf dem Pi öffnen.und geben Sie dann die folgenden Befehle ein, um das LedBorg-Paket zu installieren.

Hinweis: Sie müssen die URL im dritten Befehl durch die URL des Pakets für Ihre Board / Kernel-Kombination ersetzen.

mkdir ~ / ledborg-einrichtung
cd ~ / ledborg-einrichtung
wget -O setup.zip http: //www.piborg.org/downloads/ledborg/ raspbian2013-02-09-rev1.zip
entpacken setup.zip
chmod + x install.sh
. /install.sh

An dieser Stelle haben Sie jetzt den GUI-Wrapper für die LedBorg-Treiber und die Treiber selbst installiert. Auf Ihrem Raspbian-Desktop sehen Sie ein Symbol für den GUI-Wrapper:

Gehen Sie voran und klicken Sie auf das LedBorg-Symbol, um den GUI-Wrapper zu starten. Sie werden mit der Farbauswahl-Oberfläche wie folgt behandelt:

Jetzt ist die perfekte Zeit, um sicherzustellen, dass Ihr Modul funktionsfähig ist. Wählen Sie eine beliebige Farbe, außer für Schwarz, um es auszuprobieren. Wir werden es testen, indem wir ein paar Farben auswählen:

Sieht gut aus! Es ist hell und der mattierte Kunststoff des Gehäuses, das wir für das Projekt bestellt haben, bietet moderate Diffusion. Wenn Sie mit dem LED-Modul mehr spielen möchten, bevor Sie weitermachen, klicken Sie auf Demo-Modus:

Im Demo-Modus können Sie alle Farben mit verschiedenen Geschwindigkeiten durchlaufen, die High / Low-Ausgabe prüfen und das LED-Modul anderweitig durchspielen.

Hier im Abschnitt Demo-Modus können Sie Ihre LedBorg auch zum ersten von vielen Indikatoren machen. Durch Auswahl von CPU im Bereich "Farben" wechselt die LED von grün zu gelb zu rot, um die Last auf dem ARM-Prozessor des Raspberry Pi anzuzeigen. Wir empfehlen, die Geschwindigkeit zu ändern, während Sie gerade dabei sind. - Schnell aktualisiert die LED zu schnell und macht die CPU-Anzeige ablenkend statt nützlich.

Zusätzlich zur Verwendung der GUI-Schnittstelle zur Auswahl von Farben können Sie Farben aus dem Terminal mit RGB-Werten auswählen.Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein, um die LED auszuschalten:

echo "000" & gt;/dev/ ledborg

Die Art, wie die LEDBorg RGB-Werte verarbeitet, ist, dass 0 bedeutet, dass der Kanal ausgeschaltet ist, 1 bedeutet, dass der Kanal die halbe Leistung hat und 2 bedeutet, dass der Kanal volle Leistung hat. So würde zum Beispiel 001 den roten Kanal auf 0%, den grünen Kanal auf 0% und den blauen Kanal auf 50% Leistung setzen.

Ändern Sie den Wert auf 002, und der LED-Ausgang bleibt blau, wird jedoch heller, da der blaue Kanal jetzt auf 100% Ausgang ist.Ändern Sie den Wert auf 202 und Rot und Blau bei voller Leistung, um eine Magentafarbe zu erhalten.

Nun, da wir wissen, wie man die LED manuell manipuliert, schauen wir uns die Skripte an, um unsere LED von einem einfachen Licht zu einem tatsächlichen Indikator zu machen.

Konfigurieren Ihres LedBorg als Regenindikator

In diesem Teil des Tutorials werden wir verschiedene Dinge zusammenführen, um unser LedBorg LED-Modul basierend auf der Wettervorhersage für unseren Standort in einen Regenindikator umzuwandeln. Wir verwenden ein Python-Skript, um eine Wetter-API aufzurufen, die wiederum die Chance auf Regen für den Tag liest und dann die LED von Aus auf Hellblau umschaltet, um den prognostizierten Regen anzuzeigen.

Zuerst müssen wir einen API-Zugangsschlüssel für Weather Underground bekommen. Für den persönlichen Gebrauch und kleine Entwicklungsprojekte ist die API kostenlos. Besuchen Sie die Anmeldeseite der Wetter-API hier und melden Sie sich für einen API-Schlüssel an.

Sobald Sie Ihren API-Schlüssel haben, besuchen Sie die Weather Underground und suchen Sie nach der Stadt, die Sie überwachen möchten. In unserem Fall werden wir San Fransisco, CA, überwachen. Die URL für die Vorhersageseite von San Francisco lautet:

http: //www.wunderground.com/US/CA/ San_Francisco.htm

Der wichtigste Teil für unsere Zwecke ist der letzte Teil der URL: /CA/ San_Francisco.html. Wir werden das verwenden, um die Vorhersage-URL für das API-Tool zu bearbeiten. Die Basis-URL lautet:

http: //api.wunderground.com/api/ IHR API-SCHLÜSSEL /forecast/q/STATE/ CITY.json

Sie können die Vorhersage für eine US-Stadt generieren, indem Sie den API-Schlüssel, den zweistelligen Bundesstaatscode und den Städtenamen aus der URL Ihres Wetters eingebenUnterirdische Suchergebnisse.

Sobald Sie die API-URL mit Ihrem API-Schlüssel und Status / Stadt eingefügt haben, können Sie das folgende Python-Skript bearbeiten, indem Sie ein neues Textdokument auf Ihrem Pi mit Leafpad erstellen und den folgenden Code einfügen:

von urllib2 import urlopen
import json

req = urlopen( 'http: //api.wunderground.com/api/ IHR API SCHLÜSSEL /forecast/q/STATE/ CITY.json')
parsed_json = json.load( req)
pop = int( geparst_json ['prognose'] ['txt_forecast'] ['prognosetag'][0] ['pop'])

# Folgendes ist ein Debugging-Wert.
# Bearbeiten Sie den Hash und ändern Sie
# die ganze Zahl auf 0-100, um
# die LED-Antwort zu testen.

# pop = 0

print 'Aktuelle Niederschlagswahrscheinlichkeit ist{ }.'. format( pop)

# Die Standardeinstellung ist das Einschalten der LED
# bei einer Regenwahrscheinlichkeit über 20%.Sie können
# den Wert in "if pop & gt; 20:" wie gewünscht einstellen.

wenn Pop & gt;20:
LedBorg = offen( '/dev/ ledborg', 'w')
LedBorg.write( '002')
von LedBorg
drucken( 'Regen!')
sonst:
LedBorg = offen( '/dev/ ledborg', 'w ')
LedBorg.write( ' 000 ')
von LedBorg
drucken( ' Kein Regen! ')

Speichern Sie die Datei als wunderground.py im Verzeichnis /home/pi/.Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein:

python wunderground.py

Wenn Sie Ihren API-Schlüssel und Ihren Bundesstaat / Stadt-Code richtig eingegeben haben, sollte er eine Antwort zurückwerfen, die wie folgt aussieht:

Wenn Niederschlag für Ihr Gebiet vorhergesagt wirdIhre LedBorg-Ausgabe sollte so aussehen:

Es wäre mühsam, jetzt auf einen Regentag zu warten, um das Skript richtig zu testen. Wenn es in Ihrem Gebiet heute keine Regenwahrscheinlichkeit gibt und Sie möchten, dass die LED aufleuchtet, editieren Sie das wunderground.py Skript und ersetzen Sie den "pop = pop" Passthrough Wert in Zeile 13 mit einem Wert größer als 20 wie 60dass unsere Prognose zurückkam. Denken Sie daran, die Zeile zurück zu "pop = pop" zu ändern, wenn Sie fertig sind.

Der letzte Schritt besteht darin, einen Cron-Job einzurichten, um das gerade gespeicherte Skript automatisch in einem regelmäßigen Intervall auszuführen, um die LED-Anzeige auf dem aktuellen Stand zu halten. Da diese Aufgabe sowohl für dieses Skript als auch für den folgenden E-Mail-Indikator erforderlich ist, behandeln wir die Einrichtung eines Cron-Jobs, nachdem wir Ihnen gezeigt haben, wie Sie das andere Skript einrichten.

Konfigurieren Ihres LedBorg als Gmail-Indikator

Wer mag den Dopamin-Fix nicht, der beim Ansehen neuer E-Mails im Posteingang angezeigt wird? In diesem Teil des Tutorials zeigen wir Ihnen, wie Sie den LedBorg als neuen Gmail-Indikator verwenden können. Genau wie beim letzten Mal werden wir einen externen Eingang( in diesem Fall einen Atom-Feed anstelle einer API) und ein einfaches Skript zur Ansteuerung unserer LED kombinieren.

Wir müssen die Funktionalität unserer Python-Installation etwas erweitern, indem wir FeedParser, ein Python RSS / Atom-Feed-Lesetool, installieren.Öffnen Sie das Terminal und geben Sie folgenden Befehl ein:

sudo easy_install feedparser

Sobald die Installation abgeschlossen ist, können wir mit der Erstellung unseres Gmail-Prüfskripts beginnen. Fügen Sie mit Leafpad den folgenden Text wieder in den Editor ein.Ändern Sie den Nutzernamen und das Passwort so, dass sie mit dem Nutzernamen und dem Passwort des zu überprüfenden Google Mail-Kontos übereinstimmen.

Import Feedparser

# Geben Sie Ihren Google Mail-Benutzernamen
# und das Passwort ein. Schließen Sie den @ gmail.com-Teil von
# Ihren Benutzernamen nicht mit
# ein.

Benutzername = "Benutzername"
Passwort = "Passwort"

Mail = int( feedparser.parse( "https: //" + Benutzername + ":" + Passwort + "@ mail.google.com /gmail/feed/ Atom") ["feed"] [" fullcount "])

# Folgendes ist ein Debugging-Wert.
# Bearbeiten Sie den Hash und ändern Sie
# die Ganzzahl auf 0 oder 1, um
# die LED-Antwort zu testen.

# mail = 0

wenn Mail & gt;0:
LedBorg = offen( '/dev/ ledborg', 'w')
LedBorg.write( '020')
von LedBorg
drucken( 'Mail!')
sonst:
LedBorg = offen( '/dev/ ledborg', 'w ')
LedBorg.write( ' 000 ')
von LedBorg
drucken( ' No mail! ')

Speichern Sie das Skript als gmailcheck.py.Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein:

python gmailcheck.py

Wenn Sie eine E-Mail in Ihrem Google Mail-Posteingang haben, wird die LED grün und Sie erhalten eine Antwort wie diese:

Wenn Sie E-Mails in Ihrem Google Mail-Posteingang habensieht so aus:

Genau wie das Regenprüfskript haben wir einen Debugging-Wert eingefügt. Wenn Sie keine neue E-Mail-Adresse haben, können Sie entweder eine E-Mail senden, um den Posteingang auf 1 zu erhöhen, oder Sie können den Kommentar-Hash bearbeiten und die Debug-Zeile in "mail = 1" ändern, um das Skript zu testen. Denken Sie daran, die Zeile nach dem Testen zurückzusetzen.

Wechseln Sie in den nächsten Abschnitt des Lernprogramms, um festzulegen, dass Ihr Google Mail-Skript nach einem Zeitplan ausgeführt wird.

Einrichten eines Cron-Jobs zum Ausführen Ihres Skripts

Jetzt, da wir zwei Skripte zum Spielen haben, müssen wir einen Cron-Job einrichten, um ihn den ganzen Tag laufen zu lassen, um die LED-Anzeige auf dem aktuellen Stand zu halten.

Als erstes möchten wir die LED ausschalten, wenn sie gerade von unseren vorherigen Experimenten an ist. Am Terminaltyp:

echo "000" & gt;/dev/ ledborg

Während Sie sich noch in der Befehlszeile befinden, können Sie den Cron-Editor öffnen. Wenn Sie noch nie einen Cron-Job eingerichtet haben, empfehlen wir Ihnen dringend, unseren Leitfaden zur Verwendung hier zu lesen. Das heißt, wir werden Sie durch die Einrichtung eines Basisplans führen.

Am Terminaltyp:

sudo crontab -e

Dies öffnet die Raspbian-Cron-Tabelle im Nano-Texteditor. Scrolle mit den Pfeiltasten bis ganz nach unten. Hier werden wir den wiederkehrenden Cron-Job für unsere Python-Skripte einrichten.

Wenn Sie das Rain-Skript einrichten möchten, geben Sie die folgende Zeile in die Cron-Tabelle ein:

* / 5 * * * * Python /home/pi/ wunderground.py

Drücken Sie STRG + X, um zu beenden;Wählen Sie Ja, um die vorhandene Cron-Tabelle zu speichern und zu überschreiben. Der Wert, den wir in der Cron-Tabelle "* / 5 * * * *" eingegeben haben, setzt das Skript so, dass es alle 5 Minuten für immer ausgeführt wird.

Alle 5 Minuten ist eine kurze Zeitspanne für ein Skript, das nach prognostiziertem Regen sucht - man könnte sogar argumentieren, dass es ein bisschen zu aggressiv ist - aber wenn Sie versuchen, Ihre E-Mail zu behalten, ist es ein bisschen zu langBenachrichtigung. Wenn Sie den Zeitplan für das Gmail-Benachrichtigungsskript einrichten, geben Sie die folgende Zeile in die Cron-Tabelle ein:

* / 1 * * * * Python /home/pi/ wunderground.py

Dieser Eintrag führt das Skript gmailcheck.py jede Minute für eine viel schnellere Ausführung ausBenachrichtigung aktualisieren

Das ist alles, was dazu gehört! Sie können mit Ihren eigenen Python-Skripten experimentieren, indem Sie die if / else-Anweisungen aus unserem herausheben und sie mit brandneuen Variablen ausprobieren. Wenn Sie eine Eingabequelle für die Daten finden, können Sie sie in eine Variable in Ihrem Python-Skript umwandeln - Aktienmarktdurchschnitte, Pollenzählungen, Twitter-Erwähnungen, wenn es eine API dafür gibt, können Sie sie in eine Ambient-LED-Anzeige verwandeln.

Abschließend möchte ich mich bei all den großartigen Ressourcen bedanken, die ich für dieses Projekt verwendet habe. Es ist ein gutes Jahrzehnt her, seit ich aktiv Programme geschrieben habe und es brauchte ein paar Schläge, um den Staub und den Rost herauszubekommen. Die Mitwirkenden bei /r/ LearnPython halfen mir dabei, in der API-Ausgabe von Weather Underground nachzulesen, wie Michael bei Mitch Tech den Gmail Atom-Feed behandelte, ihn für die LedBorg easy parsierte, und die Python-Lernmodule bei der Code Academy zu studierenMöglichkeit, die grundlegende Syntax und Struktur einer Sprache zu erlernen, die ich vorher noch nie benutzt hatte.