Stellen Sie eine Himbeer-Pi-Gmail-Benachrichtigungsleuchte her

In diesem schnellen und einfachen Raspberry Pi-Projekt erfahren Sie, wie Sie eine Gmail-E-Mail-Benachrichtigung aktivieren. Wenn Sie ungelesene E-Mails haben, schaltet ein Python-Skript die LED ein.

In diesem schnellen und einfachen Raspberry Pi-Projekt erfahren Sie, wie Sie eine Gmail-E-Mail-Benachrichtigung aktivieren.  Wenn Sie ungelesene E-Mails haben, schaltet ein Python-Skript die LED ein.
Werbung

In diesem schnellen und einfachen Raspberry Pi-Projekt erfahren Sie, wie Sie eine Gmail-E-Mail-Benachrichtigung aktivieren. Wenn Sie ungelesene E-Mails haben, schaltet ein Python-Skript die LED ein. Dieses Projekt benötigt nur sehr wenige Teile und kann in weniger als einer Stunde fertig gestellt werden! Sie können Ihre LED natürlich beliebig verkleiden, zum Beispiel einen MineCraft Redstone-Block oder ein 3D-Objekt aus klarem Kunststoff. Hier ist das Endergebnis:

Was du brauchst

  • 1 x Raspberry Pi
  • 1 x Steckbrett
  • 1 x 220 Ohm Widerstand
  • 1 x 5mm LED
  • 1 x Google Mail-Konto
  • Männlich zu weiblich haken Drähte

Jeder Raspberry Pi wird für dieses Projekt funktionieren - sogar der Pi Zero! Es wird nur ein GPIO-Pin benötigt, und dieser ist nicht besonders CPU-intensiv. Wenn Sie ein Pi-Starter-Kit haben, haben Sie mehr als genug Teile, um dies zu vervollständigen.

Bauplan

Gmail-Benachrichtigungs-LED
Das ist ein wirklich einfaches Projekt. Eine Leuchtdiode (LED) ist mit einem GPIO (General Purpose Input Output) Pin am Pi verbunden. Ein sehr einfaches Python-Skript wird regelmäßig ausgeführt, um ungelesene E-Mails zu prüfen und die LED entsprechend ein- oder auszuschalten.

Die Hardware

Gmail-Benachrichtigungsschaltung
Verbinden Sie die positive Anode (langes Bein) der LED mit dem Widerstand und dann mit dem GPIO-Pin 14. Sie könnten einen beliebigen GPIO-Pin verwenden, aber schauen Sie sich zuerst die Pinbelegung an, da sie zwischen den Modellen leicht variieren. Schließen Sie die negative Kathode (kurzes Bein mit flacher Kante) an Masse an.

Pi-Einrichtung

Gmail-Benachrichtigungs-Pi
Wenn Ihr Pi ein Betriebssystem (OS) installiert hat, ist nicht viel Setup erforderlich (nicht sicher, was Sie brauchen? Erfahren Sie hier, wie Sie ein Betriebssystem installieren können) Wie Sie ein Betriebssystem auf Ihrem Raspberry Pi installieren So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi Hier erfahren Sie, wie Sie ein neues Betriebssystem installieren und auf Ihrem Pi ausführen - und wie Sie Ihr perfektes Setup für eine schnelle Notfallwiederherstellung klonen können. Öffnen Sie ein neues Terminal ( oben links > Menü > Zubehör > Terminal ) auf dem Pi (überprüfen Sie diese Verknüpfungen, um Sie zu einem coding Ninja Sparen Sie Zeit im Linux-Terminal mit diesen 20 Shortcuts Sparen Sie Zeit im Linux-Terminal mit diesen 20 Shortcuts Sind Sie ein Terminal-Neuling oder jemand, der die Angst vor langer Zeit überwunden hat, hier sind 20 Abkürzungen, die Ihnen helfen können, die Unbeholfenheit der Befehlszeile zu überwinden. Sie müssen einen neuen Ordner zum Speichern des Python-Skripts erstellen. Geben Sie den folgenden Befehl ein:

pwd 

Dies steht für "Arbeitsverzeichnis drucken" und zeigt Ihnen, in welchem ​​Ordner Sie sich befinden (standardmäßig "/ home / pi"). Navigieren Sie in den Ordner Dokumente und erstellen Sie ein neues Verzeichnis (Ordner) namens "gmail_python":

 cd Documents/ sudo mkdir gmail_python 

Der Befehl "mkdir" steht für "Verzeichnis erstellen". Alles, was darauf folgt, wird für den Verzeichnisnamen verwendet. Sie sollten jetzt in der Lage sein, Ihr Verzeichnis zu sehen:

 ls 

Wenn Sie einen Fehler gemacht haben, können Sie dieses Verzeichnis leicht entfernen:

 sudo rm -r gmail_python 

Navigiere 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. Du könntest natürlich ein anderes Programm wie Vim benutzen, obwohl dieser Tweet meine Gefühle darüber zusammenfasst:

Ich benutze Vim seit ungefähr 2 Jahren, hauptsächlich weil ich nicht herausfinden kann, wie ich es verlassen kann.

- Ich bin Devloper (@iamdevloper) 17. Februar 2014

Scherz beiseite, überprüfen Sie diesen Vergleich zwischen den beiden Nano vs vim: Terminal Text Editoren Verglichen Nano vs vim: Terminal Text Editoren im Vergleich Obwohl Linux ist leicht genug für praktisch jeden zu verwenden, ohne jemals das Terminal zu verwenden, gibt es einige von uns, die es regelmäßig benutzen oder neugierig sind, wie man es kontrollieren kann ... Lesen Sie mehr für eine vollständige Aufschlüsselung.

Drücken Sie STRG + X, um Nano zu beenden und zum Terminal zurückzukehren.

Python-Einrichtung

Gmail-Benachrichtigungscode
Nun, da das Pi eingerichtet ist, ist es Zeit, den Code zu schreiben. Dieses Projekt benötigt die ausgezeichnete Gmail Python Library von Charlie Guo. Laden Sie die Bibliothek von Github herunter und extrahieren Sie den Inhalt. Darin sollte ein Ordner namens "gmail" sein. Kopieren Sie diesen ganzen Ordner nach "/ home / pi / Documents / gmail_python".

Wechseln Sie zurück zur Befehlszeile und öffnen Sie Ihr Skript erneut (wenn Sie die Aufwärts-Taste drücken, können Sie durch die zuvor eingegebenen Befehle blättern):

 sudo nano check_messages.py 

Beachten Sie, dass dies derselbe Befehl ist, mit dem Sie die Datei erstellt haben - wenn eine Datei bereits existiert, wird sie geöffnet, andernfalls wird sie erstellt. Hier ist das Python:

 import gmail, RPi.GPIO as GPIO, time # import modules GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use GPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an output g = gmail.login('[email protected]', 'YOUR PASSWORD') unread_messages = g.inbox().mail(unread=True) total_messages = 0 for message in unread_messages: total_messages += 1 if total_messages>0: # there are unread emails, turn light on GPIO.output(14, True) else: # there are no unread emails, turn light off GPIO.output(14, False) 

Sie müssen Ihren Benutzernamen und Ihr Passwort eingeben, damit dies funktioniert. Sie können den vollständigen Quellcode für das Google Mail-Plug-in anzeigen, wenn Sie möchten. Wenn Sie sich dabei nicht wohl fühlen (oder eine Zwei-Faktor-Authentifizierung verwenden), müssen Sie sich mit OAuth2 mit Google Mail verbinden. Dies ist bei diesem Lernprogramm ein wenig involviert, Google hat jedoch einen exzellenten Einstieg.

Lassen Sie uns den Code aufschlüsseln. Zuerst werden einige Module importiert. Module in Python sind kleine Teile des Codes, die für einen 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, und time ist ein in Python integriertes Modul, das Timing-Funktionen bereitstellt. Jetzt werden "GPIO.setmode" und "GPIO.setup" verwendet, um dem Pi mitzuteilen, dass Pin 14 eine Ausgabe ist und dass Sie "Broadcom Pin Numbering" (mehr Informationen über BCM) verwenden möchten.

Diese Zeile verbindet sich mit Ihrem Google Mail-Konto. Es erstellt ein Objekt namens "g" und ruft die Login-Methode des zuvor importierten Google Mail-Moduls auf. Vergessen Sie nicht, Ihre E-Mail-Adresse und Ihr Passwort einzugeben.

 g = gmail.login('[email protected]', 'YOUR PASSWORD') 

Lesen Sie jetzt alle ungelesenen Nachrichten und speichern Sie sie in einer Variablen namens "ungelesene Nachrichten":

 unread_messages = g.inbox().mail(unread=True) 

Beachten Sie, dass "unread = True" als Parameter übergeben wird. Sie können dies ändern, um Nachrichten basierend auf verschiedenen Parametern wie Absender oder Betreff abzurufen. Weitere Informationen finden Sie in der Dokumentation zur Anwendungsprogrammierschnittstelle (API).

Als nächstes wird eine for-Schleife verwendet, um jede Nachricht zu durchlaufen:

 for message in unread_messages: total_messages += 1 

For-Schleifen sind sehr nützlich. Sie wiederholen einen Codeblock mehrmals, oft mit jeweils einem etwas anderen Wert. Diese for-Schleife übergeht alle Nachrichten in ungelesenen Nachrichten und inkrementiert die Variable "total_messages".

Schließlich werden einige einfache "if" -Anweisungen verwendet. Wenn ungelesene Nachrichten vorhanden sind, schalten Sie die LED ein, andernfalls schalten Sie sie aus.

Denken Sie daran, dass Python die Groß- / Kleinschreibung beachtet und einen weißen Abstand verwendet. Wenn Sie Probleme mit dem Ausführen des Codes haben, versuchen Sie diese Website. Fügen Sie Ihr Python ein und klicken Sie auf die Schaltfläche "validate above python code". 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 Status "Ungelesen" zu ändern und das Skript erneut auszuführen. Sie sollten sehen, dass die LED-Anzeige in Ihrem Posteingang aktiviert oder deaktiviert ist.

Cron-Einrichtung

Jetzt, wo 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 Aufgaben und Skripts, z. B. automatische Sicherungen, verwendet. Öffnen Sie die Crontab (Liste der geplanten Aufgaben):

 crontab -e 

Wenn keine geplanten Aufgaben bereits 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 an, wie oft die Aufgabe ausgeführt wird (Sie können sich hier sehr gut vorstellen, 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 erlaubte Intervall (erfahren Sie mehr über Cronjob-Planung. Wie man Aufgaben unter Linux mit Cron und Crontab plant. Wie man Aufgaben unter Linux mit Cron und Crontab plant Die Fähigkeit, Aufgaben zu automatisieren, ist eine dieser futuristischen Technologien, die es bereits gibt Dank cron, einem leicht zu bedienenden Hintergrunddienst, kann der Benutzer von der Planung von System- und Benutzeraufgaben profitieren. Als nächstes weist "python" den Scheduler an, das Skript als Python-Datei auszuführen. Schließlich ist "~ / pi / Documents / gmail_python / check_messages.py" der absolute Dateipfad zu Ihrem Skript - ein relativer Pfad funktioniert nicht.

Sie sollten jetzt Ihr eigenes Gmail-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 (lernen Sie hier, wie Filter zu verwenden sind). 10 E-Mail-Probleme, die Sie mit Google Mail-Filtern lösen können Überfüllte Postfächer, die Sie verrückt machen Möchten Sie Ihren Posteingang schneller als je zuvor durchlaufen? Probieren Sie einige dieser brillanten Google Mail-Filter aus, um den Unterschied zu sehen. Oder führen Sie einen anderen Code aus - vielleicht könnten Sie einen Twitter-Bot erstellen, der Tweets basierend auf E-Mails erstellt mehr über den Aufbau eines Pi Twitter Bot Wie man einen Raspberry Pi baut Twitter Bot Wie man einen Raspberry Pi baut Twitter Bot ist das weltweit größte Repository von Kurznachrichten von Menschen mit nichts zu sagen - und jetzt können auch Sie zu diesem epischen Projekt mit beitragen ein automatisierter Twitter-Bot, angetrieben von Ihrem Raspberry ... Lesen Sie mehr).

Wie auch immer Sie Ihre Notification Box codieren, ich würde gerne wissen, wie es in den Kommentaren geht!

In this article