Blog Post

Intelligenter Briefkasten: Version 2.0 – „Arduino-Edition“

I’m gonna write a tear stained letter,
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...? 😎

Comment (1)

  1. unserbaublog.de Montag, 12UTCMon, 12 Jun 2017 12:50:17 +0000 12. Juni 2017 at 12:50 Antworten

    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.

Schreibe einen Kommentar

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

Verwandte Themen

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

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