Blog Post

Smart E-Mailbox

Schatz, du hast Post! Intelligenter Briefkasten 1.0 [TEIL 2/2]

It’s been countless days, since last we wrote
And countless more, since last we spoke
But now that’s all that remains
The letters that make up your name
And I used to see every line that crossed
Your face, but now the lines are lost
In stories told and I’ve grown old
Let me read again the letters that you sent

Caroline, Douglas Dare

Bereits im ersten Teil des Posts haben wir den ersten Prototypen des Smarten Briefkastens vorgestellt. Das Ganze war – dem frühen Stand der Entwicklung geschuldet  –  recht oberflächlich und grob. Heute wollen wir wie versprochen mehr auf die Details der Software eingehen.

Die Einschränkungen, die das System als ganz junges Produkt noch aufweist, wollen wir selbstverständlich nicht verschweigen.

Zu guter Letzt gibt es am Ende noch eine Überraschung! Ein Ausblick darauf wie man die derzeitige Implementierung Hardware- und Software-seitig noch “pimpen” kann, soll die heutige Story abrunden. Die Entwicklung steht nämlich nicht still – die Version 1.5 wird definitiv kommen. Sogar eine Version 2.0 ist schon in Planung… Nun aber: In Medias Res!

 

Code-Besprechung

Wer das C#-Projekt nochmal herunterladen möchte, kann das gerne machen. Die Visual-Studio-Solution enthält zwei einfache Klassen:

Die Program.cs-Klasse enthält die Main()-Methode, die beim Starten des Programms ausgeführt wird. Daneben gibt es noch die Segment4x7.cs-Klasse, die für die Steuerung der LCD-Anzeige verantwortlich ist. Wer keine LCD-Anzeige hat – kann diese Klasse also getrost weglassen.

In der Main-Methode werden die Bricks initialisiert und eine Callback-Methode ReachedCB() registriert:

Die eigentliche “Magie” findet sich in der Callback-Methode: Hier wird jede Sekunde geprüft, ob aktuell gemessene Abstands-Werte zwischen Sensor und Box-Deckel außerhalb gewisser, vordefinierter Toleranzbereiche sind. Falls dies der Fall ist, wird die LCD-Anzeige aktiviert. Weiterhin wird ein HTTP-Webrequest and den FHEM-Server gesendet:

Der FHEM-Server ist ein kleiner Automatisierungs-Helfer, der bei uns zu Test- und Spiel-Zwecken auf einem Raspberry Pi läuft. Dieser kann mit seinen speziellen Modulen unter anderem auch Text zu Sprache wandeln und somit eine Nachricht ausgeben lassen. Natürlich kann man auch Emails an dieser Stelle versenden lassen. Damit die Vorstellung aber übersichtlich bleibt, verzichten wir explizit darauf.

Die Steuerung der LCD-Anzeige funktioniert über ein fest-codiertes Byte-Array, das die Lettern “P” + “O” + “S” + “T” erscheinen lässt und auch wieder verschwinden lässt:

Einschränkungen der aktuellen Version

Niemand spricht gerne schlecht über sein eigenes Kind. Aber seien wir mal ehrlich: Das alles ist doch Scheiße! (Darf man im Internet “Scheiße” sagen?) Wenn es (noch) Mist ist, dann geben wir es doch zu! Der Code ist sicherlich nicht der professionellste,  sondern nur schnell “Quick & Dirty” zusammengeschustert. Auch der Hardware-Betrieb ist ziemlich unkomfortabel.

Code kann nicht eigenständig auf dem Master-Brick laufen

Bei der aktuellen Konstellation (siehe Illustration: Variante A) benötigen wir einen ständig laufenden PC, der per USB an die Box angebunden ist. Der Brick-Deamon, der die Schnittstelle zur Tinkerforge-Hardware bildet, muss nämlich ständig mitlaufen. Die Software kann in der vorliegenden Form nicht eigenständig auf dem Master-Brick laufen. Aber wer stellt schon gerne seinen PC neben seinen Briefkasten? Das ist doch alles andere als smart!

Einplatinen-Computer neben dem Briefkasten?

Hilfe ist schon auf dem Weg – Man kann natürlich einen kleinen Rechner (auf dem die Steuerungs-Software) in oder neben dem Briefkasten positionieren: Variante B. Der Rechner muss aber mit Strom versorgt werden und muss noch ins Heimnetzwerk eingebunden werden. Geht das nicht besser?

Weg von USB?

Ethernet-Extension

Es geht besser. Wenn man auf die USB-Anbindung verzichtet und dafür eine Ethernet-Komponente von Tinkerforge verwendet: Die Ethernet-Extension. Diese kann die Bricks mit Strom über PoE versorgen. Es muss zum Briefkasten also nur noch ein Netzwerkkabel gezogen werden! Das ist Variante C. Die Software muss aber dennoch irgendwo im Netzwerk laufen 🙁

Einplatinen-Computer im Netzwerk!

Variante D sieht vor ein Einplatinen-Rechner (Raspberry Pi, BeagleBone, Cubie-Truck, etc…) im Netzwerk mit der Code-Ausführung zu betrauen. Schon nicht schlecht – aber es geht noch besser!

RED-Brick to the rescue!

Als wir den Prototypen gebastelt haben, gab es keine schöne, einfache Möglichkeit den Code “stand-alone” auf der Tinkerforge-Hardware intern laufen zu lassen. So-eine Komponente gab es damals nicht. Seit dem 12.12.2014 gibt es aber diese Möglichkeit! Erst vor wenigen Tagen hat Tinkerforge den mächstigten Baustein von allen herausgebracht: Den RED-Brick (Rapid Embedded Development). Dieses Modul hat die Ausmaße eines gewöhnlichen Master-Bricks (4cm x 4cm) und ist dabei gleichzeitig ein leistungsfähiger Rechner:

RED-Brick

Ein Programm, das Bricks und Bricklets steuert, kann auf einem normalen PC oder Mac geschrieben und getestet werden. Anschließend kann es per Knopfdruck auf den RED Brick übertragen und ohne Änderungen auf diesen ausgeführt werden. Es können mehrere Programme gleichzeitig ausgeführt werden. Deren Ausführung kann konfiguriert (direkt nach dem Booten, jede Stunde, etc.) sowie überwacht werden.

(Quelle: Tinkerforge RED-Brick-Dokumentation)

Somit binden wir über die Ethernet-Extension (mit PoE) den RED-Brick mit einem Cat7-Netzwerkkabel an. Dabei können wir das Programm in unserer Lieblingssprache schreiben und den Code unabhängig zentral im Tinkerforge-Modul laufen lassen – das ist Variante E.

Wer tiefer in die Tinkerforge-Welt eintauchen möchte, kann auch ein interessantes Buch zu diesem Thema lesen.

Auf dem Weg zur Version 2.0

Wir werden die Variante mit dem RED-Brick in naher Zukunft umsetzen und darüber natürlich hier berichten. Das wird die Version 1.5 unseres intelligenten “Post-Schluckers”:

Der Fortschritt schreitet unaufhaltsam voran. Die Tinkerforge-Bauteile haben aufgrund der hochwertigen Verarbeitung und Dokumentation schon durchaus ihren Preis. Der Markt bietet aber auch hier attraktive Alternativen. Schon mal etwas vom “Espruino” gehört? Nein – das ist kein neuartiges Kaffe-Getränk mit Milchzubereitung!

Espruino ist ein winziges Board, das ca. 30 EUR kostet und mit JavaScript programmiert werden kann. Daneben kann es mit einer Batterie betrieben werden und mit Sensoren und Addons erweitert werden. Es kann also z.B. mit einem Netzwerk-Modul eins heimische (W)LAN eingebunden werden.  Ein Ultraschall-Abstands-Sensor existiert auch hier. Diese Einzelteile werden wir in nicht allzu ferner Zukunft in unsere Smarte Post-Box einbauen. Wer weiss – vielleicht ist dies dann die finale Bauweise für unseren Briefkasten Zuhause…

Und was kann dein Briefkasten?

Comment (1)

  1. Intelligenter Briefkasten: Version 1.5 – „RED-Edition“ | smarthomebau.de Mittwoch, 02UTCWed, 02 Aug 2017 15:56:15 +0000 2. August 2017 at 15:56 Antworten

    […] den Aufbau sowie den Programm-Code des smarten Briefkastens berichtet. Auch die noch geltenden Einschränkungen des Systems haben wir in Teil 2 nicht verschwiegen. Der erste Aufbau (Version 1.0) benötigte noch […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kostengünstig & Cloud-unabhängig: Smart-Home-Sprachsteuerung mit Snips

Liebe Freunde – es wird euch kaum entgangen sein: Wir haben uns erst vor…

Die Sprachsteuerung des “Kleinen Mannes” (Respeaker Core V2 + Kalliope + Edomi)

Liebe Freunde der Sonne! Ihr habt ein Smart Home mit erlesensten Technik-Spielereien vom Feinsten,…

Taster ohne Abdeckung
Taster-Konzept: Praktischer Versuchsaufbau (Hands-On)

So, Freunde der Sonne: Wir haben ja bereits vor langer Zeit versprochen das Taster-Konzept…

Intelligenter Briefkasten: Version 2.0 – „Arduino-Edition“

Wer unseren bescheidenen Blog verfolgt, kennt unser Lieblings-Projekt: Den “Intelligenten Briefkasten”. Wir haben schon…

Berührungslos Schalten – Kapazitive Sensoren

Liebe Freunde der beeindruckenden Features, heute haben etwas Bemerkenswertes für euch, das nicht jeder…

KNX-Testaufbau (Mini-Testboard) mit Raspberry Pi und knxd

Verwandte Themen

Wie ihr vielleicht in einem früheren Beitrag schon gelesen habt, haben wir uns für…

Raspberry Pi: Internet-Geschwindigkeit-Tests automatisieren (kurz & gut)

Der kostengünstige Einplatinen-Rechner Raspberry Pi lässt sich für viele Dinge (miss-)brauchen. Mitunter messen wir…

Smarter Briefkasten
Intelligenter Briefkasten: Version 1.5 – “RED-Edition”

Liebe Freunde und verehrte Briefträger, gebt es zu: Gibt es etwas schöneres als eine…

Smart Mail Box
Schatz, du hast Post! Intelligenter Briefkasten 1.0 [TEIL 1/2]

Heute gibt es eine Weltpremiere! Wir stellen heute einen vernetzten Briefkasten vor, der selbständig…