Forum: Mikrocontroller und Digitale Elektronik ESP8266-1 mit Selbsthaltung


von Wilfried H. (wilfriedh)


Angehängte Dateien:

Lesenswert?

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

von Horst (Gast)


Lesenswert?

Was ist Dein Q1 denn für ein Typ?
Und warum zeichest Du die Kondensatoren nicht mit in den Schaltplan?

von Michael U. (amiga)


Lesenswert?

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

von Andreas S. (igel1)


Lesenswert?

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
von Wilfried H. (wilfriedh)


Angehängte Dateien:

Lesenswert?

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).

von Andreas S. (igel1)


Lesenswert?

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

von Toxic (Gast)


Lesenswert?

Hier zur Inspiration:
"Selbsthalteschalung" mit Diode und Widerstand
https://www.hackster.io/noelportugal/ifttt-smart-button-e11841

von Andreas S. (igel1)


Lesenswert?

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

von Andreas S. (igel1)


Lesenswert?

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

von Wilfried H. (wilfriedh)


Lesenswert?

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.

von Andreas S. (igel1)


Lesenswert?

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

von Wilfried H. (wilfriedh)


Angehängte Dateien:

Lesenswert?

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
von Andreas S. (igel1)


Lesenswert?

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

von Wilfried H. (wilfriedh)


Angehängte Dateien:

Lesenswert?

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

von Andreas S. (igel1)


Lesenswert?

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

von wilfriedh (Gast)


Lesenswert?

@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

von Waldemar (Gast)


Lesenswert?

Interessantes Projekt, kannst du vielleicht die Software hochladen?

von Andreas S. (igel1)


Lesenswert?

@Wilfried:

Danke für die Infos und Gratulation zur Stabilität Deines Melders!

VG

Igel1

von MM (Gast)


Lesenswert?

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

von Manfred B. (manfred_b491)


Lesenswert?

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
Noch kein Account? Hier anmelden.