Home > Technik > Arduino > Emails mit dem Holzbriefkasten empfangen

Emails mit dem Holzbriefkasten empfangen

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 :-)

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.

3 comments

  1. Geniale Idee!!

    Das wurde für den Nachbau vorgemerkt!

  2. 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!

Leave a Reply

Your email address will not be published. Required fields are marked *

*