Elektronischer Briefkasten mit Pico W

V1.00, 15.05.2023

Breits beim Hausbau Anfang der 90er Jahre hatte ich die Idee einen elektronischen Briefkasten zu bauen, der von sich aus meldet, wenn Post eingeworfen wird. Ein mehradriges Kabel wird bis zum geplanten Briefkasten gelegt. Temporär wird erst einmal ein einfacher, weißer Briefkasten montiert.

unser alter, weißer Briefkasten

Leider haben Provisorien die Eigenschaft länger eingesetzt zu werden als geplant. Erst 30 Jahre nach dem Einzug habe ich konkret mit der Umsetzung begonnen. Herausgekommen ist ein Briefkasten aus Eiche massiv:

der neue elektronische Briefkasten aus Eichenholz

Lösungsansatz


Zum Erkennen von neuer Post bietet sich der Einsatz einer Lichtschranke an. Anforderungen an die Lichtschranke:
  1. Sehr klein, damit diese im Holz integriert werden kann (ohne aufzutragen)
  2. Zuverlässige Erkennung unterschiedlicher Formate
  3. Preisgünstig
  4. Niedriger Stromverbrauch
  5. Zeitnahe Info per E-Mail
Das Internet liefert unzählige Ergebnisse zu Lichtschranken, aber keine schien mir für mein Vorhaben geeignet. Ich entscheide mich, die Lichtschranke selbst zu bauen. Viele Bauteile braucht es dafür nicht: eine weiße LED (Sender), einen Widerstand (um den Strom in der LED zu begrenzen) und einen lichtempfindlichen Widerstand (Empfänger). Damit sind Punkt 1 und 3 der Anforderungen schon erfüllt.

Wie kann ich sicherstellen, dass unterschiedliche Formate von Briefsendungen zuverlässig erkannt werden? Ich komme schnell zum Ergebnis, dass eine Lichtschranke dafür nicht ausreicht. Letztendlich habe ich mich für drei Lichtschranken entschieden. Die Anordnung der LEDs im Briefkasten sieht folgendermaßen aus:

Briefkasten LEDs

Die Breite des Briefkastens (Innenmaß) beträgt 338 mm. 20 mm oberhalb vom Boden wird eine LED in der Mitte eingebaut, die beiden anderen LEDs befinden sich auf 75 mm Höhe im Abstand von 220 mm. Die Erfahrungen der letzten Monate haben gezeigt, dass damit alle Briefsendungen zuverlässig erkannt werden. Damit ist auch die Anforderung 2 erfüllt. Kleinteile (z.B. ein USB Stick) können damit nicht erkannt werden. Mit dieser Einschränkung kann ich gut leben.

Kurzzeitig hatte ich auch überlegt am Briefkasten einen Deckel anzubringen und darunter einen Microschalter zu positionieren. Vorteil: einfacher und noch kostengünstiger zu realisieren. Nachteil: wird der Deckel angehoben, ohne etwas einzuwerfen, wird trotzdem "neue Post" angekündigt. Da unser Briefkasten wettergeschützt montiert ist, habe ich auf einen Deckel verzichtet und damit schied diese Lösung für mich aus.

Eine LED benötigt im Betrieb ca. 20 mA Strom, allerdings hängt das stark von der eingesetzten LED und dem Vorwiderstand ab! Leuchtet diese dauerhaft, entspricht das einem Verbrauch von ca. 1 Wh pro Tag, im Jahr also 365 Wh. Bei 3 LEDs also ca. 1 kWh. Das ist nicht sonderlich viel, aber ich wollte den Stromverbrauch noch weiter reduzieren. Neue Post muss nicht in der Sekunde gemeldet werden, in der die Post eingeworfen wird - so zumindest meine Definition zur Anforderung 5. Erhalte ich eine E-Mail spätestens 5 Minuten nach dem Einwurf, ist das für mich vollkommen ausreichend.

Damit sieht meine Lösung so aus: der Pico W läuft in einer Endlosschleife. Alle 5 Minuten (also 300 Sekunden) wird auf neue Post geprüft. Erste LED einschalten, eine Sekunde warten, den Photowiderstand auf der LED gegenüberliegenden Seite auslesen und merken, LED ausschalten und wieder eine Sekunde warten. Diesen Vorgang für LED 2 und 3 wiederholen. Liegt einer der drei gemessenen Photowiderstände unter dem Schwellwert, dann ist der Lichtfluss zwischen LED und Photowiderstand unterbrochen und damit muss sich neue Post im Briefkasten befinden. Der Pico W schickt dann eine E-Mail an meine hinterlegte E-Mail Adresse. Den erfolgreichen Versand merkt sich das Programm, damit nicht alle 5 Minuten eine E-Mail verschickt wird. Wird der Briefkasten geleert, dann wird dieser Merker wieder zurückgesetzt.

Der Python Code für den Pico W


from machine import Pin, ADC
from utime import sleep
import network
import urequests

# Verbinde Pico mit WLAN
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('*****', '******') # Netzwerkname (SSID) und Passwort des eigenen Netzwerkes eingeben
while not wlan.isconnected() and wlan.status() >= 0: # in Endlosschleife auf WLAN warten
sleep(1)

# Schwellwert für die Unterscheidung LED an oder aus
schwellwert = 30000

# Zeit bis zum nächsten Zyklus in Sekunden
pause = 300

ldr1 = ADC(0) # initialisiere AD Converter 0 - Pin 31
ldr2 = ADC(1) # initialisiere AD Converter 1 - Pin 32
ldr3 = ADC(2) # initialisiere AD Converter 2 - Pin 34
led1 = machine.Pin(0, machine.Pin.OUT) # LED 1 an GPIO Port 0 - Pin 1
led2 = machine.Pin(1, machine.Pin.OUT) # LED 2 an GPIO Port 1 - Pin 2
led3 = machine.Pin(2, machine.Pin.OUT) # LED 3 an GPIO Port 2 - Pin 4
neuepost = 0

# Endlosschleife
while True:
led1.value(1) # schalte LED 1 an
sleep(1) # warte eine Sekunde
adwert1an = ldr1.read_u16() # LED 1 ist eingeschaltet, lese Wert vom lichtempfindlichen Widerstand 1 aus
led1.value(0) # schalte LED 2 aus
sleep(1) # warte eine Sekunde
# die gleichen Abfragen für LED 2
led2.value(1)
sleep(1)
adwert2an = ldr2.read_u16()
led2.value(0)
sleep(1)
# die gleichen Abfragen für LED 3
led3.value(1)
sleep(1)
adwert3an = ldr3.read_u16()
led3.value(0)
# liegt einer der Werte unter dem Schwellwert, dann befindet sich zwischen LED und lichtempfindlichen Widerstand ein Gegenstand
if adwert1an < schwellwert or adwert2an < schwellwert or adwert3an < schwellwert:
if neuepost == 0: # wurde die neue Post noch nicht gemeldet?
neuepost = 1 # dann setze den Status auf 'es ist neue Post erkannt'
# schicke eine E-Mail mit dem Betreff 'Neue Post im Briefkasten'
...
else:
# Post ist immer noch drin
else: # keine Post im Briefkasten
if neuepost == 1: # war der Status vorher neu?
neuepost = 0 # ja, Status zurücksetzen
# Briefkasten wurde geleert
# schicke eine E-Mail mit dem Betreff 'Briefkasten geleert'
...
else:
# Briefkasten ist nach wie vor leer

sleep(pause) # warte pause Sekunden bis die Endlosschleife fortgesetzt wird

Anmerkungen zum Programmcode:


Die Rückwand des Briefkastens (hier noch im Test):

Briefkasten Versuchsaufbau


Die Kabelführungen wurden mit einer Oberfräse in das Holz gefräst und nach der Verlegung der Kabel mit Heißkleber verfüllt (Fixierung und Isolierung). Alternativ kann das auch mit Silikon, Acyrl oder Kunstharz erfolgen.

Wer sich für die Abmessungen des Briefkastens interessiert:

Briefkasten Abmessungen

Hinter dem Briefkasten habe ich in der Wand einen Abzweigkasten eingebaut, in dem sich der Pico W und die Kabel verbergen.

Material:


Die Gesamtkosten liegen bei ca. 70 Euro, wobei der Löwenanteil auf die Leimhölzer aus Eiche entfällt. Mit Fichten-/Kiefernholz lassen sich die Kosten reduzieren.

Warum Pico W?


Und die Erfahrungen nach einem halben Jahr Betrieb in der Praxis?



Im folgenden Video wird gezeigt, wie die drei LEDs nacheinander ein- oder wieder ausgeschaltet werden:
Download-Version