Startseite » wie man » Erstellen Sie eine LED-Anzeige mit einem Himbeer-Pi (für E-Mail, Wetter oder irgendetwas)

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

    Der Raspberry Pi ist eine schöne, kompakte Plattform, an der eine Anzeigeleuchte für alle Arten von Projekten angebracht werden kann - Wetterbenachrichtigung, neue E-Mails usw. Lesen Sie weiter, da wir Ihnen zeigen, wie Sie ein LED-Modul an Ihren Pi anschließen und einige grundlegende Benachrichtigungen einrichten.

    Warum möchte ich das tun??

    Weil es Spaß macht. Im Gegensatz zu vielen unserer Tutorials, bei denen wir oben ein bisschen Klappentext enthalten, um genau anzugeben, welchen Nutzen Sie aus dem Projekt ziehen, ist der Klappentext in diesem Fall ziemlich kurz, da der Nutzen einfach Spaß macht.

    Der Raspberry Pi ist ein perfektes Gerät zum Spielen, zum Experimentieren mit Elektronik und zum Erlernen der Programmierung. Niemand braucht Zum Beispiel einen Umgebungsregenindikator in der Küche, aber das Erstellen eines solchen ist eine unterhaltsame Übung und eine großartige Erinnerung, um Ihren Regenschirm an möglicherweise stürmischen Tagen mitzunehmen.

    Was brauche ich?

    Um das Tutorial zu verfolgen, benötigen Sie ein paar Dinge. Zunächst gehen wir davon aus, dass Sie bereits unser vorheriges Tutorial befolgt haben: Der HTG-Leitfaden für die ersten Schritte mit Raspberry Pi (und hat somit 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 Modell Raspberry Pi ein erheblicher Overkill für diesen Job ist, und wir möchten Sie dazu ermutigen, einem alten Raspberry Pi, den Sie gestoßen haben, den Staub abzusaugen Im Schrank oder abholen Sie ein billiges gebrauchtes eBay oder ähnliches. Was den preisgünstigen Raspberry Pi 1 anbelangt, ist das Modell A oder das Model B, das eBay für 10-15 Dollar verhängt hat, die perfekte Lösung für dieses Projekt, wenn Sie einen brandneuen Pi mit einer aktuellen Generation von 35 Dollar erwerben.

    Neben einer funktionellen Pi-Einheit, auf der Raspbian installiert ist, benötigen Sie Folgendes:

    • 1 LedBorg-Modul (~ 5,00 USD mit Versand von 4 USD nach Großbritannien, funktioniert mit allen Raspberry Pi-Modellen).
    • 1 Klare Raspberry Pi-Hülle, kompatibel mit Ihrem speziellen Pi-Modell wie diese Raspberry Pi 1 Model B-Hülle.

    Hinweis: Die durchsichtige / mattierte Pi-Hülle ist vollständig optional. Wenn Sie jedoch derzeit eine undurchsichtige Hülle verwenden, wird Ihre LED-Anzeige im Inneren verborgen. Sie müssen entweder ein Loch in Ihre Tasche schneiden, um das Licht auszulassen, oder ein GPIO-Verlängerungskabel mit einem Breakout-Kit wie Adafruit Industries verwenden, um die LedBorg mit Ihrem Raspberry Pi zu verbinden. Die Verwendung des Breakout-Kabels erhöht die Projektkosten um etwa 8 US-Dollar, bietet jedoch ein größeres Potenzial für die Anpassung des Endprodukts, da Sie die LED leichter in Dingen oder unter etwas platzieren können, das Sie beleuchten möchten.

    Installation des LedBorg

    Während Sie sich sicherlich eine völlig neue LED-Anzeige zusammenstellen konnten (und eine Suchmaschinenabfrage wird viele Leute auftauchen, die dies getan haben), stellt die Piborg-Organisation ein so kompaktes und kostengünstiges LED-Modul, das LedBorg, her, dass wir nicht in der Lage sind. t widerstehen Sie es als Grundlage für unser LED-Indikatorprojekt Raspberry Pi.

    Die Installation des Moduls ist ein Kinderspiel, da es so konzipiert ist, dass 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 Installationsvorgangs 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 der Rand der LedBorg bündig mit den Kanten der Pi-Platine mit dem Überhang abschließt) Teil des LedBorg hängt über der Pi-Platine und nicht am Rand. Siehe das Foto oben.

    Wenn Sie die Pi-Platine geöffnet haben, ist es jetzt ein hervorragender Zeitpunkt, um die LED-Anzeigen an Bord (neben den USB-Anschlüssen) abzudecken, insbesondere wenn Sie einen klaren Fall verwenden. Sie möchten nicht, dass es verwirrend ist, Ihre LedBorg-Anzeige zu lesen, da die Betriebs- und Netzwerkanzeige so hell sind.

    Wir haben unsere mit einer Schicht aus weißem Isolierband bedeckt. Dies verdunkelte sie genug, so dass wir sie immer noch referenzieren konnten, aber sie waren so viel schwächer als die LedBorg, dass sie nicht mehr ablenkten.

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

    Installation der LedBorg-Software

    PiBorg bietet ein hervorragendes 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 loslegen, müssen Sie sicherstellen, dass Sie das richtige Paket für Ihre Rasbian-Version und die Versionsnummer Ihres Raspberry Pi-Boards verwenden.

    Wenn Ihre Raspberry Pi-Platine keine Befestigungslöcher hat, handelt es sich um Revision 1. Wenn Ihr Raspberry Pi Montagelöcher hat (an den USB-Anschlüssen und zwischen dem Strom- und dem HDMI-Anschluss), handelt es sich um Revision 2. Sie müssen außerdem 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 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-Platte mit dem 3.6.11-Kernel, sodass wir uns die Datei raspbian-2013-02-09-rev1.zip holen.

    Um alle Goodies installieren zu können, müssen wir das Terminal auf dem Pi öffnen. 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-setup
    CD ~ / Ledborg-Setup
    wget -O setup.zip http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip
    entpacken Sie setup.zip
    chmod + x install.sh
    ./install.sh

    Zu diesem Zeitpunkt 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-Schnittstelle wie folgt behandelt:

    Jetzt ist der perfekte Zeitpunkt, um sicherzustellen, dass Ihr Modul funktionsfähig ist. Wählen Sie eine beliebige Farbe aus und speichern Sie sie für Schwarz, um sie auszuprobieren. Wir werden es testen, indem wir einige 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 Verbreitung. Wenn Sie mehr mit dem LED-Modul spielen möchten, bevor Sie fortfahren, klicken Sie auf Demo-Modus:

    Im Demo-Modus können Sie alle Farben mit verschiedenen Geschwindigkeiten durchlaufen, die hohe / niedrige Leistung überprüfen und das LED-Modul auf andere Weise prüfen.

    Hier im Demo-Modus können Sie auch Ihre LedBorg zu einer der ersten Indikatoren machen. Wenn Sie im Bereich "Farben" die Option "CPU" auswählen, wechselt die LED von grün zu gelb zu rot, um anzuzeigen, dass der ARM-Prozessor des Raspberry Pis belastet ist. Wir empfehlen, die Geschwindigkeit auf "Langsam" zu ändern, während Sie gerade dabei sind. - Schnell aktualisiert die LED zu schnell und macht die CPU-Anzeige eher ablenkend als nützlich.

    Zusätzlich zur Verwendung der GUI-Oberfläche zum Auswählen von Farben können Sie Farben mithilfe von RGB-Werten vom Terminal auswählen. Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein, um die LED auszuschalten:

    Echo "000"> / dev / ledborg

    Die Art, wie LedBorg mit RGB-Werten umgeht, bedeutet, dass 0 den Kanal ausschaltet, 1 die Hälfte des Kanals und 2 die volle Leistung des Kanals. 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 100% ausgibt. Ändern Sie den Wert auf 202 und Rot und Blau bei voller Leistung werden zu einer magentafarbenen Farbe kombiniert.

    Nun, da wir wissen, wie man die LED manuell manipuliert, betrachten wir die Verwendung von Skripts, um unsere LED von einer einfachen Lampe zu einer tatsächlichen Anzeige zu machen.

    Konfigurieren Ihres LedBorg als Regenanzeige

    Für diesen Teil des Tutorials werden wir mehrere Dinge zusammenfassen, um aus unserem LedBorg-LED-Modul einen Regenindikator zu machen, der auf der Wettervorhersage für unseren Standort basiert. Wir verwenden ein Python-Skript, um eine Wetter-API aufzurufen, die wiederum die Regenwahrscheinlichkeit für den Tag anzeigt, und dann die LED von Aus auf Hellblau umschalten, um den vorhergesagten Regen anzuzeigen.

    Zunächst 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.

    Wenn Sie Ihren API-Schlüssel erworben haben, besuchen Sie Weather Weather und suchen Sie nach der Stadt, die Sie überwachen möchten. In unserem Fall überwachen wir San Fransisco, CA. Die URL für die Prognoseseite von San Fransisco 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 Vorhersage-URL für das API-Tool zu bearbeiten. Die Basis-URL lautet:

    http://api.wunderground.com/api/YOUR API KEY / Forecast / q / STATE / CITY.json

    Sie können die Prognose für jede US-Stadt generieren, indem Sie Ihren API-Schlüssel, den aus zwei Buchstaben bestehenden Bundesstaatcode und den Namen der Stadt aus der URL eingeben, die Sie aus den Weather Underground-Suchergebnissen gezogen haben.

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

    von 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'])

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

    # pop = 0

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

    # Die Standardeinstellung ist das Einschalten der LED
    # für Regenwahrscheinlichkeit über 20%. Sie können anpassen
    # den Wert in "if pop> 20:" wie gewünscht.

    wenn Pop> 20:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write ('002')
    del LedBorg
    drucken ("Regen!")
    sonst:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write ('000')
    del 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 Ihre Bundesland- / Stadtcodes richtig eingegeben haben, sollte dies eine Antwort auslösen, die wie folgt aussieht:

    Wenn Niederschlag für Ihr Gebiet vorhergesagt wird, sollte Ihre LedBorg-Ausgabe folgendermaßen aussehen:

    Jetzt auf einen Regentag zu warten, um das Skript richtig zu testen, wäre mühsam. Wenn heute in Ihrer Umgebung keine Regenwahrscheinlichkeit besteht und Sie möchten, dass die LED aufleuchtet, bearbeiten Sie das Skript wunderground.py und ersetzen Sie den Passthrough-Wert "pop = pop" in Zeile 13 durch einen Wert über 20, z. B. 60 dass unsere Prognose zurückkehrte. 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 soeben 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 das folgende E-Mail-Kennzeichen erforderlich ist, behandeln wir die Einrichtung eines Cron-Jobs, nachdem wir Ihnen gezeigt haben, wie Sie das andere Skript einrichten.

    Konfigurieren Sie Ihre LedBorg als Google Mail-Anzeige

    Wer mag den Dopamin-Fix nicht, wenn neue E-Mails im Posteingang angezeigt werden? In diesem Teil des Lernprogramms zeigen wir Ihnen, wie Sie die LedBorg als neuen Google Mail-Indikator verwenden. Wie beim letzten Mal werden wir eine externe Eingabe (in diesem Fall einen Atom-Feed anstelle einer API) und ein einfaches Skript kombinieren, um unsere LED zu steuern.

    Wir müssen die Funktionalität unserer Python-Installation durch die Installation von FeedParser, einem Python RSS / Atom-Feed-Lesetool, ein wenig erweitern. Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein:

    sudo easy_install feedparser

    Sobald die Installation abgeschlossen ist, können Sie mit der Erstellung unseres Google Mail-Überprüfungsskripts 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 zu überprüfenden Google Mail-Kontos übereinstimmen.

    Importieren Sie Feedparser

    # Geben Sie Ihren Google Mail-Nutzernamen ein
    # und Passwort. Nicht enthalten
    # der @ gmail.com-Teil von
    # dein Benutzername.

    username = "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 ihn
    # die ganze Zahl auf eine 0 oder 1 zum Testen
    # die LED-Antwort.

    # mail = 0

    wenn mail> 0:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write ('020')
    del LedBorg
    drucken ("Mail!")
    sonst:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write ('000')
    del LedBorg
    drucken ("Keine Mail!")

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

    python gmailcheck.py

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

    Wenn Sie E-Mails in Ihrem Google Mail-Posteingang haben, sieht Ihre LedBorg so aus:

    Genau wie das Skript zur Regenprüfung haben wir einen Debugging-Wert hinzugefügt. Wenn Sie keine neue E-Mail haben, können Sie sich entweder selbst eine E-Mail senden, um die Anzahl der Posteingänge auf 1 zu erhöhen, oder Sie können den Kommentar-Hash bearbeiten und die Debugging-Zeile in "Mail = 1" ändern, um das Skript zu testen. Vergessen Sie nicht, die Zeile umzustellen, wenn Sie mit dem Testen fertig sind.

    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 Skripts zum Spielen haben, müssen wir einen Cron-Job einrichten, um sie den ganzen Tag laufen zu lassen, um die LED-Anzeige aktuell zu halten.

    Als erstes wollen wir die LED ausschalten, wenn sie von unseren vorherigen Experimenten gerade eingeschaltet ist. 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, unsere Anleitung zur Verwendung hier zu lesen. Das heißt, wir führen Sie durch die Aufstellung eines grundlegenden Zeitplans.

    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 crontabelle ein:

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

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

    Alle fünf Minuten ist eine gute Zeitspanne für ein Skript, das auf vorhergesagten Regen prüft - man könnte sogar behaupten, es sei ein bisschen zu aggressiv -, aber wenn Sie versuchen, Ihre E-Mail auf dem Laufenden zu halten, ist die Benachrichtigung zu lang . Wenn Sie den Zeitplan für das Google Mail-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 schnellere Benachrichtigung beim Update zu erhalten.


    Das ist alles dazu! Sie können mit Ihren eigenen Python-Skripts experimentieren, indem Sie die if / else -Anweisungen aus unseren herausnehmen und sie mit brandneuen Variablen testen. Wenn Sie eine Eingabequelle für die Daten finden, können Sie diese in eine Durchschnittsgröße, Pollenanzahl und Twitter-Erwähnungen in Ihrem Python-Skript-Aktienmarkt umwandeln. 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 dieses Projekt verwendet habe. Es ist schon etwas mehr als ein Jahrzehnt her, seit ich aktiv Programme schrieb, und es dauerte ein paar Schläge, um Staub und Rost zu entfernen. Die Mitwirkenden bei / r / LearnPython halfen mir bei der API-Ausgabe für Weather Underground. Sie untersuchten, wie Michael bei Mitch Tech mit dem Gmail Atom-Feed umgehen konnte, der das Parsing für die LedBorg vereinfachte, und die Python-Lernmodule bei Code Academy Eine großartige Möglichkeit, die grundlegende Syntax und Struktur einer Sprache wiederzugewinnen, die ich noch nie verwendet hatte.