Schon wieder eine gelben Abholzettel im Briefkasten? Ihr wart zuhause, und der Postbote schwört er habe geklingelt? – Zwei Drähte und ein Mikrocontroller für knapp 3€ und wir können das nachprüfen. Bringen wir der Kligel das Twittern oder mailen bei…Mensch hat mich das geärgert! Als dann mal an die Türe ging, weil es geklingelt hatte, jemand „Post“ durch den Hausflur ruft, und ich mitbekomme das der Postbote den „Ich habe Sie nicht angetroffen“-Schein wahrscheinlich in MEINEN Briefkasten warf, hat es mir gereicht. Ich wollte Klarheit, ob der Bote Recht hatte und ich wegen Musik, Telefonaten oder sonstwas nichts vom Klingen mitbekomme oder ob es doch eher daran liegt, das der gute Mann zu faul ist in den 3. Stock zu laufen.
Die Lösung ist ganz einfach:
Die Klingel wird mit einem IOT-tauglichen Mikrocontroller ausgestattet, der eine Benachrichtigung nach Wunsch absetzt – per sms, mail, twitter, Lichtgeflacker oder sonstwas.
Im aktuellen Make!-Magazin (2017/Special IOT) wird das Problem mit etwas mehr Aufwand und einem RaspberryPi gelöst. Mir schien das aber zu oversized. Ein Pi kostet rund 30€, der ESP-01 dagegen nur knapp 3€. Ausserdem lässt sich dieser Daumennagel große MC leicht in die Klingel integrieren. Unsichtbare „Magie“.. -Wunderbar!
Die technische Realisierung gestaltet sich eigentlich ganz einfach: Ein Geräusch-Modul liefert dem MC zunächst ein 3,3v Signal wenn es Klingelt. Der MC, der sich nach dem einschalten gleich mit dem WLAN verbindet, setzt dann einen (GET)Request an einen Online-Reaktor ab. Inzwischen gibt es einige dieser Web-Dienste, am bekanntesten wohl aber ist ittt (If That Then That). Gemäß dem Motto „Wenn dies (Signal) dann veranlasse jene (Reaktion)“. Nach dem kostenlosen registrieren auf dieser Webseite, kann man Signal und Reaktion dann mit ein paar wenigen Klicks zusammenführen. In diesem Fall soll die Wohnungsklingel mir eine Email mit Zeitstempel schicken.
Nun die dramaturgische Wende:
Da es im Netz schon zuhauf Anleitungen gibt, wie man:
- den ESP-01 mit einer alternativen Firmware (z.B. NodeMCU) flasht
- den ESP-01 im normalbetrieb verdrahten kann
- ein akustisches Signal als Input für einen Mikrocontroller nutzbar macht
- eine vorhandene Spannung in die benötigte verwandelt
…habe ich beschlossen das hier nicht weiter beschreiben. Ich helfe euch jetzt lieber mit einigen Hinweisen, wie man die 100 Fehler die ich trotz all‘ der ganzen „Einfachheit“ machte, vermeidet! 😉
- Beim Flashen: Immer mit externem Netzteil arbeiten!
Wenn ihr manchen Howtos folgt, wird oft erwähnt, das man die 3,3v des FTDI-Adapters nehmen könnt. Das mag bei Intel-Chipsatz basierten USB-Ports gehen (da gibts wirklich die 500mA Leistung die es laut Standard sein sollten), bei den meisten ist das aber nicht so. 7 von 10 Flashversuchen gehen so schief. - Beim Flashen: Bei ESP8266 Controllern sind es immer 2 Leitungen die ihr zum Flashen speziell beschalten müsst: GPIO0 und GPIO15. Außer: Dem ESP-01 reicht es, wenn GPIO0 zum flashen auf GND liegt.
- Beim Flashen: Ich habe unter Windows und Linux geflasht. Könnt ihr machen wie ihr wollt. Ihr solltet aber unbedingt drauf achten, wie geflasht wird (meist mit sehr hohen Baudzahlen 115000/200400Baud z.B.). Die „normale“ Kommunikation findet meist bei 9600 Baud statt. Hinweis1: Kompiliert man NodeMCU selbst kann man das natürlich ändern. Hinweis2: Ab Version 1.5.1 hat die NodeMCU Firmware eine AutoBauderkennung eingebaut.
- Beim Flashen: Macht es euch einfach, und lasst die Firmware vom Cloudservice https://nodemcu-build.com/compilieren! Der Aufwand eine geeignete Umgebung zum manuellen compilieren auszusetzen ist imens groß und seeeehr sehr frustbehaftet. Das liegt zum einen an den vielen Abhängigkeiten die das SDK hat, und zum anderen daran das ihr noch ein weiteres Paket „einweben“müsst (xtensa-lx106). Hinweis1: Unbedingt so wenige Module wie nötig eincompilieren lassen – Der Flashspeicher für eure Scripte schrumpft entsprechend!
Da die ESP8266 Mikrocontroller, wie in meinem Fall auch auf dem ESP-01 verwendet, NodeMCU unterstützen, ist eine kurze übersichtliche Programmierung in LUA möglich.
Dann geht es natürlich irgendwann ans Programmieren:
Ich hatte den Code schon mehrfach mit kleineren aber nervigen Seiteneffekten in Betrieb, als ich online einen anderen Bastler traf, der den Code schon zur Eleganz verfeinert hat: Noel Portugal stellt sein Projekt hier vor. Ich musste es dann nur noch auf mein Projekt anpassen. Jetzt sieht es so aus:
code
Klingelt man nun an der Tür, erhalte ich ein paar Sekunden später eine Mail:
Alles in allem wieder ein nettes Projekt. Mal sehen was nächste Wohe ansteht. Ich wollte schon immer diese Kühlschrank-Bastelei anfangen, damit Milch und Eier nicht plötzlich aus sind… 😉
Gruß
Sandman