Briefkasten benachrichtigung, Wakeup Problem! ESP8266 - Solved

Hi,
ich bastle gerade an einer Lösung damit mir mein Briefkasten eine Mail schickt wenn etwas eingeworfen wurde.

Da es zwei Fächer gibt musste ich zwei Sensoren verbauen, zusätzlich noch ein Dritter damit Licht an geht wenn ich die Tür öffne.
Alles sind Schließer wenn die Tür geöffnet ist.

Damit der ESP8266 startet benötige ich ein LOW am RST Pin, dies darf aber nur ein Impuls sein, denn er startet erst wenn der Impuls endet!
(Und wenn ich ihn erst dann starten lasse kann ich nicht einlesen welcher Sensor ausgelöst hat).
Dies habe ich über vorgeschaltete Dioden gelöst und die Schalter zusätzlich an den ESP geführt.
Die Verbindungen sind an D5, D6, D7 gelegt und lösen damm im Sketch das richtige aus.

Nun funktioniert eigentlich auch alles, aber ich habe ein kleines Problem.

Damit es nur ein Impuls ist habe ich einen Kondensator davor geschaltet. Dieser lässt kurz Spannung durch während er aufläd und dann unterbricht er. So wie es ja auch soll.

Nun muss ich diesen nach Sketch Ende wenn wieder geschlafen wird entladen… Und da ist das Problem. Da ich keine gute Lösung wusste habe ich mit testen und improvisieren eine Lösung gefunden, aber diese ist elektronisch sicher nicht die Beste!

Ich habe einen Widerstand parallel zum Kondensator geschaltet. Etwas ist hier nicht ganz richtig bzw. Ideal gelöst, das muss noch besser berechnet gehen, ich habe es nur durch probieren hinbekommen.

Ich hoffe es ist einigermaßen verständlich.

Ich freue mich auf Hilfe von euch!

Wenn noch etwas undeutlich war gerne nachfragen!

Karsten

Fertige Lösung:

(Und wenn ich ihn erst dann starten lasse kann ich nicht einlesen welcher Sensor ausgelöst hat).

Peinliches Problem.

Nur über eine externe Schaltung zu lösen, welche sich den betätigten Schalter merkt. Richtig?

Evtl. wäre ein Konzeptänderung das richtige?

Vorschlag: (selber schon einige male (so ähnlich) durchgezogen)

Verwende einen nackten ATMega328p, o.ä. Wenn er genaues Zeitverhalten benötigt, spendiere ihm einen Uhrenquarz. Der Stromverbrauch ist so, im Tiefschlaf, nahe Null.

Dieser wird erheblich schneller wach, so dass er die Chance hat, den betätigten Schalter noch zu sehen. Bei Bedarf kann er dann den ESP mit Strom versorgen/aktivieren. Dieser ESP kann z.B. per I2C den AVR befragen, welche Nachricht es zu senden gilt. Wenn er fertig ist mit Senden, könnte er den AVR darüber benachrichtigen.

Ich verwende in solchen Fällen gerne den ESP8266-01 als I2C Master und einen AVR als Slave.


Auch würde ich mich fragen, ob überhaupt ein ESP an der Stelle das richtige ist. Ob man nicht auch mit einem HC-12 oder einem beliebigen anderen Funkmodul (plus nacktem AVR) hin kommt. Und woanders dann ein Gateway von HC-12 auf Wlan aufstellt.

Hi, vielen Dank zunächst für deine Antwort.

combie: Dieser wird erheblich schneller wach, so dass er die Chance hat, den betätigten Schalter noch zu sehen.

Leider hilft mir das schneller wachwerden nicht. Denn der Kontroller startet ja erst wenn das Low beendet wird, und dies passiert ja erst wenn mein Schalter wieder öffnet. Somit muss ich dann dennoch die Kondensator schaltung richtig lösen/aufbauen können!

Somit kann der Startvorgang so schnell sein wie er will, er wird immer erst starten nachdem der Schalter wieder geöffnet ist. Und dann kann ich ihn nicht mehr auslesen da er schon wieder geöffnet ist ...

wenn du WLAN brauchst nimm einen ESP32. Bei dem kannst auswerten, welcher PIN den Wakeup ausgelöst hat und umgekehrt, kann der PIN im Wachbetrieb weiterhin den Pegel haben der zum Aufwachen geführt hat.

noiasca: wenn du WLAN brauchst nimm einen ESP32. Bei dem kannst auswerten, welcher PIN den Wakeup ausgelöst hat und umgekehrt, kann der PIN im Wachbetrieb weiterhin den Pegel haben der zum Aufwachen geführt hat.

Ich würde gern den ESP8266 (Wemos D1 mini pro) den ich hier vorliegen habe nutzen.

Es muss doch eine Lösung geben bei den Aufbauten mit PIR Sensor wird es ja auch ähnlich gemacht, nur leider ist mein elektronik Wissen nicht gut genug um das richtig rechnen zu können :/

Hallo,

Kondensator habe ich da auch schon so genutzt. Normalerweise reichen da schon 10...10n, 10µ ist unnötig groß. Der ESP hat am Reset einen PullUp, auf die andere Kondensatorseite muß also auch ein PullUp, 10...47k geschätzt. Das ist dann auch der Entladeweg, wenn die Taster wieder offen sind.

Gruß aus Berlin Michael

Hallo,

ich hab noch nicht ganz verstanden wie Deine seltsame Schaltung laufen soll, aber mal ein anderer Ansatz.

Klappe geht auf und schaltet dabei gegen OV damit würde der uC starten wenn die Klappe wieder zu geht. Jetzt müsste einer der Eingang D5,D6,D7 noch für eine gewisse Zeit auf LOW bleiben um zu erkennen welcher es war. Das tut er weil sich erst ein Kondensator aufladen muss der paralell an dem Eingang hängt. Die beiden andere Eingänge sind nicht auf 0V gelegt worden, damit ist der zugeh. Konenstor noch voll.

Also einer der Schalter schaltet den zugehörigen Eingang D5,D6,D7 auf 0V , entläd dabei den Kondensator. Über die zugehörige Diode wird zus. der RST gegen 0V gezogen.

Damit das zeitlich passt müsste man sicher im Setup als erstes die Engänge einlesen und die Zustände abspeichern und dann erst den Wlan kram machen.

wäre mal ein Versuch wert.

Heinz

KaMeCache: Hi, vielen Dank zunächst für deine Antwort.

Leider hilft mir das schneller wachwerden nicht. Denn der Kontroller startet ja erst wenn das Low beendet wird, und dies passiert ja erst wenn mein Schalter wieder öffnet. Somit muss ich dann dennoch die Kondensator schaltung richtig lösen/aufbauen können!

Somit kann der Startvorgang so schnell sein wie er will, er wird immer erst starten nachdem der Schalter wieder geöffnet ist. Und dann kann ich ihn nicht mehr auslesen da er schon wieder geöffnet ist ...

Naja... Wenn man 3/4 meines Postings ausblendet, dann hast du vollkommen recht. Aber auch nur dann.

Nimmt man allerdings anstelle deiner bisherigen Schaltung (Dioden Kondensator) einen nackten AVR, kann er sehr wohl auf steigende oder fallende Flanken reagieren. Ganz nach belieben. Aber wenn du bei deinem bisherigen Konzept bleiben willst... von mir aus gerne ....

Hi, es könnte schon reichen, den Draht des 10K Widerstandes, der an den + Anschluss des Kondensators geht, einfach auf + der Betriebsspannung zu legen anstatt an + des Kondesators.

Ja der Kondensator ist mit 10 uF recht gross, dürfte wirklich kleiner sein. So um die 100n sollten eigentlich reichen.

LG Stefan

Vielen Dank soweit für die Hinweise, somit bin ich schon etwas schlauer.

amithlon: Der ESP hat am Reset einen PullUp, auf die andere Kondensatorseite muß also auch ein PullUp, 10...47k geschätzt. Das ist dann auch der Entladeweg, wenn die Taster wieder offen sind.

Das werde ich mir nochmal aufzeichnen und den weg des Stromes verfolgen, denn noch habe ich es nicht so ganz verstanden :(

Wenn ich es richtig sehe ist das der gleiche Ansatz: ?

Deltaflyer: Hi, es könnte schon reichen, den Draht des 10K Widerstandes, der an den + Anschluss des Kondensators geht, einfach auf + der Betriebsspannung zu legen anstatt an + des Kondesators.

Ich denke, es bedeutet, wenn beides an Plus anliegt ist es ja quasi auch wieder 0V Unterschied am Kondensator und dadurch wird entladen ?

Hi,

schau mal was hier passieren würde:


Welchen Wert musst Du (V) am Reset wie lange erreichen (ms)?

Gruß André

Hallo,

der ESP8266 hat am Reset einen (internen?) PullUp, ich habe da nicht nachgekramt. Auf den Boards wie NodeMCU, D1 mini usw. sind oft auch noch externe um die 10k, teilweise auch 100n am Reset gegen GND. Insofern ist der Wert des Kondensators etwas Versuch und Irrtum. R2 ist eigentlich auch relativ unkritisch. Nötige Impulslänge habe ich auch nicht nachgeschaut, 100n hat zumindest bei mir sicher geklappt, allerdings ein nackter ESP8266-12 ohne weitere Beschaltung am Reset Pin. Ist so bei einem Bekannten seit über einem Jahr im Einsatz und spielt zuverlässig.

Gruß aus Berlin Michael

Hi, vielen Dank für die ganzen Anregungen. Dabei war der entscheidende Tipp noch einmal auf die Pull-Up Widerstände zu schauen, bzw. darüber nachzudenken.

Somit habe ich nun jedem Eingang der für das auslesen der Sensoren verwendet wird einen verpasst. Nun wird dort auch sicher erkannt ob der Schalter wirklich geöffnet ist (im Sketch). Somit kommt es dort nicht mehr zu fehlerhaften Auslösungen.

Nun scheint alles zu gehen.

In deinem Schaltbild fehlt ein Vorwiderstand für die Led1. Das überlebt der Pin des Wemos nicht lange.

HotSystems:
In deinem Schaltbild fehlt ein Vorwiderstand für die Led1.
Das überlebt der Pin des Wemos nicht lange.

Bzgl. LED, der Wemos hat nur 3,3V am Ausgangspin und somit ist die weiße LED die 3,6V Normalspannung hat doch ohne Widerstand zu betreiben ?

KaMeCache: Bzgl. LED, der Wemos hat nur 3,3V am Ausgangspin und somit ist die weiße LED die 3,6V Normalspannung hat doch ohne Widerstand zu betreiben ?

dann solltest du mal nachlesen, was die Led an Strom braucht. Der Pin kann max. 12mA ausgeben.

HotSystems: dann solltest du mal nachlesen, was die Led an Strom braucht. Der Pin kann max. 12mA ausgeben.

Habe nicht nur gelesen sondern nun auch gemessen, es sind tatsächlich 14 mA.

Ich dachte die Pins können 20 mA, und dann hätte es ja gepasst. Nun bekommt sie einen 10 Ohm Widerstand ...

KaMeCache: Habe nicht nur gelesen sondern nun auch gemessen, es sind tatsächlich 14 mA.

Ich dachte die Pins können 20 mA, und dann hätte es ja gepasst. Nun bekommt sie einen 10 Ohm Widerstand ...

Mit 20mA liegst du beim Arduino richtig, beim ESP sind es 12.

HotSystems: Mit 20mA liegst du beim Arduino richtig, beim ESP sind es 12.

Aller klar, Widerstand ist zwischen und nun genötigt sie ca. 11 mA

Wenn Du bitte Deine Zeichnung überarbeiten würdest, machen andere nicht denselben Fehler.