Hardware/ Software Entwicklung

Als Mikrocontroller wurde sich für den ESP8266 D1 Mini entschieden, da er ein integriertes WiFi Module besitzt. Es wird eine Verbindung mit dem Internet benötigt um sich mit der Blynk-App zu verbinden um von dort aus Daten auszulesen und einzugeben.

Zuerst wurde sich darum gekümmert, dass der Briefkasten dem Nutzer mitteilen kann, dass sich ein Brief im Briefkasten befindet. Dies wurde mithilfe eines Magnetschalters umgesetzt. Dieser wurde mit einem 1000 Ohm Widerstand an 3,3V verbunden, da der Magnetschalter selbst keinen Widerstand besitzt und ohne einen Vorwiderstand einen Kurzschluss auslösen würde. An dieser Verbindung wird dann eine Leitung an einem digitalen Pin angebracht. Dieser Pin liest die Spannung an der Schaltung. Wenn ein Magnet am Magnetschalter anliegt, leitet der Strom, andernfalls nicht. Also wenn der Stromkreis unterbrochen wird, wird signalisiert, dass ein Brief in den Briefkasten hineingeworfen wurde. Dieses Signal wird dann der Blynk-App über ein integriertes Display der App übermittelt. Durch eine API, dem NTP-Client, wird dann auch eine Uhrzeit, wann genau das letzte Mal ein Brief angekommen ist, angegeben. Diese Information wird ebenfalls der Blynk-App übermittelt.

Zunächst wurde ein Servomotor an 5V angeschlossen. Die 5V stammen jedoch nicht vom Mikrocontroller, da der Mikrocontroller sonst zu hohe Temperaturen annehmen würde und eventuell durchbrennen könnte. Also wurde der Motor separat an eine andere Stromquelle angeschlossen. Die Verbindung, zum Ansprechen des Servomotors, wurde an einem Daten-Pin am Mikrocontroller angeschlossen. Mit einer „Servo-Bibliothek“ konnte der Motor mit der Funktion „Servo_SG90.attach(pin)“ angesprochen und mit „Servo_SG90.write(winkel)“ angesteuert werden. Die Parameter in der „write“-Funktion bestimmen den Winkel wie weit der Motor sich drehen soll.
Zum testen wurde Motor mit einem Switch „Öffnen/Schließen“ über der Blynk-App bedient.

Als letztes wurde der Fingerabdrucksensor implementiert. Der wurde, wie der Magnetschalter, an 3,3V angeschlossen. Diesmal gab es zwei Daten-Pins, die wieder an digitale Pins angeschlossen wurden. Einmal den RX (Receive) und den TX (Transmitter) Pin. Der RX empfängt Daten vom Mikrocontroller und der TX sendet ihm die Daten.

Der Fingerabdrucksensor ist vom Hersteller „Adafruit“ und von denen gibt es einige Beispielsketches wonach sich der Code des Briefkastens stark gerichtet hat. Ein Beispielsketch war dafür ausgelegt neue Fingerabdrücke im Sensor zu speichern. Diese Option wurde dann mit der Blynk-App realisiert. Es ist möglich neue Fingerabdrücke mit Blynk zu Speichern bzw. diesen Prozess mit Blynk zu steuern. Insgesamt können 127 Fingerabdrücke gespeichert werden. Über Blynk kann dies mit einer Eingabe von Zahlen realisiert werden. Die eingegebene Zahle wird dann an den Mikrocontroller gesendet, sodass an dem entsprechenden Speicherslot ein Fingerabdruck gespeichert werden kann.

Jetzt muss der Fingerabdrucksensor nur noch eine Aktion durchführen lassen, sobald ein passender Finger erkannt wurde. Diese Aktion wurde ebenfalls mithilfe eines Beispielcodes realisiert.
Wenn das Schloss offen ist, schließt der Motor das Schloss, sobald ein Finger erkannt wurde. Dasselbe passiert auch umgekehrt. Wenn das Schloss geschlossen ist, und ein passender Finger erkannt wurde, öffnet der Motor das Schloss. Hier wird dann auch, wie beim hineinwerfen eines Briefes, eine Uhrzeit von der API ausgelesen, sodass dann auch, ebenfalls über Blynk, der Nutzer weiß wann das letzte Mal der Briefkasten geöffnet wurde.