Posti-Bot Smarter Briefkasten mit Espressif ESP32

Trari trara, die Post ist da! Leider weiß man nicht, wann sie im Briefkasten gelandet ist. Das ist ärgerlich, wenn man auf einen wichtigen Brief wartet und deshalb ständig zum Briefkasten laufen muss. Zum Glück kann Posti-Bot helfen. Die Elektronik auf Basis eines Espressif ESP32-Microcontroller-Boards macht jeden Briefkasten smart und benachrichtigt per E-Mail bei eingehender Post.

Funktionen von Posti-Bot

Posti-Bot ist in jedem handelsüblichen Postkasten einsetzbar. Dabei spielt es keine Rolle, ob der Briefkasten einen Deckel oder einen Schlitz für den Posteinwurf besitzt. Einfach Posti-Bot mit doppelseitigen Klebeband im Briefkasten fixieren und fertig. Sobald der Briefzusteller eine Sendung einwirft, versendet der Bot eine Benachrichtigungs-E-Mail. Wird der Briefkasten geleert, geht ebenfalls eine E-Mail-Benachrichtigung an alle Benutzer des Briefkastens raus. Dann braucht niemand mehr den Briefkasten zu öffnen, um nach der Post zu sehen. Geht der Akku zur Neige, versendet Posti-Bot eine E-Mail über den niedrigen Akkustand. So kann der Akku rechtzeitig aufgeladen werden, bevor der smarte Briefkasten wieder dumm wird.

Bauteile und Kosten

Rund zwei Stunden sollte man einplanen, um Posti-Bot zusammenzubasteln. Neben einem Espressif ESP32-Microcontroller-Board benötigt man einen Ultraschallsensor, einen Festspannungsregler, zwei Kondensatoren, ein paar Widerstände und eine Niedervolt-Einbaubuchse. Die Spannungsversorgung erfolgt über eine 5-Volt-Powerbank oder eine beliebige Stromquelle, die mehr als 6 Volt Gleichspannung liefert.

  • 1 x Espressif ESP32 Developer Board
  • 1 x HC-SR04 Ultraschallsensor
  • 1 x L78S05 Festspannungsregler 5 Volt
  • 1 x Tantal-Kondensator 0,33 µF
  • 1 x Tantal-Kondensator 0,1 µF
  • 1 x Widerstand 10 kΩ
  • 1 x Widerstand 20 kΩ
  • 1 x Niedervolt-Buchse 2,1 mm
  • Steckerleisten, Kabel, Schrumpfschlauch, Heißkleber
  • Filament oder fertiges Gehäuse (ca. 50 x 120 x 25 mm)
  • 4 x Schneidschrauben M3, 10 mm
  • 1 x Powerbank 5 Volt oder externe Stromversorgung mit mehr als 6 Volt

Das Espressif ESP32-Board eignet sich für das Projekt besonders gut. Es ist kompakt, arbeitet stromsparend und besitzt ein leistungsfähiges WLAN-Modul. Die WLAN-Reichweite ist dann wichtig, wenn eine größere Distanz zwischen Router und ESP32 im Briefkasten überbrückt werden soll. Das grundsätzlich ebenfalls geeignete, etwas preiswerte ESP8266 NodeMCU schaffte es beispielsweise nicht, eine stabile WLAN-Verbindung über eine Entfernung von etwa 20 Metern und über vier Etagen aufzubauen. Ich habe mich deshalb für das ESP32 Developer Board entschieden.

Posti-Bot Smarter Briefkasten mit Espressif ESP32 ESP32

Prinzipiell kommen auch ein Arduino Uno oder Mega in Frage. Beide Microcontroller-Boards benötigen aber deutlich mehr Strom als das ESP32 und müssen erst mit einem separaten WLAN-Modul fit fürs Internet gemacht werden. Das treibt die Kosten und den Aufwand beim Bau von Posti-Bot in die Höhe. Das ESP32-Board ist dagegen mit etwa 5 Euro Anschaffungskosten im einschlägigen China-Handel recht preiswert zu haben. Für die restlichen Bauteile und ein Gehäuse aus dem 3D-Drucker muss man etwa 5 Euro veranschlagen. Dazu kommt noch die Anschaffung einer Powerbank als Stromquelle. Die kann man sich sparen, sofern der Briefkasten eine Namensbeleuchtung besitzt und man die Versorgungsspannung dort abgreifen kann. Dann kostet Posti-Bot rund 10 Euro, mit passender Powerbank nicht viel mehr als 20 Euro.

Posti-Bot Smarter Briefkasten mit Espressif ESP32 Schaltplan

Posteinwurferkennung per Ultraschallsensor

Den Posteinwurf registriert Posti-Bot über einen Ultraschallsensor. Ich habe mich für diese Lösung entschieden, weil sie gegenüber Lichtschranke oder Druckkraftsensor komplett in einem kleinen Kasten untergebracht werden kann und somit aufwendige Verkabelungen im Briefkasten entfallen. Außerdem ist diese Lösung sehr preiswert und funktioniert in jedem Postkasten, unabhängig davon, ob er einen Einwurfschlitz, einen Deckel oben oder sogar an der Vorderseite besitzt, wie es beispielsweise bei US-amerikanischen Postboxen der Fall ist.

Zum Einsatz kommt ein HC-SR04 Ultraschallsensor, der zum Betrieb eine Spannung von 5 Volt benötigt. Der HC-SR04 besteht aus einem Sender (Trigger) und einem Empfänger (Echo). Der Port für den Trigger ist als Ausgang an Pin 27 und für den Echo als Eingang an Pin 35 geschaltet. Wer andere Anschlüsse wählen möchte, muss darauf achten, dass er für den Trigger keinen Port erwischt, der nur als Eingang funktioniert. Das sind beim ESP32 die Ports 34 bis 39. Da das ESP32 mit 3,3 Volt Signalspannung arbeitet, der Ultraschallsensor jedoch ein Echo-Ausgangssignal von 5 Volt liefert, ist ein Spannungsteiler aus 10 kΩ und 20 kΩ Widerständen zwischengeschaltet. Der Spannungsteiler senkt das Echo-Signal auf das gewünschte Spannungs-Niveau. Verzichtet man darauf, können keine Werte gelesen werden, möglicherweise nimmt der Port sogar Schaden. Das Trigger-Signal muss dagegen nicht aufbereitet werden. Hier reichen 3,3 Volt aus, damit der Sensor korrekt arbeitet.

Posti-Bot Smarter Briefkasten mit Espressif ESP32 HC-SR04

Die Funktionsweise des Ultraschallsensors ist recht einfach: Der Trigger sendet ein Ultraschallsignal, das von einem gegenüberliegenden Objekt reflektiert und vom Echo-Empfänger aufgenommen wird. Aus der Signallaufzeit errechnet sich die Entfernung zum Objekt. Die Bibliothek New Ping stellt dazu die passenden Befehle in C++ zur Verfügung, sodass man die Signalausgabe, den Empfang und die Auswertung nicht selbst programmieren muss. Es reicht aus, einen Sensor mit seinen Ein- und Ausgangs-Pins sowie maximaler Reichweite zu definieren. Über einen einzelnen Befehl im Programmcode erhält man die Entfernung zum reflektierenden Objekt in Zentimeter.

Posti-Bot Smarter Briefkasten mit Espressif ESP32 im Briefkasten

In einem Standardbriefkasten mit einem Einwurfschlitz oder eine Einwurfklappe auf der Oberseite befestigt man den Ultraschallsensor auf dem Boden. Bei US-Postboxen mit einer Klappe auf der Vorderseite an der Rückwand. Das Ultraschallsignal wird dann an der Oberseite oder der Einwurfklappe reflektiert und der Abstand im leeren Zustand des Briefkastens festgestellt. Durch den Einwurf oder das Einlegen eines Briefes ändert sich dieser Abstand und Posti-Bot erkennt, dass Post angekommen ist.

Sie haben Post: Benachrichtigung per E-Mail

Um eine Benachrichtigung per E-Mail zu versenden, muss das ESP32-Board per WLAN mit dem heimischen Router verbunden sein. Ist der Briefkasten zu weit entfernt, kann es zu Verbindungsproblemen kommen. In solchen Fällen hilft ein Repeater auf halber Funkstrecke oder ein Powerline-WLAN-Adapter im Erdgeschoss oder Keller. Bei meinen Tests funktionierte die Funkverbindung in einem Mehrfamilienhaus noch über vier Etagen an einer AVM FritzBox 7490 zuverlässig.

Bei meiner Pflanzenüberwachung Strauchi-Bot habe ich sehr gute Erfahrungen mit dem SMTP-Dienst SMTP2GO zum Versenden von E-Mails gemacht, denn es werden keine großen Hardware-Ressourcen benötigt und die Programmierung ist simpel. Das ESP32-Board übermittelt lediglich die Mail-Inhalte verschlüsselt an den Dienst. Der eigentliche Versand der E-Mail erfolgt über SMTP2GO. Der Dienst bietet den Versand von bis zu 1000 E-Mails pro Monat kostenfrei an, pro Stunde können maximal 25 Mails versendet werden. Das ist mehr als genug, denn Posti-Bot versendet kaum mehr als 40 bis 80 Benachrichtigungen pro Monat.

Posti-Bot Smarter Briefkasten mit Espressif ESP32 E-Mail

Benutzen mehrere Mitbewohner den Briefkasten, dann sollten alle in den Mail-Verteiler aufgenommen werden. Beim Entleeren des Briefkastens erhalten sie ebenfalls eine E-Mail-Benachrichtigung und wissen, dass die Post bereits entnommen wurde und der Postkasten nicht mehr geleert werden muss.

Akkuspannung auslesen und Hinweis versenden

Falls der Postkasten eine Namensbeleuchtung besitzt, muss man sich keine Gedanken um den Strombedarf machen. Dann greift man die Spannung für Posti-Bot an der Beleuchtung ab. Ein L78S05 Festspannungsregler bringt die eingehende Gleichspannung von mindestens 6 Volt auf die notwendigen 5 Volt Versorgungsspannung. Zwei Siebkondensatoren von 0,33 und 0,1 µF sorgen für eine Glättung der Spannung.

Posti-Bot Smarter Briefkasten mit Espressif ESP32 Festspannungsregler

In den meisten Briefkästen ist allerdings keine Spannungsversorgung vorhanden, sodass man Posti-Bot mit einem Akku betreiben muss. Damit man rechtzeitig per E-Mail gewarnt wird, wenn der Akku zur Neige geht, überwacht man die Eingangsspannung. Das ist zwar keine besonders genaue Methode, reicht aber als grober Anhalt aus. Die Eingangsspannung an einem analogen Port zu messen, ist nicht ganz trivial und würde zusätzliche Bauteile benötigen. Die kann man sich aber sparen, wenn man die interne Spannung des ESP32 misst. Sinkt sie unter 110 mV, dann ist die Eingangsspannung zu niedrig und Posti-Bot versendet einen Hinweis zum Aufladen des Akkus. Das funktioniert nicht ganz zuverlässig, sodass man diese Funktion eher als experimentell ansehen muss.

Wer Posti-Bot mit einem Akku betreibt, kommt nicht drumherum, Stromsparfunktionen zu programmieren. Ich habe mich in der ersten Ausbaustufe darauf beschränkt, das Abfrage-Intervall auf fünf Minuten zu setzen. Möchte man minuten- oder sekundengenau über einen Posteinwurf informiert werden, dann verkürzt man das Intervall entsprechend. Eine weitere Möglichkeit besteht darin, Posti-Bot außerhalb der Postlieferzeiten in einen Ruhemodus zu versetzen, um Strom zu sparen. Dazu experimentiere ich noch mit der Real Time Clock (RTC) des ESP32 und den Ruhemodi. Bisher habe ich allerdings keine zufriedenstellend arbeitende Lösung gefunden.

Posti-Bot Smarter Briefkasten mit Espressif ESP32 Niederspannungsbuchse

Gehäuse aus dem 3D-Drucker

Bei meinen bisherigen Projekten habe ich mich immer wieder darüber geärgert, Standard-Gehäuse aus dem einschlägigen Elektronik-Handel verwenden zu müssen. Die sind entweder zu groß oder zu klein, zu hoch oder zu flach, innen passt nichts richtig und schön sehen sie auch nicht aus. Da bietet sich ein Gehäuse aus dem 3D-Drucker an.

Posti-Bot Smarter Briefkasten mit Espressif ESP32 Gehäuse

Das Gehäuse für Posti-Bot habe ich mit dem 3D-CAD/CAM-Tool Autodesk Fusion 360 erstellt. Der Download und die Nutzung der Software ist für Privatanwender kostenfrei. Der Gehäusedeckel besitzt Aussparungen für den Ultraschallsensor, die Micro-USB-Buchse des ESP32 und die Niedervolt-Buchse für den Anschluss externer Stromquellen. Der Boden des Gehäuses ist mit Halterungen versehen, auf die man die Standardbauteile einfach aufsteckt und mit ein paar Tropfen Heißkleber sichert.

Posti-Bot Smarter Briefkasten mit Espressif ESP32 Posti-Bot im Gehäuse

Die beiden Gehäuseteile verschraubt man mit vier M3 Schneidschrauben mit einer Länge von 10 mm. Der Akku wird außerhalb des Gehäuses untergebracht, um flexibel bei der Auswahl des Stromspenders zu bleiben. Die STL-Datei zum Ausdruck des Posti-Bot-Gehäuses gibt es zum Herunterladen bei Thingiverse.

Programmierung mit Arduino IDE

Den Sketch für das ESP32 programmiert man in C++ mit der kostenfreien Arduino IDE. Sie unterstützt das ESP32-Developer-Board allerdings nicht nativ, sodass die notwendigen Board-Definitionen und Bibliotheken unter macOS oder Windows manuell eingebunden werden müssen. Espressif bietet auf GitHub eine anschauliche Anleitung mit Link zum Download der notwendigen Dateien an.

Da es sich beim Espressif ESP32 um ein Developer-Board handelt, das einen Micro-USB-Anschluss besitzt, braucht man es nur an den Rechner anzustöpseln und kann nach der Auswahl des Boards und des Ports sofort mit der Programmierung beginnen.

Vor dem Compilieren müssen im folgenden Sketch noch die SSID, das WLAN-Passwort, die IP-Adresse von Posti-Bot und des Routers sowie die Base64-verschlüsselte Zugangskennung von SMTP2GO und die Absender- und Empfänger-Mail-Adressen eingefügt werden.

Fazit

Der smarte Briefkasten ist bei mir seit mehreren Wochen im Dauereinsatz und meldet zuverlässig per E-Mail, sobald Post im Briefkasten landet und er geleert wird. Der verwendete Akku hält Posti-Bot etwa zwei Wochen am Leben. Da sollte eigentlich noch mehr drin sein. Falls jemand konkrete Ideen zum Stromsparen hat, dann bitte gerne in den Kommentaren posten.