RasPiPo(st) 2 - Der Briefkasten verschickt E-Mails

  • .
    .
    .
    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/briefka…r-uhrzeit-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/fla…-the-esp8266-linux-guide/


    Windows: http://www.whatimade.today/loa…he-esp8266-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…ription=1&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/briefka…r-uhrzeit-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.

  • Inzwischen wurden einige Erweiterungen (siehe edit am Ende des ersten Postings) hinzugefügt und in Planung genommen, so wie Verbesserungen in der Software vorgenommen. Der Text wurde ergänzt und überarbeitet.


    Bis auf die Spannungsüberwachung (kommt voraussichtlich in der 25. KW) läuft bereits alles im Realbetrieb.

  • Aktuelle Änderungen:


    Text komplett überarbeitet, aktuelle Teileliste hinzugefügt, Schaltung von Grund auf neu entworfen, sämtliche Komponenten in ein einziges Gehäuse integriert, was einen Nachbau wesentlich vereinfacht, Schreibfehler behoben. Leider verzögert sich aktuell die Weiterentwicklung durch den Poststreik.

  • Die Software wurde von joh.raspi insgesamt anders strukturiert und um die Möglichkeit ergänzt, die Akkuspannung zu überwachen. Der Warenkorb wurde abgeändert. Der ursprünglich angedachte Batteriehalter passte nicht in das empfohlene Gehäuse. Mit dem aktuellen Warenkorb ist das Problem behoben. Es stehen zwei verschiedene Gehäuse zur Auswahl. Empfehlen würde ich das 4mm höhere "SP 6062 GR".


    Leider verzögert sich das Projekt weiterhin durch die Nachwirkungen des Poststreiks.


  • Verstehe ich das richtig: Durch den Einsatz des ESP8266 ist auch der RasPi nicht mehr notwendig?


    Marcus


    Das ist richtig. Im ersten Projekt diente der RasPi dazu, die Info per E-Mail zu versenden. Daher der Name RasPiPo(st).


    In der aktuellen Version des Projektes ist es so, dass der ESP dies vollkommen autonom erledigt. Es ist lediglich eine Wlan Verbindung zum Internet notwendig.

  • Leider war es heute Früh noch recht dunkel, daher die schlechte Qualität. Aber ich denke es ist trotzdem alles einigermaßen gut zu erkennen.

  • Ah cool. Genauso hatte ich mir das gedacht. Coole idee mit der Stiftleiste!
    Dachte aber du hättest noch mehr Pins aktiv heraus geführt.
    Kann man den Kupferlackdraht eigentlcih einfach löten und de rLack schmilzt weg oder muss man das Ende erst frei schmirgeln?

  • Im Briefkastenprojekt brauche ich (bisher) nur den analogen Eingang. Daher habe ich nur diesen heraus geführt. Dafür sollte man nicht zuviel Kaffee getrunken haben ;) Falls doch noch Bedarf an weiteren GPIOs sein sollte, habe ich auf der Platine (siehe Beitrag #1) drei weitere Pins vorgesehen. Im Gehäuse ist für die eventuell notwendigen Bauteile noch genug Platz vorhanden.


    Ich mache es so, dass ich die Lötspitze mit Zinn versehe und dann den Draht rein halte, bis es ordentlich qualmt und stinkt. Dann ist der Lack abgebrutzelt und das Ende des Drahtes verzinnt.

  • Das steht im ersten Beitrag:


    "...Die Anforderungen sind gleich geblieben, es soll eine E-Mail verschickt werden, wenn der Briefkasten geöffnet wird. Also konnte der bereits installierte Taster als Signalgeber im Briefkasten verbleiben...."


    Die Fotos zum Taster findest Du im ebenfalls erwähnten ersten Projekt:


    http://www.forum-raspberrypi.d…kasten-verschickt-e-mails

  • Die vorerst finale Hardware Version ist soeben in den Briefkasten eingebaut worden. Ich habe den Text des ersten Postings angepasst, also Fotos entfernt und aktuelle hinzu gefügt.


    Im Vergleich zur ersten Version sieht das jetzt wesentlich ordentlicher aus und es gibt nur noch ein einziges Kabel (zum Taster). Die Pins des Temperatursensors sind exakt lang genug, um plan mit dem Gehäusedeckel abzuschließen. Das Loch hat einen Durchmesser von 4,8mm.


    Wie schon im ersten Beitrag geschrieben, habe ich die meisten Bauteile mehrmals hier liegen. Wer also Interesse hat, kann gerne nach einem Bausatz fragen. Wer ganz lieb fragt, dem löte ich die überschaubare Menge an Bauteile auch auf.

  • Es gibt wieder Neuigkeiten zu diesem Projekt. Die Platine in der Version 2.0 traf vor einiger Zeit ein. Ich habe diese bestückt (mit Relais) und zum testen in den Briefkasten gebaut. Die neue Software von joh.raspi ist sehr zuverlässig. Bisher wurde jede Öffnung erkannt.


    Um die neuen "Energiesparfunktionen" der Software nutzen zu können, musste ich ein paar Leitungen umlegen und habe zusätzlich das Relais gegen einen Mosfet getauscht. Das sieht auf dem Bild etwas wild aus, funktioniert aber einwandfrei. Der inzwischen verwendete Tiny wurde auf einen Sockel gesetzt, damit ich in der Testphase eine praktikable Möglichkeit habe, die Software anzupassen. Da die Software sich bereits bewährt hat, muss diese künftig nur noch einmalig auf den Tiny geflasht werden.


    Die gegenüber der Version 1.0 vorgenommenen Änderungen der Schaltung haben zu einer erheblichen Energieersparnis geführt. Der Verbrauch im Standby beträgt nur noch rund 4,3µA (bei etwa 2,7V Akkuspannung). Das sind umgerechnet 0,0043mA. Das sind im Jahr grob gerundet 40mA Verlust durch Standby. Zum Vergleich: Der Hersteller der Eneloop Akkus gibt an, dass diese in einem Jahr nur eine Selbstentladung von 20% der Kapazität aufweisen. Die Selbstentladung beträgt also rund 400mA, das Zehnfache dessen, was die Schaltung im Standby verbraucht.


    Die nun vorgenommenen Änderungen werde ich in die Version 3.0 der Platine einfließen lassen. Sobald diese vorliegt, gibt es neue Infos. Anbei ein paar Fotos des Prototypen (Version 2.0 modifiziert auf Version 3.0)

  • Die Entwicklung des "Briefkastenprojektes" geht in großen Schritten der finalen Version entgegen. Inzwischen gibt es eine Version 2.0 der Platine, die aber durch ein neues Features, dass joh.raspi in die Software eingebaut hat, schon wieder überholt ist. In der Version 2.0 der Platine gibt es nur eine einzige Verbindung zwischen dem µC und dem ESP-Modul. Um den Schlafmodus vor Ablauf des Timers zu aktivieren, werden aber zwei Verbindungen benötigt. Auch wurde immer noch ein leicht modifizierter ESP8266-01 verwendet.


    In der Version 3.0 der Platine wurde die fehlende Verbindung zwischen dem ATtiny und dem ESP Modul ergänzt. Dadurch ist es nun möglich, dass der ESP dem für das Energiemanagement zuständigen ATtiny "mitteilt", dass die Informationen in das Netzwerk/Internet übermittelt wurden und der ATtiny seinerseits den Strom direkt abschalten kann, ohne darauf zu warten, dass der Timer abgelaufen ist. Auch das spart Strom.


    Das bisher genutzte, modifizierte ESP-01er Modell wurde durch das 12E Modell ersetzt, da das Anlöten der zusätzlich benötigten GPIO den meisten Usern (große) Probleme bereitet hat. Ebenso kann aber auch das Modell 07 oder 12 genommen werden, da diese Modelle pinkompatibel sind.


    Die von joh.raspi in der Beschreibung der Software des ESP-Moduls erwähnten Verbindungen sind durch Lötbrücken auf der Platine umgesetzt. Die Pads habe ich gut erreichbar unten links platziert. Eine kurze Beschreibung der Funktion ist auf der Rückseite der Platine abgedruckt.


    Das in der Version 1.0 und 2.0 noch vorhandene Relais ist inzwischen einer Transistorschaltung gewichen, wodurch die Bestückung übersichtlicher geworden ist.


    Der bisher genutzte StepUp wurde durch ein anderes Modell ersetzt. Damit ist es nun möglich, den StepUp in einen Schlafmodus zu versetzen, wodurch der Stromverbrauch minimiert wird. Leider ist dafür eine minimale Modifikation notwendig. Der Widerstand (PullUp), der unten links auf dem StepUp aufgelötet ist, muss entfernt werden. Dadurch wird durch den auf der Platine befindlichen PullDown das Verhalten des StepUp "umgedreht". Im Auslieferungszustand muss der SHDN-Pin des StepUp aktiv auf LOW gezogen werden, damit der StepUp in den Schlafmodus versetzt wird. Das ist nach der Modifikation genau anders herum. Nun ist der StepUp ständig im Schlafmodus und wacht nur auf, wenn der SHDN-Pin aktiv auf HIGH gezogen wird. Der Stromverbrauch reduziert sich dadurch im Schlafmodus von rund 100µA auf etwa 4µA. Damit benötigt die Schaltung rein rechnerisch pro Jahr bei einer Öffnung pro Tag und einem Wlan, dass stark genug ist, um eine Verbindung zu ermöglichen, etwa 200mA. Damit ist eins der großen Ziele erreicht. Es sollte eine sehr stromsparende Lösung werden.


    Um künftig auch in der aufgebauten Schaltung noch Änderungen an der Software vornehmen zu können, habe ich sowohl für den ATtiny als auch für den ESP jeweils einen Footprint für das Tag-Connect Kabel gesetzt. Die Software des ATtiny läuft im aktuellen Testaufbau seit einigen Wochen genau so wie sie soll und muss daher nicht mehr verändert werden. Wer kein Tag-Connect Kabel hat, kann den ESP auf einen Sockel setzen, wodurch er jederzeit mit neuer Software versehen werden kann. Ein Adapter und Programmierer wären dabei sehr hilfreich, aber es geht natürlich auch frei verdrahtet.


    Aus meiner Sicht ist die Version 3.0 gegenüber den bisherigen Versionen damit wesentlich anwenderfreundlicher geworden.


    Wie immer habe ich von den Platinen (alle Versionen) noch einige hier liegen, die ich nicht benötige. Bei Bedarf bestücke ich sie auch gerne gegen einen kleinen Obulus für die Bastelkasse.

  • Sorry, falls ich es überlesen habe - aber gibt es irgendwo einen Schaltplan zu dem Projekt? Gerade das Zusammenspiel µC <-> Spannungsregler <-> ESP würde mich interessieren.