Intelligenter Briefkasten: Version 2.0 – „Arduino-Edition“
I’m gonna mail it straight to you.
I’m gonna bring back to your mind,
What you said about always bein’ true.
Bout our secret hidin’ places;
Bein’ daily satisfied.
I can see you sittin’ and readin’ it,
While you hang you head and cry.
I just hope you’re not so sad,
You’re gonna go down suicide.
Tear Stained Letter, Johnny Cash
Ich bin wirklich sauer auf euch!!! ?
Wer unseren bescheidenen Blog verfolgt, kennt unser Lieblings-Projekt: Den “Intelligenten Briefkasten”. Wir haben schon mehrfach sowohl über die Idee dahinter berichtet, als auch die ersten Versuchsaufbauten mit Tinkerforge-Bausteinen beschrieben.
Dennoch hielt es keiner von euch für nötig uns darauf hinzuweisen wie “amateurhaft” und “plump” unser Modell designend war! Wir haben blind ohne besseres Wissen mit sündhaft teurer und überdimensionierter Hardware den Prototypen aufgebaut.
Wir haben dadurch förmlich mit ganzen Flugzeugträgern auf kleine Spatzen geschossen!
Dabei lag die perfekte Lösung stets direkt vor unseren Augen. Welche elektronischen Geräte eignen sich zum Aufbau einfacher Schaltungen, Steuerungen bzw. Regelungen? Natürlich: Mikro-Controller! Und wie heißt die wahrscheinlich beliebteste und weit verbreitetste Microcontroller-Plattform auf unserem Planeten? Richtig: ARDUINO!
Statt also teurere Einplatinen-Rechner zu nehmen, greifen wir auf die günstige Open-Source-Microcontroller-Hardware auf Basis der Arduino/Genuino-Plattform zurück. Vermutlich wolltet/konntet ihr uns nicht auf unsere Schmach hinweisen, weil ihr selbst Amateure seid… Naja, das wäre ein plausibler Grund – und deshalb bin ich nicht mehr lange sauer auf euch! 😉
Butter bei die Fische: Lasst uns in die Hände spucken und sehen, wie weit wir mit Arduino & Co. mit unserem smarten Briefkasten kommen!
Hardware-Aufbau
Der Aufbau bzw. die Verdrahtung der Geräte ist recht simpel. Wir nehmen bei unserem Prototypen einen Arduino-Zero, aber ein anderes Modell würde sich wahrscheinlich genauso gut eignen. Wir nehmen den gleichen Ultraschall-Sensor wir aus den vorhergehenden Versuchen: HC-SR04. Hinzu noch ein paar Feindrähte und ein USB-Verbindungskabel. Das ist alles.
Die Verdrahtung des Sensors ist wie folgt:
- VCC –> 5V
- Gnd –> GND
- Trig –> Pin 12
- Echo –> Pin 11
Der Ausgang (Output) auf Arduino-Seite, der später über einen Binäreingang ausgewertet werden kann, läuft über GND in Verbindung mit dem Arduino Pin 6.
Software
Die Grund-Idee ist immer-noch die selbe: Wir messen den Abstand mit dem Ultraschall-Sensor. Sobald der Abstand eine zuvor definierte Schelle unterschreitet, wird ein Signal (über Pin 6) ausgegeben. Dieses Signal lässt sich simpel über einen potentialfreien Binäreingang (KNX) oder eine KNX-Taster-Schnittstelle (oder was ihr sonst so einsetzt) auswerten.
Also: Solange das Post-Gut (Briefe) den Sensor verdecken und somit das Signal gesendet wird, ist der Briefkasten voll. Wird der “Fremdkörper” entfernt – die Post also entnommen – fällt das Signal aus: Der Briefkasten ist demnach leer. Selbstverständlich kann das Signal stets bei “leerem” Briefkasten gesendet werden. An der Grund-Idee ändert das nicht viel – ist lediglich Geschmackssache.
Um die Programmierung des Arduino zu vereinfachen, nutzen wir eine freie Bibliothek namens NewPing (Version 1.7). Diese Library vereinfacht das Handling mit dem Ultraschall-Sensor ungemein. Das Bibliotheken-File lässt sich über “Sketch” –> “Bibliothek einbinden” –> “.ZIP-Bibliothek hinzufügen…” in die Arduino-Entwicklungsumgebung einbinden.
Der Arduino-Code kann in etwa so gestaltet sein:
#include // helpful library
#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
const unsigned checkdist = 5; // Distance threshold
void setup() {
Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
pinMode(6, OUTPUT); // Pin 6 as output
}
void loop() {
delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
unsigned int dist = (uS / US_ROUNDTRIP_CM); // Convert ping time to distance and print result (0 = outside set distance range, no ping echo)
Serial.print("Ping: ");
Serial.print(dist);
Serial.println("cm");
if (dist < checkdist) // if distance is smaller than check distance
{
digitalWrite(6, LOW); // signal
}
else
{
digitalWrite(6, HIGH); // no signal
}
}
Kosten
Für den Aufbau der gesamten Versuchsanordnung fallen etwa folgende Kosten an:
Komponente | Beschreibung | Kosten |
---|---|---|
Papp-Karton ("Versandkartonage") | Für das Prototyp Gehäuse | 3 EUR |
Paketband (glatt): | Für die Prototyp-Gehäuse-Konstruktion | 2 EUR |
Arduino (ggf. Arduino-Klon/kompatibel) | Steuert andere Sensoren und Anzeigen an | 10 EUR |
Distance-Sensor (HC-SR04) | Misst den Abstand mit Ultraschall | 13 EUR |
Kabel/Feindrähte | Verbindung zwischen Arduino und Modulen | 10 EUR |
7 Segment Dispaly, 4 stellig, rot | Optische Statusanzeige (optional) | 5 EUR |
Versand-Kosten (Pauschale) | 20 EUR | |
SUMME | 63 EUR |
Das schöne am Arduino-Universum ist: Es sind unzählige Nachbauten und Klone zu unverschämt günstigen Preisen verfügbar. Aus Asien bekommt man einwandfreie Geräte bereits für wenige Euro.
Unser Arduino-Zero in diesem Aufbau hat eigentlich noch sehr viel Luft nach oben und kann durch ein kleineres Modell ersetzt werden.
Fazit
Von ursprünglich rund 250 EUR Gesamtkosten des allerersten Prototypen sind wir Dank der preisgünstigen Hardware von Arduino runter auf etwa 50 EUR! Für einen intelligenten Briefkasten ist das doch geschenkt, oder? Die optische Anzeige in Form eines Displays oder Ähnlichem haben wir bei diesem Aufbau (der Einfachheit halber) weggelassen - diese lässt sich aber recht reibungslos z. B. über eine 7-Segment-Anzeige anbinden. Probiert es aus! 🙂
Wir werden nach heutigem Stand also diesen Weg bei unserem künftigen Briefkasten gehen. Es sei denn, es findet sich noch etwas besseres!
Und was kann euer Briefkasten so...? ?
Hervorragend! Auch wenn wir auf Loxone und evtl. später erst auf KNX setzen werden, ändert das ja nichts an der Möglichkeit einen smarten Briefkasten anzubinden. Sowas in der Art steht auch auf meiner ToDo-Liste. Mein Gedanke war bisher mit einer Reflexlichtschranke, Helligkeitssensor oder einem Reed-Kontakt zu arbeiten. An Ultraschall habe ich natürlich nicht gedacht. Klasse Projekt! Da wir vorhaben einen Paketkasten zu haben, wäre eine tolle Erweiterung eine Waage im Paketfach, Dann weiß man gleich ob Kosmetik geliefert wurde oder ein “ordentliches” Paket mit Technik drin.
Schon mal an einen ESP82 gedacht? Ein Mikrocontroller mit WLAN und kostet nur ein bis zwei Euro?
Dieser hat Energiesparmodi (langer Batteriebetrieb) und kann mittels Libraries recht schnell zum Ziel gebracht werden…
MQTT, Webserver, HotSpot alles kein Problem mit dem kleinen…
Jap! Das ist die naheliegendste Lösung, Steffen. Derzeit ist dazu ein Wemos D1 mini Pro in Vorbereitung… 🙂
Hallo zusammen, ich habe ein ähnliches projekt erstellt und da mein Sensor (gleicher wie ihr habt) nicht funzt bin ich auf euren Blog gestossen.
Mein Sensor misst nicht nach oben sondern sozusagen von links nach rechts … und er erkennt einzelne Briefe nicht …
Habt ihr da auch schon Probleme damit gehabt?
DAnke
Erwin, ich weiss nicht welcher Art deine Probleme genau sind. Wir konnten bei unseren Prototypen keine Auffälligkeiten feststellen. Momentan experimentieren wir mit dem JSN-SR04T-2.0. Dieser Sensor ist wasser-geschützt, misst allerdings im Bereich von 20-600 cm. Vielleicht wäre das auch etwas für deinen Aufbau… Viel Erfolg!
Wie sehen die Erfahrungen mit dem JSN-SR04T-2.0 inzwischen aus?
Sorry! Hatten leider noch keine Zeit das Projekt zu verfolgen, werden berichten, sobald es da neue Erkenntnisse gibt!
[…] muss man nicht selten selbst Hand anlegen und so ein Selbst-Bau-Lösung erstellen. Unser smarter Briefkasten ist dafür das beste Beispiel. Auf Recherche zu solchen Maker-Projekten ist uns ein nützliches […]
[…] muss man nicht selten selbst Hand anlegen und so eine Selbst-Bau-Lösung erstellen. Unser smarter Briefkasten ist dafür das beste Beispiel. Auf Recherche zu solchen Maker-Projekten ist uns ein nützliches […]
Moin und vielen Dank für diese einfache Lösung.
Leider hat der Fehlerteufel in der ersten Zeile zugeschlagen.
Zur Korrektur:
#include
Alles Gute wünschend,
der Micha
Hallo zusammen,
ich habe das ganze mit einem ESP3266 umgesetzt (mit WLAN, MQTT und OpenHAB). Mein Projekt habe ich auf Github veröffentlicht. Der ESP sammelt die Daten ein und überträgt diese per WLAN an einen MQTT Broker.
https://github.com/ace16vitamine/esp8266-briefkasten
NewPing finde ich interessant und werde ich mir auch ansehen.
Viele Grüße
Stefan