Der Titel klingt zwar ein wenig komisch und beschreibt auch nicht mein kürzlich erstelltes Projekt aber irgendwie passt es doch. Wie der ein oder andere vielleicht schon mitbekommen hat, mag ich so kleine technische Basteleien deren Sinn ich selber jedes mal in Frage stelle. Genauso ging es auch bei diesem Projekt!
Bevor ich hier loslege kommt ein kleines Video welches den Ablauf hoffentlich gut veranschaulicht.
https://www.youtube.com/watch?v=x-D9kDiFc50
Email Benachrichtigungen mit dem Arduino
Ein kleines Python Script behält mein Mail-Postfach durchgehend im Auge und gibt einem Arduino Nano Microprozessor-Board im inneren des Briefkastens ein Signal sobald mich eine neue Email erreicht. Auf dieses Signal hin steuert der Arduino einen Servo an welcher im inneren des Briefkastens verbaut ist, und dieser hebt dann den Arm nach oben. So erkennt man bereits beim vorbeigehen ob neue Mails vorliegen oder nicht. Sobald die Email gelesen wurde, wird diese Statusänderung ebenfalls an den Arduino übermittelt und dieser sorgt wiederum dafür das der Arm gesenkt wird.
Bau des Arduino Briefkastens
Für den Bau des Briefkastens habe ich nur ein Stück Kantholz welches beim Bau meines Kaminholzunterstand übrig geblieben ist und zwei Fichte-Bretter aus der Brennholz-Kiste verwendet. Da ich seit geraumer Zeit im Besitz eines Tellerschleifers bin, habe ich das schleifen dem sägen vorgezogen, man wird schließlich bequem :-)
- Den Mittelteil mit der Tischkreissäge aussägen
- Die innere Rundung erzeugen
- Es wird was!
- Ob das was wird?
- Am Tellerschleifer die Form schleifen
- Seitenteile anleimen
- Arm ausschneiden
- Vor- und Nachher
- Finale
Arduino Code
Der folgende Code läuft auf dem Arduino und steuert den Servo an welcher den Arm des Briefkastens bei einer neuen Mail hebt und diesen sobald die Mail gelesen wurde wieder senkt.
#include <Servo.h> int val = 0; //value that is stored from Serial monitor Servo servo1; void setup(){ Serial.begin(9600); //begins Serial monitor servo1.attach(11); servo1.write(0); } void loop() { if(Serial.available()) { val = Serial.read() - '0'; Serial.println(val); if(val == 0){ servo1.write(0); } if(val == 1) { servo1.write(67); } } }
Python Code
Der folgende Python Code läuft auf dem angeschlossenen Rechner in einer Endlosschleife und sendet entweder eine 0 oder eine 1, je nachdem ob sich eine neue Email im konfigurierten Postfach befindet.
import imaplib, serial #import modules ser = serial.Serial('NAme des seriellen Ports', 9600) obj = imaplib.IMAP4_SSL('imap.gmail.com') obj.login('benutzername@gmail.com', 'Gmail Passwort') while 1: obj.select() #refresh val = len(obj.search(None, 'UnSeen')[1][0].split()) ser.write(str(val))
Wie zu Anfang bereits erwähnt ein relativ sinnfreies Projekt, welches sich aber gerade für Anfänger in Sachen Arduino und Mikrocontroller-Programmierung zum Nachbau eignet. Wer plant sich mit dem Arduino zu beschäftigen, dem kann ich dieses Buch von Eric Bartmann ans Herz legen.
Geniale Idee!!
Das wurde für den Nachbau vorgemerkt!
Was heißt hier sinnlos?
Eine vernünftige Lösung für ein Problem, welches ich zwar nicht habe… aber bestimmt gibt es jemanden, der für solch eine Lösung dankbar ist… glaub ich…;-)
Schöner Briefkasten!