ESP8266-1 mit Selbsthaltung Hallo, ich sitze hier und komme absolut nicht mehr weiter. In der fertigen Schaltung soll das ESP-Modul kurz Spannung kriegen und sich danach selbst halten, bis es fertig gearbeitet hat. Zum Testen habe ich ein Programm geladen, das lediglich GPIO0, GPIO2, RXD und TXT in einer Dauerschleife ein- und ausschaltet. JP2 ist dauerhaft gebrückt. Wenn ich die Schaltung an der Trennstelle auftrenne, dann ist auch an den Ausgängen vom ESP ein gutes Signal. Der Transistor schaltet im aufgetrenntem Zustand auch, wenn ich ihn an VCC lege. Jetzt kommt mein Problem, das ich nicht verstehe. Wenn der ESP bereits läuft und ich verbinde die Trennstelle, dann kann ich das Rechtecksignal an allen 4 Ports weiterhin messen. Wenn ich aber die Trennstelle verbinde und den ESP dann erst einschalte, dann läuft das Modul nicht an, bzw. geht in einen undefinierbaren Zustand. Zum Transistor (T1) fließen kanpp 2mA. Am Modul selbst befindet sich noch ein Stützkondensator 470µF und ein 100nF. Das oben beschriebene Programm dient nur zum Testen der Ports. Wo mache ich den Denkfehler oder ist es Dummheit? Für eine Hilfestellung wäre ich dankbar. Gruß Wilfried
Was ist Dein Q1 denn für ein Typ? Und warum zeichest Du die Kondensatoren nicht mit in den Schaltplan?
Hallo, warum startest Du den ESP nicht mit einem Reset-Impuls, läßt ihn seinen Kram machen und schickst in dann wieder in den DeepSleep? Gruß aus Berlin Michael
Und der JP2 ist wirklich dauerhaft gebrückt? Oder machst Du die Brücke auf, nachdem der ESP angelaufen ist? Ausserdem: Prüfe einmal genau, ob Du die beiden Transistoren gemäss Schaltplan angeschlossen hast und teile uns den Typ der Transistoren mit. VG Igel1
:
Bearbeitet durch User
Hallo, erst einmal danke für die Reaktionen. Hier noch die gewünschten Zusatzinformationen. Der Q1 ist ein BSH205 und der T1 ein 2N3904C. Die Kondensatoren habe ich einfach vergessen einzuzeichnen. Den Start über Reset und Deepsleep möchte ich vermeiden. Ich will noch ein StepUp-Modul (noch nicht geliefert) hinter den Q1 einbauen und deshalb soll das Ganze nach Ausführung wieder stromlos werden. Auf dem JP2 sitzt im Testbetrieb ein Jumper. Wenn ich die Trennstelle öffne und das Modul starte und danach die Trennstelle schließe, dann läuft das Modul. Wenn ich dann den Jumper entferne bleibt Selbsthaltung aktiv bis das Signal an der Basis vom T1 auf Null geht. Danach schaltet der ESP ab und bleibt aus. Das einzig Auffällige ist, wenn die Trennstelle geschlossen ist und ich gebe Spannung auf das Modul, dann kommt am TXD-Pin nur ca. 1V (ohne Brumm) bei einem Strom von 0,07mA. Wenn ich die Trennstelle bei laufendem Modul schließe, dann ist ein ganz sauberer LOW- und HIGH-Pegel zu sehen und zu messen bei einem Strom von knapp 2mA. Das Modul läuft bei geschlossener Trennstelle nicht an. Auch nicht im Programmiermodus. Der Port will auf HIGH gehen (soll er auch laut Testprogramm) und schafft es nicht (s. Bild2).
TX darf nicht LOW sein, wenn Du bootest. Hier gefunden: http://www.esp8266.com/viewtopic.php?f=13&t=8370#p41868 In dem zitierten Thread wird auf einen "ESP8266EX Application Design Guide" verwiesen: http://microchip.ua/esp8266/ESP8266_Module%20Application%20Design%20Guide.pdf Dort findest Du auf S.19 den entscheidenden Hinweis:
1 | Work mode: GPIO0, GPIO2 and U0TXD should be kept high when powering |
2 | on the chip. If it is not used, it could be left floating |
3 | ( it has internal pull-up). |
4 | MTDO should be kept low when powering on the chip." |
Ich hoffe, das hilft. Als Ergebnis wirst Du wahrscheinlich Dein Design anpassen müssen. Evtl. funktioniert's, wenn Du: - T1 ganz weglässt, - R3 an die Basis des MOSFETs Q1 klemmst, - Die Selbsthaltung durch TXD=LOW aktiviert - Durch TXD=HIGH kannst Du den MOSFET dann sperren Bin mir allerdings nicht 100%ig sicher, ob absolut kein Strom mehr via VCC->R8->R3->R7->TXD in den ESP hineinfließt, wenn er nur noch an GND liegt und keine Versorgung mehr hat. Versuch macht kluch ... Viele Grüße Igel1
Hier zur Inspiration: "Selbsthalteschalung" mit Diode und Widerstand https://www.hackster.io/noelportugal/ifttt-smart-button-e11841
Toxic schrieb: > Hier zur Inspiration: > "Selbsthalteschalung" mit Diode und Widerstand > https://www.hackster.io/noelportugal/ifttt-smart-button-e11841 Wenn ich das auf die Schnelle richtig blicke, ist das eine Lösung, die Wilfried H. nicht so gerne hätte (siehe sein 2. Post). Da fällt mir gerade ein, dass wir vor einiger Zeit hier im Forum ein ähnliches Selbstabschaltungsproblem hatten. Hier mein damaliger Lösungsvorschlag: Beitrag "Re: ESP8266 + Display + Drehencoder + DeepSleep" Der damalige TO hatte letztlich einen anderen Vorschlag umgesetzt. So richtig hilft's Dir ebenfalls nicht, denn auch dort würdest Du ja TXD zur Bootzeit auf LOW ziehen, wenn Du damit den NPN- Transistor schaltest. Aus der damaligen Diskussion ergibt sich auch, dass mein obiger Vorschlag zu 99% nicht funktionieren wird (hatte gleich so'n komisches Gefühl dabei im Bauch), weil über die ESD-Dioden im ESP8266 mit hoher Wahrscheinlichkeit Strom via TXD in den ESD reinfließt, wenn er nur noch an GND und nicht mehr an VCC hängt. Viele Grüße Igel1
Hi Wilfried, ich nochmal: Nachdem mein obiger Vorschlag (T1 weglassen) Murks war, habe ich nun einen (hoffentlich) besseren Vorschlag: Vertausche ganz einfach TXD und RXD in Deiner Schaltung. RXD hat nämlich nicht die Bedingung, dass er beim Booten HIGH sein muss. Dein Schalter S2 sollte beim Booten dann natürlich in der Stellung 2-3 sein, sonst liegt TXD wieder auf LOW. Vermutlich musst Du in Deiner Programmlogik dann ebenfalls die Funktion der Pins TXD und RXD vertauschen - aber das sollte ja kein Hexenwerk sein (by the way und nur der Neugierde halber: wie programmierst Du den ESP? Plain C, NodeMCU, Arduino?). Ob Du die Pins von JP1 ebenfalls vertauschen mußt, weiss ich nicht, weil uns hier unbekannt ist, was Du an JP1 dranhängen willst (beschreib doch mal, was die ganze Schaltung machen soll, wenn wir schon mit-designen :-)). Ich selber verwende nur noch ESP-12'er - da ist man Pin-mäßig einfach nicht so limitiert und man kommt dann nicht so schnell in die Bedrängnis, TXD und RXD als GPIO-Pins zu verwenden. Viele Grüße Igel1
Hallo, vielen Dank für die Hinweise. Damit sind erst einmal die nächsten Tage gerettet :-). @Andreas: Das ist mehr ein "Der Weg ist das Ziel" Projekt und soll als Briefkastenmelder, der auch eine Mail an eine zweite Person verschicken kann (Schalter S2), eingesetzt werden. Ich habe auch noch größere Module da, aber es ist die Herausforderung. Danke und ich melde mich wieder, wenn ich (hoffentlich) Ergebnisse zeigen kann. Gruß Wilfried.
Wilfried H. schrieb: > Hallo, vielen Dank für die Hinweise. Damit sind erst einmal die nächsten > Tage gerettet :-). Och je ... > @Andreas: Das ist mehr ein "Der Weg ist das Ziel" Projekt und soll als > Briefkastenmelder, der auch eine Mail an eine zweite Person verschicken > kann (Schalter S2), eingesetzt werden. Ach, ist ja lustig - genau so eine Email-Schleuder habe ich auch vor ca. einem Jahr mit einem ESP-01 gebaut: ich wollte meine Mäusefalle Email-fähig machen: Beitrag "Re: Projekt Maus" Das ganze hat auch geklappt, hat mich aber ein paar graue Haare gekostet: - weil ich alles mit NodeMCU auf ESP gemacht habe (das halte ich noch immer für eine elegante Lösung) und dafür ein bißchen die Programmier- sprache "LUA" lernen musste, - und weil das Email-Beispiel auf dem GIT-Server von NodeMCU buggy war (meine mich zu erinnern, dass die uuencode-funktion buggy war), - und weil es nicht einfach war, einen SMTP-Dienstleister zu finden, der unverschlüsselte SMTP-Verbindungen annimmt Final hat's dann aber irgendwann geklappt. > Ich habe auch noch größere Module > da, aber es ist die Herausforderung. Die größeren Module sind eine Herausforderung? Wenn Du größere ESP-Module meinst (z.B. das ESP-12), so haben die nur mehr Pins des eigentlichen Prozessors herausgeführt - ansonsten ist alles gleich wie bei Deinem ESP-01. Daher: keine Herausforderung, sondern nur mehr Komfort. > Danke und ich melde mich wieder, wenn ich (hoffentlich) Ergebnisse > zeigen kann. Gruß Wilfried. Au ja - würde mich wirklich interessieren! Viel Erfolg wünscht Dir Igel1
Guten Abend, ich melde mich mal mit einem Zwischenstand. Der entscheidende Tipp kam von Andreas: „TX darf nicht LOW sein, wenn Du bootest.“ Nach einem Redesign läuft die Hardware jetzt. TxD und RxD habe ich in der Schaltung getauscht. Der Schalter liegt jetzt mit einem Pin am GPIO2. Beim Start ist dieser HIGH und wird vor dem Abfragen auf LOW gelegt. Mit dem Schalter S2 entscheide ich im Briefkasten, ob ich eine zweite Mail an jemand verschicken will. Die Programmierung vom ESP erfolgt über den Stecker JP2 und wird mit dem Taster S1 eingeleitet. Das 3,3V-StepUp-Modul habe ich mittlerweile erhalten und hinter dem MOSFET Q1 eingebaut. Somit kann ich hoffentlich die beiden AA Zellen länger benutzen. Erfahrungswerte habe ich da leider noch nicht. Die nächsten Schritte sind jetzt die Programmierung, der Test aus einer Blechdose mit Loch, danach muss das Loch in die Rückwand vom Briefkasten und danach die Montage vom Gerät. Übrigens, als Gehäuse musste ein ausgedienter DSL-Splitter herhalten. Nochmal einen Dank an Alle, die mich unterstützt haben. Gruß Wilfried
:
Bearbeitet durch User
Aaahhh - jetzt verstehe ich, wie die ganze Sache funktionieren soll!. Danke für die guten Erläuterungen und die Bilder - da macht dieser Thread doch direkt noch mehr Spaß. Man sagt dem ESP8266 nach, dass er etwa im Bereich 2,5 - 3,6V stabil betrieben werden kann. Dein Ansatz mit 2xAA-Zellen und StepUp wird also sicherlich funktionieren. Evtl. täten's auch 3xAA-Zellen und ein oder zwei Dioden zur Spannungsreduktion - aber so richtig toll ist diese Lösung auch nicht. Mit einem ESP-12 - Modul könntest Du sogar die Batteriespannung messen und Dir eine weitere Email im Falle von Low-Batt zusenden lassen. In jedem Falle rate ich Dir zu anderen Akkus - mit den grünen Aldi-Akkus auf Deinem Bild wirst Du nicht viel Spaß haben: die haben eine hohe Selbstentladung (sind die überhaupt Ready-2-Use?), eine hohe Exemplar- Streuung und einen relativ niedrigen Spannungsverlauf. Nimm Eneloop-Akkus oder deren Nachfolger und Dein Briefkasten wird doppelt so lange melden: Beitrag "Re: [S] Gute & günstige Ready-to-use Akkus (Mignon) + 9V Blöcke" Ansonsten: Nettes Projekt! Viele Grüße Igel1
Guten Abend, der Briefkastenmelder ist fertig und schickt mir seit Montag Mails. - Stromquelle 2xAA Akkus (Ready to Use von Lidl). Sie haben nur eine minimal höhere Selbstentladung als die Eneloop Akkus. Ein Test, beim dem der Melder über Nacht im Gefrierschrank lag, habe ich bei ca. 80 Übertragungen beendet. Um auf die 3,3V zu kommen, habe ich ein StepUP-Modul nachgeschaltet. Wenn diese Akkus leer sind, werde ich 2 AA Zellen einlegen und hoffen, dass sie 1 Jahr reichen. - Ausgelöst, bzw. gestartet wird das Modul über einen Taster(Öffner) im Deckel. Geht dann in Selbsthaltung bis die Übertragung fertig ist und schaltet sich danach aus. - Das WLAN-Modul sendet stabil aus dem Briefkasten ohne ein zusätzliches Loch im Blech. - Per Schalter kann ich im Briefkasten zu- und abschalten, ob ein Vertreter auch eine Mail bekommen soll. Die Adressen sind im Modul hinterlegt. - Logdaten über gesendete Mails, Abbrüche und WLAN-Probleme werden gespeichert und mit den Mails übermittelt. Ebenso bekomme ich den Status geschickt, ob die Mail erfolgreich an den Vertreter zugestellt wurde. - Über den eingebauten Taster (Prog-Taster) besteht die Möglichkeit, dass die Logdaten auf Null gesetzt werden können. - Mit der "Herausforderung" habe ich gemeint, dass die Realisierung mit dem kleineren Modul die Herausforderung war. Das Programm werde ich nächstes Jahr nochmal überarbeiten um ein paar "hingestolperte" Programmschritte zu bereinigen. Obwohl es stabil läuft habe ich trotzdem vorgesehen, dass es in den DeepSleep geht, falls die Abschaltung mal nicht funktionieren sollte (z.B.:Taster geht nicht mehr auf). Zusätzlich habe ich noch einen Resetknopf eingebaut, der die Basis vom Transistor T1 auf GND ziehen kann und somit die Spannung abschaltet. Nochmals Danke an alle. Gruß aus dem Odenwald Wilfried
Wow - im Odenwald ist man aber schnell mit den Projekten! 8 Tage und schon läuft/sendet die Kiste, inklusive 1000 Zusatzfeatures - nicht schlecht, Herr Specht, gute Arbeit Wilfried! Was mich abschließend noch interessieren würde ist die Programmiersprache, die Du genutzt hast ... NodeMCU mit Lua? Oder Hardcore C++? Oder gar AT-Befehle? Ach ja: und welchen Mailserver nutzt Du zum Mailversand? Denn mal "happy mailing" für die Zukunft. Auf dass Dein Briefkasten Dir immer frohe Emails zu froher Kunde schickt! Viele Grüeß Igel1
@Andreas: Jetzt bin ich wieder daheim und kann Dir die Antworten geben. Ich programmiere das über die Arduino-IDE, also ähnlich C++. und die Mails verschicke ich über SMTP2GO. Die letzten Wochen ist der Melder stabil gelaufen und meine Briefkastenaufpasserin und ich haben uns gefreut, wenn wir Mails aus dem Briefkasten bekamen.:-). Einmal war bis jetzt ein Katalog dabei, sodass der Deckel nicht geschlossen werden konnte und der Melder in den DeepSleep musste. Hat aber funktioniert. Gruß Wilfried
@Wilfried: Danke für die Infos und Gratulation zur Stabilität Deines Melders! VG Igel1
Hallo Wilfried, super Projekt - ich möchte gerade etwas ähnliche bauen. Kannst du eventuell tatsächlich noch deinen Code hochladen; würde mir sehr helfen. Danke vorweg & Liebe Grüße Martin
hallo, Super, sowas suche ich auch, wäre es möglich, dass ich das Programm bekommen könnte? besten Dank mfg Manni
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.