.
.
.
Hinweis: Dieser erste Beitrag wird fortlaufend editiert und somit auf dem aktuellen Stand gehalten. Der aktuelle Stand entspricht dem letzten Änderungsdatum. Somit muss der interessierte Leser nicht den kompletten Thread (sofern es mal einer wird) lesen, um auf dem aktuellen Stand zu sein. In Beitrag #16 und #17 werden die Versionen 2.0 und 3.0 vorgestellt.
.
.
.
Ziel soll es sein, eine E-Mail zu erhalten, wenn Post in den Briefkasten geworfen wird. Leider hat es beim ersten RasPiPo Projekt immer wieder Aussetzer in der Funkverbindung gegeben, so dass die Benachrichtigung nicht zuverlässig war. Schuld daran ist die in unmittelbarer Nähe zum Empfänger stehende FritzBox, die das Funksignal stört. Auch diverse Versuche, die Geräte anders zu positionieren führten nicht zu verlässlichen Ergbnissen. Die nachfolgend vorgestellte Lösung verzichtet auf die Anbindung an den RasPi und arbeitet autonom.
Mehr oder weniger durch Zufall bin ich auf den ESP8266-01 gestoßen, der für diese Anforderung wie gemacht ist. Mit Hilfe von joh.raspi, der so nett war, den Softwareteil zu übernehmen, konnte ich das Projekt RasPiPo nun auf Wlan umrüsten. Er hat sogar noch weitere Add-Ons mit eingefügt.
https://github.com/8n1/briefkaste…und-ipcam-event
Doch zuerst muss eine andere Firmware auf den ESP8266 gebracht werden. Sehr simpel ist dies mit einem Programmieradapter möglich. Wie das zu bewerkstelligen ist, steht hier:
Linux: http://www.whatimade.today/flashing-the-n…66-linux-guide/
Windows: http://www.whatimade.today/loading-the-no…-windows-guide/
Das Programm macht folgendes:
- Der Prozessor wird durch das Anlegen der Spannung gestartet und arbeitet das Programm ab
- Es holt sich Zeit und Datum von einem beliebigen Server
- Es sendet einen Befehl an eine Axis Webcam, wodurch ein frei definierbares Event ausgelöst wird (optional)
- Es liest den an GPIO2 angeschlossenen DS 18B20 Temperatursensor aus (optional)
- Es aktiviert ein bei http://www.pushingbox.com definiertes Szenario. (In meinem Fall die Benachrichtigung per E-Mail)
- Sind alle Aufgaben erledigt, wird ein Signal an den ATtiny geschickt, der dann den Strom abstellt und auf die nächste Post wartet
- Sollte der ESP8266 die Daten nicht an pushingbox.com senden können, versucht er es so lange, wie der Anwender dies in der Software vorgegeben hat. Danach sendet er ein Signal an den ATtiny, der dadurch den Strom abstellt und in den Schlafmodus geht.
Die Daten können durch diverse Variablen wie zum Beispiel $time$ $date$ und $temperatur$ in "subject" oder "body" eingefügt werden.
Die Anforderungen sind gleich geblieben, es soll eine E-Mail verschickt werden, wenn der Briefkasten geöffnet wird. Also konnte der bereits installierte Taster (schließt den Stromkreis, wenn der Briefkastendeckel geöffnet wird) als Signalgeber im Briefkasten verbleiben.
Um Strom zu sparen, kommunizieren der ATtiny als "Energiemanager" und der ESP8266 miteinander. Der ESP wird nur so lange wie unbedingt nötig mit Strom versorgt. In der übrigen Zeit ist er von der Stromversorgung getrennt. Der ATtiny befindet sich, genau so wie der StepUp während dieser Zeit ebenfalls im Schlafmodus.
***********************
Gilt nur für die Versionen 1.0 und 2.0:
Da der ESP8266-01 noch freie GPIO hat und es künftig vielleicht noch Änderungen an der Software gibt, habe ich ihn nicht fest verlötet, sondern auf einen Sockel gesetzt. Dadurch kann ich ihn ohne viel Aufwand aus dem Briefkasten entnehmen und neu programmieren - selbstverständlich passiert das mit meinem Programmieradapter
Um die nicht nach außen geführten GPIO z. B. für die Überwachung der Akkuspannung nutzen zu können, habe ich die Pinleiste um sechs Pins erweitert. Von den vier nutzbaren zusätzlichen Pins habe ich die Überwachung der Akkuspannung auf den "oberen linken" der vier Pins gelegt. Auf den Fotos ist dies ganz gut zu erkennen.
***********************
Die Stromversorgung erfolgt durch zwei Eneloop AA Zellen, deren Spannung durch einen Step Up Konverter auf 3,3V gebracht wird. Eine Nutzung "normaler" Batterien ist nicht sinnvoll, da diese bei tiefen Temperaturen Probleme haben, die notwendige Spannung zu liefern. Den Step Up Konverter habe ich hier gefunden:
http://www.lipoly.de/index.php?main…keyword=u1v10f3
Wer das Projekt nachbauen möchte, kann sich gerne an mich wenden. Benötigt werden für V1.0 folgende Bauteile:
- Warenkorb Reichelt
- passender Taster
- ESP8266-01
- SMD Relais G6K-2F-Y 3V
- Platine
Da ich die Bauteile für die Entwicklung meist mehrfach bestellt habe, könnte ich ein oder zwei "Bausätze" zusammen stellen. Wer nett fragt, dem Löte ich diese auch auf. Bei Interesse bitte PN.
Erweiterung Fotoversand:
Mit Hilfe der Programmierkünste von joh.raspi ist es nun möglich, Fotos vom Zeitpunkt der Öffnung des Briefkastendeckels per E-Mail zu versenden. Hierzu muss in der Axis Cam eine "Action Rule" angelegt werden. (Trigger: Input Signal > Manual Trigger, Type: Send Images, Recipient: Empfänger)
Um die Action Rule zu aktivieren gibt man im Browser folgendes ein:
http://USER:PASSWORT@IP-DER-CAM:PORT/axis-cgi/io/virtualinput.cgi?action=6:/1000
Alternativ über die Konsole:
curl "http://USER:PASSWORT@IP-DER-CAM:PORT/axis-cgi/io/virtualinput.cgi?action=6:/1000"
Damit die Fotos per E-Mail verschickt werden können, müssen im Menüpunkt SMTP die Angaben zum E-Mailaccount gemacht werden. Mein Problem war, dass meine Kamera so alt ist, dass keine Firmwareupdates mehr geliefert werden. Ab der Firmware 5.50 wird SSL unterstützt, vorher nicht. Daher ist der Versand mit dieser Webcam über die großen Provider nicht mehr möglich, da diese inzwischen auf SSL umgestellt haben.
Ich hoste meine Homepage günstig über dogado.de. Zu meiner Erleichterung kann ich dort auch noch unverschlüsselte E-Mails versenden. Also habe ich über meinen E-Mailaccount eine Adresse angelegt, über die die Webcam jetzt die Fotos versenden kann.
Erweiterung Akkuüberwachung:
Die Software erlaubt es, die Spannung der Akkus zu überwachen. Bei jedem Start des ESP8266 wird die Spannung überprüft. Fällt diese unter einen Schwellwert, kann ebenfalls ein Event über pushingbox.com ausgelöst werden, wodurch der Anwender beispielsweise per E-Mail darüber informiert wird, dass es Zeit wird, die Akkus zu laden.
Erweiterung Wlan Signalstärke, etc:
joh.raspi hat eine neue Variable eingefügt, über die es nun möglich ist, sich die Signalstärke des Wlans anzeigen zu lassen. Auch andere Infos sind nun anzeigbar. Weitere Details finden sich in seiner Anleitung: https://github.com/8n1/briefkaste…und-ipcam-event
************************************************************************************************************************************************************************************
edit 08.06.2015: Der übermittelte Temperaturwert war der der vergangenen Messung. Der Bug wurde von joh.raspi behoben.
edit 09.06.2015: Im nächsten Schritt wird versucht, eine Spannungsüberwachung für die Akkus umzusetzen.
edit 10.06.2015: Erweiterung der Software. Mit dem Öffnen des Briefkastendeckels wird gleichzeitig ein frei definierbares Event einer Axis Webcam ausgelöst.
edit 11.06.2015: Neues Repository bei Github, Link wurde angepasst
edit 15.06.2015: Die Schaltung, die den Reset auslöst, wird komplett geändert, wodurch alles kompakter wird. Es wird eine kleine Platine erstellt, an die der Temperatursensor, der Taster, die Akkuüberwachung und die 3,3V Stromversorgung angeschlossen wird. Der ESP8266 wird mit dem Programmieradapter programmiert und dann auf diese Platine aufgesteckt. Die Platine ist unwesentlich größer als der ESP8266.
edit 03.07.2015: Die Version vom 15.06. wurde komplett überarbeitet und damit wesentlich nachbaufreundlicher. Auch weiterhin wird es so sein, dass der ESP8266 gesockelt ist und somit mit dem Programmieradapter programmiert werden kann. Die Platine wurde so geändert, dass sie in ein Hammond 1551HBK Gehäuse passt. Der StepUp Wandler wird direkt auf die Platine gelötet, so dass nur noch das Kabel zum Taster und zum Akku angeschlossen werden muss. Die Nutzung des Temperatursensors, so wie eine Akkuüberwachung sind optional.
edit 05.07.2015: Die Version vom 03.07. wurde nun nochmals geändert, da ich endlich ein Gehäuse gefunden habe, in das sowohl die Schaltung als auch die Batterien eingebaut werden können. Somit gibt es jetzt nur noch ein einziges Gehäuse, das nur noch mit dem Taster verbunden werden muss. Ich gehe davon aus, dass ich in etwa vier Wochen einen ersten Prototypen fertig gestellt haben werde
edit 12.07.2015: joh.raspi hat die Software komplett überarbeitet und die Überwachung der Akkuspannung variabel integriert. Der Downloadlink wurde angepasst. Der Warenkorb wurde leicht geändert. Zur Auswahl stehen zwei Gehäuse. Das erste ist etwas flacher und schwarz, wem die Farbe egal ist, dem würde ich das 4mm höhere graue Gehäuse empfehlen.
edit 11.08.2015: Nachdem die Platinen endlich eingetroffen sind, habe ich diese bestückt und in das Gehäuse gesetzt. Alles passt und funktioniert wie gewünscht. Von außen muss lediglich das Kabel des Tasters durch das Gehäuse geführt werden. Nun sieht es im Briefkasten wieder richtig ordentlich aus Die alten Fotos habe ich gelöscht und durch aktuelle Fotos ersetzt.
edit 18.08.2015: Aktuell tüftel ich an einer Möglichkeit, dieses Projekt auch für andere Anwendungen nutzen zu können, da ein Bekannter es als Detektor für eine geöffnete Klappe nutzen möchte. Die Platine wird hierzu wahrscheinlich auf einen Betrieb per Mikrocontroller umgerüstet werden. Die übrigen Komponenten bleiben bestehen.
edit 15.09.2015: Es gibt eine Version 2.0 der Platine. Sie wurde wie angekündigt auf den Betrieb mit einem Mikrocontroller umgebaut. Sobald die Testphase abgeschlossen ist, gibt es Fotos und nähere Informationen. Die geänderte Software für den ESP wurde von joh.raspi bereits online gestellt.
edit 30.09.2015: Die Version 2.0 der Platine wurde direkt auf die Version 3.0 umgebaut. Fotos sind in Beitrag #16 zu sehe. Der Text dieses ersten Beitrages wird komplett geändert, sobald die Version 3.0 der Platine vorliegt.
edit 30.10.2015: Die Version 3.0 der Platine ist eingetroffen und funktioniert fehlerfrei. Ich hab sie in Beitrag #17 vorgestellt.
edit 19.01.2015: Version 3.1 wird in Beitrag #23 vorgestellt.