Erstellen Sie ein Raspberry Pi Gmail Notification Light
In diesem schnellen und einfachen Raspberry Pi-Projekt erfahren Sie, wie Sie eine E-Mail-Benachrichtigung für Google Mail erstellen. Wenn Sie ungelesene E-Mails haben, schaltet ein Python-Skript die LED ein. Dieses Projekt erfordert sehr wenige Teile und kann in weniger als einer Stunde abgeschlossen werden! Sie können Ihre LED natürlich beliebig dekorieren, beispielsweise einen MineCraft-Redstone-Block oder ein anderes 3D-Objekt, das in durchsichtigem Kunststoff gedruckt ist. Hier ist das Endergebnis:
Was du brauchst
- 1 x Himbeer-Pi
- 1 x Steckbrett
- 1 x 220 Ohm Widerstand
- 1 x 5mm LED
- 1 x Google Mail-Konto
- Mann zu Frau schließen Drähte an
Jeder Raspberry Pi funktioniert für dieses Projekt - sogar der Pi Zero! Es wird nur ein GPIO-Pin benötigt, und es ist nicht besonders CPU-intensiv. Wenn Sie ein Pi-Starter-Kit haben, haben Sie mehr als genug Teile, um dies abzuschließen.
Plan erstellen
Dies ist ein wirklich einfaches Projekt. Eine Leuchtdiode (LED) ist mit einem GPIO-Pin (General Purpose Input Output) am Pi verbunden. Ein sehr einfaches Python-Skript wird regelmäßig ausgeführt, um nach ungelesenen E-Mails zu suchen und die LED entsprechend ein- oder auszuschalten.
Die Hardware
Schließen Sie die positive Anode (langes Bein) der LED an den Widerstand und dann an GPIO-Pin 14 an. Sie können jeden GPIO-Pin verwenden. Sehen Sie sich jedoch zuerst die Pinbelegung an, da sie zwischen den Modellen geringfügig variiert. Schließen Sie die negative Kathode (kurzer Schenkel mit flacher Kante) an Masse an.
Pi Setup
Wenn auf Ihrem Pi ein Betriebssystem installiert ist, ist nicht viel Setup erforderlich (Sie sind sich nicht sicher, was Sie benötigen? Hier erfahren Sie, wie Sie eines installieren) So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi Hier erfahren Sie, wie Sie ein neues Betriebssystem installieren und auf Ihrem Pi ausführen können - und wie Sie Ihr perfektes Setup für eine schnelle Wiederherstellung nach einem Katastrophenfall klonen können. Öffne ein neues Terminal (Oben links > Speisekarte > Zubehör > Terminal) auf dem Pi (checkout diese Tastenkombinationen, um einen Coding-Ninja zu machen Zeitersparnis im Linux-Terminal mit diesen 20 Tastenkombinationen Zeitersparnis im Linux-Terminal mit diesen 20 Tastenkombinationen) Ob Sie nun ein Terminal-Neuling sind oder die Angst vor langer Zeit überwunden haben Hier sind 20 Tastenkombinationen, mit denen Sie die Unbequemlichkeit der Befehlszeile überwinden können. Weitere Informationen). Sie müssen einen neuen Ordner erstellen, um das Python-Skript zu speichern. Geben Sie den folgenden Befehl ein:
pwd
Das steht für “Arbeitsverzeichnis drucken”, und zeigt Ihnen, in welchem Ordner Sie sich befinden (standardmäßig ist dies der Fall.) “/ home / pi”). Navigieren Sie in den Dokumentenordner und erstellen Sie ein neues Verzeichnis (Ordner) “gmail_python”:
cd Dokumente / sudo mkdir gmail_python
Das “mkdir” Befehl steht für “Verzeichnis erstellen”. Alles, was danach folgt, wird für den Verzeichnisnamen verwendet. Sie sollten jetzt Ihr Verzeichnis sehen können:
ls
Wenn Sie einen Fehler gemacht haben, können Sie dieses Verzeichnis leicht entfernen:
sudo rm -r gmail_python
Navigieren Sie nun in das neue Verzeichnis:
cd gmail_python /
Erstellen Sie ein neues Python-Skript:
sudo nano check_messages.py
Dadurch wird das Skript erstellt und zur Bearbeitung in Nano geöffnet. Sie können natürlich ein anderes Programm wie Vim verwenden, obwohl dieser Tweet meine Gefühle dazu zusammenfasst:
Ich verwende Vim nun seit ungefähr zwei Jahren, hauptsächlich, weil ich nicht herausfinden kann, wie ich es beenden sollte.
- Ich bin Devloper (@iamdevloper) 17. Februar 2014
Scherz beiseite, schauen Sie sich diesen Vergleich zwischen den beiden Nano vs. Vim an: Terminal Text Editors im Vergleich zwischen Nano vs. Vim: Terminal Text Editors im Vergleich Obwohl Linux mittlerweile für jeden leicht zu bedienen ist, ohne das Terminal verwenden zu müssen, gibt es einige von uns, die es regelmäßig verwenden oder neugierig sind, wie man… Read More für einen vollständigen Zusammenbruch steuern kann.
Drücken Sie STRG + X um Nano zu verlassen und zum Terminal zurückzukehren.
Python-Setup
Nun, da das Pi eingerichtet ist, ist es Zeit, den Code zu schreiben. Dieses Projekt erfordert die hervorragende Gmail Python Library von Charlie Guo. Laden Sie die Bibliothek von Github herunter und extrahieren Sie den Inhalt. Darin sollte sich ein Ordner befinden “Google Mail”. Kopieren Sie den gesamten Ordner in “/ home / pi / Dokumente / gmail_python”.
Wechseln Sie wieder zur Befehlszeile und öffnen Sie Ihr Skript erneut (wenn Sie die Aufwärts-Taste drücken, können Sie durch Ihre zuvor eingegebenen Befehle blättern):
sudo nano check_messages.py
Beachten Sie, dass dies derselbe Befehl ist, den Sie zum Erstellen der Datei verwendet haben. Wenn eine Datei bereits vorhanden ist, wird sie geöffnet, andernfalls wird sie erstellt. Hier ist der Python:
gmail, RPi.GPIO als GPIO importieren, time # import module GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) # dem Pi mitteilen, welche Header GPIO.setup (14, GPIO.OUT) verwenden soll # dem Pi mitteilen Pin ist eine Ausgabe g = gmail.login ('[email protected] ',' YOUR PASSWORD ') unread_messages = g.inbox (). mail (unread = True) total_messages = 0 für Nachricht in unread_messages: total_messages + = 1 if total_messages> 0: # Es gibt ungelesene E-Mails. Schalten Sie das Licht auf GPIO.output (14, True). Andernfalls: # Es gibt keine ungelesenen E-Mails. Schalten Sie das Licht aus. GPIO.output (14, False).
Sie müssen Ihren Benutzernamen und Ihr Kennwort eingeben, damit dies funktioniert. Sie können den vollständigen Quellcode für das Google Mail-Plugin anzeigen, wenn Sie möchten. Wenn Sie sich nicht sicher fühlen (oder die Zwei-Faktor-Authentifizierung verwenden), müssen Sie über OAuth2 eine Verbindung zu Google Mail herstellen. Dieses Tutorial ist etwas kompliziert, jedoch bietet Google eine hervorragende Einführung.
Lassen Sie uns den Code aufschlüsseln. Zunächst werden einige Module importiert. Module in Python sind kleine Codeteile, die für einen bestimmten Zweck geschrieben wurden (ähnlich wie Bibliotheken in der Arduino IDE). RPi.GPIO ist ein Pi-spezifisches Modul für den Zugriff auf das GPIO. Gmail ist das Modul, das Sie zuvor heruntergeladen haben. Zeit ist ein in Python integriertes Modul, das Timing-Funktionen bereitstellt. Jetzt “GPIO.setmode” und “GPIO.setup” werden verwendet, um dem Pi mitzuteilen, dass Pin 14 ein Ausgang ist und den Sie verwenden möchten “Broadcom-Pin-Nummerierung” (weitere Informationen zu BCM).
Diese Zeile stellt eine Verbindung zu Ihrem Google Mail-Konto her. Es erstellt ein Objekt namens “G”, und ruft die Anmeldemethode des zuvor importierten Google Mail-Moduls auf. Vergessen Sie nicht, Ihre E-Mail-Adresse und Ihr Passwort einzugeben.
g = gmail.login ('[email protected] ',' DEIN PASSWORT ')
Rufen Sie jetzt alle ungelesenen Nachrichten ab und speichern Sie sie in einer aufgerufenen Variablen “ungelesene Nachrichten”:
unread_messages = g.inbox (). mail (unread = True)
Beachte wie “ungelesen = wahr” wird als Parameter übergeben - Sie können dies ändern, um Nachrichten abzurufen, die auf verschiedenen Parametern wie Absender oder Betreff basieren. Weitere Informationen finden Sie in der Dokumentation zur Anwendungsprogrammierschnittstelle (API).
Als nächstes wird eine for-Schleife verwendet, um jede Nachricht zu durchlaufen:
für Nachricht in unread_messages: total_messages + = 1
Für Schleifen sind sehr nützlich. Sie wiederholen einen Codeblock mehrmals, oft mit einem leicht unterschiedlichen Wert. Diese for-Schleife geht über jede Nachricht in unread_messages und erhöht die “Gesamtnachrichten” Variable.
Zum Schluss noch ein paar einfache “ob” Anweisungen werden verwendet. Wenn es ungelesene Nachrichten gibt, schalten Sie die LED ein, andernfalls wenn aus.
Denken Sie daran, dass Python die Groß- und Kleinschreibung berücksichtigt und weißen Abstand verwendet. Wenn Sie Probleme haben, den Code auszuführen, versuchen Sie es mit dieser Website. Fügen Sie Ihren Python ein und drücken Sie die “validiere den obigen Python-Code” Taste. Dies sollte Ihnen dann sagen, welche (wenn überhaupt) Fehler in Ihrem Python vorhanden sind.
Wechseln Sie zum Terminal und führen Sie Ihr Skript aus:
python check_messages.py
Dieser Befehl führt Ihr Skript aus. Versuchen Sie, einige E-Mails in Ihrem Posteingang manuell in den ungelesenen Status zu ändern, und führen Sie das Skript erneut aus. Die LED sollte nun ein- oder ausgeschaltet werden, um den Posteingang anzuzeigen.
Cron Setup
Nun, da das Skript funktioniert, ist es an der Zeit, es zu automatisieren. Der einfachste Weg dazu ist ein Cron-Job. Cron-Jobs werden zum Planen von Tasks und Skripts verwendet, beispielsweise für automatisierte Sicherungen. Öffnen Sie die Crontab (Liste der geplanten Aufgaben):
Crontab -e
Wenn noch keine geplanten Aufgaben eingerichtet sind, ist diese Datei leer (sie kann Dokumentation oder Kommentare enthalten, denen ein vorangestellt ist.) “#”). Wenn Sie hier bereits Einträge haben, geben Sie einfach Ihren neuen Befehl in eine neue Zeile ein:
* * * * * python ~ / pi / Documents / gmail_python / check_messages.py
Die Fünf “Sterne” (“* * * * *”) Geben Sie an, wie oft die Aufgabe ausgeführt werden soll (Sie können sich hier besonders schick machen, z. B. jeden zweiten Mittwoch um 2.00 Uhr). Diese fünf Sterne geben an, dass die Aufgabe jede Minute ausgeführt werden soll. Dies ist das kleinste zulässige Intervall (Weitere Informationen zum Cronjob-Planen. So planen Sie Aufgaben in Linux mit Cron und Crontab. So planen Sie Aufgaben in Linux mit Cron und Crontab.) Die Möglichkeit, Aufgaben zu automatisieren, ist eine dieser futuristischen Technologien, die bereits vorhanden ist Benutzer können von Zeitplansystem- und Benutzeraufgaben profitieren, dank cron, einem benutzerfreundlichen Hintergrunddienst. Weitere Informationen). Nächster, “Python” weist den Scheduler an, das Skript als Python-Datei auszuführen. Endlich, “~ / pi / Documents / gmail_python / check_messages.py” ist der absolute Dateipfad zu Ihrem Skript - ein relativer Pfad funktioniert nicht.
Sie sollten jetzt Ihr eigenes Google Mail-Benachrichtigungslicht haben! Es wäre ziemlich einfach, dies zu ändern, um nach Nachrichten zu suchen, die auf einer anderen Anforderung oder einem anderen Filter basieren (hier erfahren Sie, wie Sie Filter verwenden. 10 E-Mail-Probleme, die Sie mit Google Mail-Filtern lösen können 10) E-Mail-Probleme, die Sie mit Gmail-Filtern lösen können Ein überlaufender Posteingang, der Sie verrückt macht Möchten Sie Ihren Posteingang schneller als je zuvor durchgehen? Probieren Sie einige der hervorragenden Google Mail-Filter aus, um den Unterschied zu erkennen (Weitere Informationen), oder führen Sie einen anderen Code aus - möglicherweise können Sie einen Twitter-Bot erstellen, der auf E-Mails (Tweets) auf Tweets basiert Weitere Informationen zum Erstellen eines Pi-Twitter-Bot Erstellen eines Raspberry Pi-Twitter-Bot Erstellen eines Raspberry-Pi-Twitter-Bot Twitter ist der weltweit größte Speicherort für Kurznachrichten von Menschen, die nichts zu sagen haben - und jetzt können auch Sie zu diesem epischen Projekt beitragen ein automatisierter Twitter-Bot, der von Ihrer Himbeere unterstützt wird… Read More).
Egal wie Sie Ihre Benachrichtigungsbox programmieren, ich würde gerne wissen, wie es in den Kommentaren abläuft!
Erfahren Sie mehr über: Gmail, Raspberry Pi.