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

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

Build An Led Indicator With Raspberry Pi

Der Raspberry Pi ist eine schöne kompakte Plattform, um eine Anzeigelampe für alle Arten von Projekten anzubringen – Wetterbenachrichtigungen, neue E-Mails usw. Lesen Sie weiter, während wir Ihnen zeigen, wie Sie ein LED-Modul an Ihren Pi anschließen und einige grundlegende Benachrichtigungen einrichten .



Windows-Apps auf dem Mac ausführen

Warum möchte ich das tun?

Weil es Spaß macht. Im Gegensatz zu vielen unserer Tutorials, in denen wir oben einen kleinen Klappentext einfügen, der genau beschreibt, welchen Nutzen Sie aus dem Projekt ziehen, ist der Klappentext in diesem Fall ziemlich kurz, weil der Vorteil einfach darin besteht, Spaß zu haben.

Der Raspberry Pi ist ein perfektes Gerät, um herumzuspielen, mit Elektronik zu experimentieren und etwas Programmieren zu lernen. Niemand braucht zum Beispiel einen Umgebungsregenindikator in ihrer Küche, aber der Bau eines solchen ist eine lustige Übung und eine großartige Erinnerung daran, Ihren Regenschirm an möglicherweise stürmischen Tagen mitzunehmen.

Was brauche ich?

Um unserem Tutorial zu folgen, benötigen Sie ein paar Dinge. Zunächst gehen wir davon aus, dass Sie unser vorheriges Tutorial bereits befolgt haben: Der HTG-Leitfaden für die ersten Schritte mit Raspberry Pi (und haben damit die Grundlagen für die Installation von Rasbian auf unserem Raspberry Pi).

Wenn Sie dieses Projekt mit einem begrenzten Budget durchführen möchten, können wir Ihnen mit Sicherheit sagen, dass das neueste Raspberry Pi-Modell für den Job ein erheblicher Overkill ist, und wir empfehlen Ihnen, den Staub von einem alten Raspberry Pi zu blasen, den Sie geschoben haben im Schrank oder holen Sie sich einen billigen gebrauchten bei eBay oder ähnlichem. Was das Budget angeht, ist der langwierige Raspberry Pi 1 Model A oder Model B, der für 10-15 US-Dollar von eBay geschnappt wurde, perfekt für dieses Projekt geeignet, anstatt einen brandneuen Pi der aktuellen Generation für 35 US-Dollar zu kaufen.

Anzeige

Zusätzlich zu einer funktionsfähigen Pi-Einheit mit darauf installiertem Raspbian benötigen Sie die folgenden Dinge:

Notiz: Das klare / mattierte Pi-Gehäuse ist völlig optional, aber wenn Sie derzeit ein undurchsichtiges Gehäuse verwenden, wird Ihre LED-Anzeige darin versteckt. Sie müssen entweder ein Loch in Ihr Gehäuse schneiden, um das Licht herauszulassen, oder ein GPIO-Verlängerungskabel mit einem Breakout-Kit verwenden - wie dieser von Adafruit Industries – um den LedBorg mit Ihrem Raspberry Pi zu verbinden. Während die Verwendung des Breakout-Kabels die Kosten des Projekts um etwa 8 US-Dollar erhöht, bietet es mehr Potenzial für die Anpassung des Endprodukts, da Sie die LED einfacher in Gegenständen oder unter etwas platzieren können, das Sie beleuchten möchten.

Installation des LedBorg

Während Sie sich sicherlich eine komplett von Grund auf neu erstellte LED-Anzeige bauen könnten (und eine Suchmaschinenanfrage wird viele Leute finden, die dies getan haben), produziert die Piborg-Organisation ein so kompaktes und kostengünstiges LED-Modul, das LedBorg, dass wir Ich kann nicht widerstehen, es als Grundlage für unser Raspberry Pi-LED-Anzeigenprojekt zu verwenden.

Die Installation des Moduls ist ein Kinderspiel, da es direkt über die GPIO-Pins des Pi passt. Schalten Sie zuerst Ihren Pi aus und öffnen Sie das Gehäuse.

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

Während Sie das Pi-Board geöffnet haben, wäre jetzt ein ausgezeichneter Zeitpunkt, um die integrierten LED-Anzeigen (neben den USB-Anschlüssen) abzudecken, insbesondere wenn Sie ein durchsichtiges Gehäuse verwenden. Sie möchten nicht, dass es verwirrend ist, Ihre LedBorg-Anzeige zu lesen, weil die Betriebs- und Netzwerkanzeige so hell sind.

Anzeige

Wir bedeckten unsere mit einer Schicht weißem Isolierband. Dadurch wurden sie ausreichend gedimmt, sodass wir sie immer noch referenzieren konnten, aber sie waren so viel dunkler als die LedBorg, dass sie nicht mehr ablenkten.

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

Installieren der LedBorg-Software

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

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

Wenn Ihr Raspberry Pi-Board keine Befestigungslöcher hat, ist es Revision 1. Wenn Ihr Raspberry Pi Befestigungslöcher hat (befindet sich bei den USB-Ports und zwischen dem Strom- und dem HDMI-Port), dann ist es Revision 2. Sie müssen auch die Kernel-Version kennen Ihrer Rasbian-Installation. Öffnen Sie das Terminal und geben Sie den folgenden Befehl zur Überprüfung ein:

uname -r

Sobald Sie die Revisionsnummer und die Kernelnummer haben, können Sie Besuchen Sie den Abschnitt Pakete hier um den Link für Ihr Paket zu erhalten. In unserem Fall verwenden wir ein Revision-1-Board mit dem Kernel 3.6.11, also würden wir die Datei raspbian-2013-02-09-rev1.zip nehmen.

Anzeige

Um alle Goodies 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.

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

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

An dieser Stelle haben Sie nun 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:

Fahren Sie fort 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 der perfekte Zeitpunkt, um sicherzustellen, dass Ihr Modul funktionsfähig ist. Wählen Sie eine beliebige Farbe, außer 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 eine moderate Diffusion. Wenn Sie mehr mit dem LED-Modul spielen möchten, bevor Sie fortfahren, klicken Sie auf Demo-Modus:

Anzeige

Im Demo-Modus können Sie alle Farben in verschiedenen Geschwindigkeiten durchlaufen, die High/Low-Leistung überprüfen und das LED-Modul ansonsten auf Herz und Nieren prüfen.

Hier im Demo-Modus können Sie Ihren LedBorg auch in den ersten von vielen Indikatoren verwandeln. Durch Auswahl von CPU im Abschnitt Farben beginnt die LED von Grün über Gelb nach Rot zu wechseln, um die Belastung des ARM-Prozessors des Raspberry Pi anzuzeigen. Wir empfehlen, die Geschwindigkeit zu langsam zu ändern, während Sie gerade dabei sind – Fast 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 mit RGB-Werten aus dem Terminal auswählen. Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein, um die LED auszuschalten:

echo '000' > /dev/ledborg

Die Art und Weise, wie LedBorg RGB-Werte behandelt, ist, dass 0 bedeutet, dass der Kanal ausgeschaltet ist, 1 bedeutet, dass der Kanal halbe Leistung hat und 2 bedeutet, dass der Kanal volle Leistung hat. Zum Beispiel würde 001 den Roten Kanal auf 0 % setzen, den Grünen Kanal auf 0 % und den Blauen Kanal auf 50 % Leistung.

Ändern Sie den Wert auf 002 und die LED-Ausgabe bleibt blau, wird jedoch heller, da der Blaukanal jetzt auf 100 % ausgegeben wird. Ändern Sie den Wert auf 202 und Rot und Blau bei voller Leistung werden kombiniert, um eine Magenta-Farbe zu erhalten.

Da wir nun wissen, wie man die LED manuell manipuliert, sehen wir uns die Verwendung von Skripten an, um unsere LED von einem einfachen Licht in eine tatsächliche Anzeige zu verwandeln.

So verbergen Sie E-Mail-Empfänger

Konfigurieren Ihres LedBorg als Regenanzeige

Für diesen Teil des Tutorials werden wir mehrere Dinge zusammenfassen, um unser LedBorg LED-Modul basierend auf der Wettervorhersage für unseren Standort in einen Regenindikator zu verwandeln. Wir verwenden ein Python-Skript, um eine Wetter-API aufzurufen, die wiederum die Regenwahrscheinlichkeit für den Tag liest und dann die LED von aus auf hellblau umschaltet, um den prognostizierten Regen anzuzeigen.

Anzeige

Zuerst benötigen wir einen API-Zugriffsschlüssel für Weather Underground. Für den persönlichen Gebrauch und kleine Entwicklungsprojekte ist die API kostenlos. Besuchen Sie die Weather API-Anmeldeseite hier und melden Sie sich für einen API-Schlüssel an.

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

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

Der für unsere Zwecke wichtige Teil ist der letzte Teil der URL: /CA/San_Francisco.html. Wir werden dies verwenden, um die Prognose-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 jede beliebige Stadt in den USA erstellen, indem Sie Ihren API-Schlüssel, den aus zwei Buchstaben bestehenden Bundesstaatscode und den Städtenamen aus der URL eingeben, die Sie aus Ihren Weather Underground-Suchergebnissen abgerufen haben.

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

from urllib2 import urlopen
import json

req = urlopen('http://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json ')
parsed_json = json.load(req)
pop = int(parsed_json['forecast']['txt_forecast']['forecastday'][0]['pop'])

# Der folgende Wert ist ein Debugging-Wert.
# Bearbeiten Sie den Hash und ändern Sie ihn
# die ganze Zahl zu 0-100 zum Testen
# die LED-Antwort.

# pop = 0

print 'Current chance of precipitation is {}.'.format(pop)

# The default setting is to turn on the LED
# for any chance of rain above 20%. You can adjust
# the value in 'if pop > 20:' as you wish.

wie man in linux einfügt

if pop > 20:
LedBorg = open('/dev/ledborg', 'w')
LedBorg.write('002')
del LedBorg
print ('Rain!')
else:
LedBorg = open('/dev/ledborg', 'w')
LedBorg.write('000')
del LedBorg
print ('No rain!')

Anzeige

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 Ihre Landes-/Stadtcodes richtig eingegeben haben, sollte eine Antwort wie folgt zurückgeworfen werden:

Wenn für Ihre Region Niederschlag vorhergesagt wird, sollte Ihre LedBorg-Ausgabe so aussehen:

Jetzt auf einen regnerischen Tag zu warten, um das Skript richtig zu testen, wäre mühsam. Wenn heute in Ihrer Nähe keine Regenwahrscheinlichkeit besteht und Sie möchten, dass die LED aufleuchtet, bearbeiten Sie das Skript wunderground.py und ersetzen Sie den pop = pop-Passthrough-Wert in Zeile 13 durch einen Wert größer als 20, z Prognose zurückgegeben. Denken Sie daran, die Zeile wieder in pop = pop zu ändern, wenn Sie fertig sind.

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

Konfigurieren Ihres LedBorg als Gmail-Indikator

Wer mag nicht den Dopamin-Fix, der mit dem Erscheinen neuer E-Mails in seinem Posteingang einhergeht? In diesem Teil des Tutorials zeigen wir Ihnen, wie Sie LedBorg als neuen Gmail-Indikator verwenden. Wie beim letzten Mal kombinieren wir einen externen Eingang (in diesem Fall einen Atom-Feed anstelle einer API) und ein einfaches Skript, um unsere LED anzusteuern.

Anzeige

Wir müssen die Funktionalität unserer Python-Installation ein wenig erweitern, indem wir installieren FeedParser , ein Lesetool für Python-RSS/Atom-Feeds. Öffne das Terminal und gib 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 erneut mit Leafpad den folgenden Text in den Editor ein. Ändern Sie den Benutzernamen und das Passwort so, dass sie mit dem Benutzernamen und dem Passwort des Gmail-Kontos übereinstimmen, das Sie überprüfen möchten.

import feedparser

# Enter your Gmail username
# and password. Don't include
# the @gmail.com portion of
# your username.

username = 'username'
password = 'password'

mail = int(feedparser.parse('https://' + username + ':' + password +'@mail.google.com/gmail/feed/atom')['feed']['fullcount'])

# Der folgende Wert ist ein Debugging-Wert.
# Bearbeiten Sie den Hash und ändern Sie ihn
# die ganze Zahl zu einer 0 oder 1 zum Testen
# die LED-Antwort.

# mail = 0

if mail > 0 :
LedBorg = open('/dev/ledborg', 'w')
LedBorg.write('020')
del LedBorg
print ('Mail!')
else:
LedBorg = open('/dev/ledborg', 'w')
LedBorg.write('000')
del LedBorg
print ('No mail!')

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

python gmailcheck.py

Wenn sich in Ihrem Gmail-Posteingang E-Mails befinden, wird die LED grün und Sie erhalten eine Antwort wie diese:

Wenn Sie E-Mails in Ihrem Gmail-Posteingang haben, sieht Ihr LedBorg so aus:

Genau wie das Rain-Checking-Skript haben wir einen Debugging-Wert eingefügt. Wenn Sie keine neue E-Mail haben, können Sie sich entweder selbst eine E-Mail senden, um die Anzahl Ihres Posteingangs auf 1 zu erhöhen, oder Sie können den Kommentar-Hash herausschneiden und die Debugging-Zeile in mail = 1 ändern, um das Skript zu testen. Denken Sie daran, die Zeile zurückzusetzen, wenn Sie mit dem Testen fertig sind.

Anzeige

Springen Sie zum nächsten Abschnitt des Tutorials, um Ihr Gmail-Skript so einzurichten, dass es nach einem Zeitplan ausgeführt wird.

Einrichten eines Cron-Jobs zum Ausführen Ihres Skripts

Da wir nun zwei Skripte zum Spielen haben, müssen wir einen Cron-Job einrichten, um sie den ganzen Tag über auszuführen, damit die LED-Anzeige aktuell bleibt.

Das erste, was wir tun möchten, ist, die LED auszuschalten, wenn sie derzeit aus unseren vorherigen Experimenten leuchtet. Am Terminaltyp:

echo 000 > /dev/ledborg

Während Sie sich noch in der Befehlszeile befinden, können Sie den Cron-Editor öffnen. Wenn Sie noch nie zuvor einen Cron-Job eingerichtet haben, empfehlen wir Ihnen dringend Sehen Sie sich unsere Anleitung zur Verwendung hier an . Das heißt, wir werden Sie hier durch die Einrichtung eines grundlegenden Zeitplans führen.

Am Terminaltyp:

sudo crontab -e

Dadurch wird die Raspbian-Cron-Tabelle im Nano-Texteditor geöffnet. Verwenden Sie die Pfeiltasten, um ganz nach unten zu scrollen. Hier richten wir den wiederkehrenden Cron-Job für unsere Python-Skripte ein.

Wenn Sie das Regenskript einrichten möchten, geben Sie die folgende Zeile in die cron-Tabelle ein:

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

Anzeige

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

wie man umschult ok google

Alle 5 Minuten ist eine gute Zeitspanne für ein Skript, das auf vorhergesagten Regen prüft – man könnte sogar argumentieren, dass es ein bisschen zu aggressiv ist – aber wenn Sie versuchen, Ihre E-Mails im Auge zu behalten, ist dies eine etwas zu lange Zeitspanne für Benachrichtigungen . 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 aus, um eine viel schnellere Update-Benachrichtigung zu erhalten.


Das ist alles dazu! Sie können mit Ihren eigenen Python-Skripten experimentieren, indem Sie die if/else-Anweisungen aus unseren herausheben und sie mit brandneuen Variablen ausprobieren. Wenn Sie eine Eingabequelle für die Daten finden, können Sie sie in Ihrem Python-Skript in eine Variable umwandeln – Börsendurchschnitte, Pollenzahlen, Twitter-Erwähnungen, wenn es eine API dafür gibt, können Sie sie in eine Umgebungs-LED-Anzeige umwandeln.

Abschließend möchte ich mich bei all den großartigen Ressourcen bedanken, die ich für die Arbeit an diesem Projekt verwendet habe. Es ist etwas mehr als ein Jahrzehnt her, seit ich aktiv Programme geschrieben habe, und es brauchte ein paar Schläge, um Staub und Rost herauszubekommen. Die Mitwirkenden bei /r/Python lernen hat mir geholfen, in der API-Ausgabe für Weather Underground herumzubasteln und zu studieren, wie Michael bei Mitch Tech ist Umgang mit dem Gmail Atom-Feed das Parsen für den LedBorg einfach gemacht, und Studium der Python-Lernmodule an der Code Academy war eine großartige Möglichkeit, die grundlegende Syntax und Struktur einer Sprache zu erlernen, die ich noch nie zuvor verwendet hatte.

WEITER LESEN Profilfoto von Jason Fitzpatrick Jason Fitzpatrick
Jason Fitzpatrick ist der Chefredakteur von LifeSavvy, der Schwesterseite von How-To Geek, die sich auf Lifehacks, Tipps und Tricks konzentriert. Er verfügt über mehr als ein Jahrzehnt Erfahrung im Verlagswesen und hat Tausende von Artikeln bei Review Geek, How-To Geek und Lifehacker verfasst. Jason war Wochenend-Redakteur von Lifehacker, bevor er zu How-To Geek kam.
Vollständige Biografie lesen