Hallo Ihr,
ich probiere einen ESP8266 zu nutzen, um eine UDP Nachricht an meinen
Raspberry Pi beim Öffnen und Schließen von Türen/Fenstern usw. zu
senden.
Der ESP8266 hat die Eigenschaft, dass er im Deep Sleep Mode <10µA
verbraucht und nur durch eine fallende Flanke von 3,3v auf 0v am Reset
Pin geweckt werden kann.
Meine Idee daher: Reed-Schalter an die Türe, µC wecken beim Öffnen und
Schließen, µC liest über weiteren Pin den Status vom Reed ein, schickt
das ganze per UDP und geht wieder auf unbestimmte Zeit schlafen.
Die SW Seite bekomme ich hin - aber bei der Hardware stehe ich am
Schlauch.
Hier stellen sich mir ein paar Fragen:
a) Wie gehe ich damit um, dass der Reed Schalter ja nur öffnet und nicht
auf 0v zieht - muss der Input dann theoretisch ein Pulldown sein, oder?
Wenn Schalter zu liegt 3,3v an (HIGH) und wenn offen zieht der Pulldown
ihn runter und es liegt sauber 0v an (LOW). Bekomme aber nicht so
richtig raus, ob Pulldown vom ESP8266 unterstützt wird.
b) Wie schaffe ich es, dass beim schließen erneut eine fallende Flanke
kurzzeitig am Reset PIN anliegt? Ich schätze mal da brauche ich ein paar
Logikgatter oder so?
Danke euch!
big_brother
Hi, soweit ich das bisher 8266er mit Tiefschlaf genutzt habe, machen die
beim Aufwachen einen echten Reset. Du würdest nur mit einem REED Kontakt
also einen Reset machen können, wenn z.B die Tür zu ist(oder auf).
Allerdings bleibt dieser Pegel dann auch erhalten.
Evtl. ist es besser, wenn Du einen kleinen Mikrocontroller nimmst der
nicht viel verbraucht und den zur Zustandsüberwachung der Tür einsetzt.
Sensor dann nach Wahl Reed, IR Reflex (verbraucht evtl. schon wieder zu
viel für Batterie), Hall Sensor.
Mit diesem überwachst Du dann Deinen Sensor, der ESP wird über einen
Transistor stromlos geschaltet und erst wenn etwas zu übermitteln ist
mit Spannung versorgt. Dann ein bisschen Warten (Wlan Login usw) und
wenn er fertig ist über UART die Daten abschicken. Dann wieder einfach
stromlos schalten.
Viele Grüße
Carsten
Tangierender Magnet am Reedkontakt? Wenn die Tür auf od. zu ist, wäre
ein dauerhafter Zustand eingetreten. Deshalb sollte der Magnet besser
kurz auslösen wenn er vorbeifahrt?
Hallo,
da das letztens schonmal Thema war und wenn Du Logikgatter verwenden
willst siehe Schaltung.
Kontakt und 10k Widerstand kannst Du auch tauschen, der 10k kann auch
wesentlich hochohmiger sein um Strom zu sparen wenn der Kontakt
geschlossen ist. Das RC-Glied am x86 Eingang ist nur geschätzt, wenn die
Impulslänge nicht reicht eben ändern.
Gruß aus Berlin
Michael
He Ihr,
danke für das Interesse und die Vorschläge.
Beim Stöbern und Nachdenken habe ich jetzt sogar eine (hoffentlich) noch
bessere Version gefunden:
Der ESP8266 hat ein PW_EN/CHIP_ON IO Eingang, der auf High zum
hochfahren gezogen werden muss. Da wir ja nicht regelmäßig pollen
müssen, sondern nur wenn die Türe/Fenster aufgeht, nutzen wir das aus:
1. Türe geht auf, NC Reed Switch schließt und bestromt über Diode den
CHIP_ON Eingang, ESP fährt hoch
2. ESP8266 hat eines der anderen GPIO (Hier mal GPIO_X) mit dem CHIP_ON
kurzgeschlossen, sodass wir als erstes GPIO_X auf HIgh setzen, damit der
Chip an bleibt, auch wenn der Reed wieder öffnet
3. Jetzt pollen wir regelmäßig ob die Türe offen ist und schicken den
Status.
4. Sobald erkannt wurde, dass die Türe wieder zu ist, schicken wir das
und ziehen GPIO_X auf LOW, der ESP8266 geht aus
Vorteil: Kein zusätzlicher IC/µC, nur paar Widerstände und eine Diode
benötigt (Minimale Kosten), Idle-Strom geht gegen 0 (hier laut
Datenblatt im Off mode <0,5µA!)
Nachteil: Nur anwendbar bei externem Trigger (Button, Reed, etc.), nicht
zum regelmäßigen Polling von z.B. Temp-Sensoren nutzbar.
Was meint ihr?
PS: Was sind denn die besten (online?) Tools um Schaltbilder zu malen?
Dann muss ich das nicht immer beschreiben.
Hallo,
ich bin leider nicht so der Elektronik-Profi. Verzeiht mir meine
vermutlich "einfachen" Fragen.
Ich hätte eine Frage zu der Schaltung von oben (Sensor.png) von Michael
U. (amiga). Ich verwende diese im Moment mit einem NC und NO
Reedschalter. Wobei ich nur den NC Anschluss im Moment beschalten habe.
Wenn das Fenster geschlossen ist - der Magnet also am Reedkontakt
anliegt - ist der Stromkreis offen. Sobald man das Fenster öffnet, ist
der Stromkreis geschlossen - der kurze Impuls zum Reset-Pin wird
geschickt und der ESP8266 startet neu.
Nun möchte ich den Zustand über einen GPIO-Pin des ESP auslesen
(0=Fenster zu, 1=Fenster auf) und dann geht der Chip wieder in
deep-sleep bis zum nächsten Reset.
1. Frage:
Kann ich den GPIO zum auslesen einfach zwischen dem Schalter und dem
ersten XOR-Gatter dazwischen legen? Oder geht da etwas kaputt und muss
da noch ein Widerstand oder ähnliches dazwischen?
2. Frage:
Wie müsste ich die Schaltung nun verändern, damit der "Impuls" zum Reset
abgegeben wird und dann aber kein Strom mehr verbraucht wird? (Muss man
dazu irgendwie den NO Anschluss des Reed-Kontakts mit einbinden?)
Ich habe aktuell die Widerstände und den Kondensator etwas verändert,
damit zieht die Schaltung wenn der Kontakt oben geschlossen ist (also
das Fenster offen) weniger Strom - aber das ist leider immer noch zu
viel für einen batteriebetriebenen Sensor.
Kann man hier noch irgend ein Bauteil hinzufügen, damit man den
Stromverbrauch während "Fenster auf" noch weiter minimieren oder ganz
abstellen kann?
Meine Schaltung sieht wie im Anhang aus.
Nimm einen CMOS Schmitt-Trigger, zum Beispiel CD4584:
1
____
2
____ 470nF | |
3
+ o---- ----+----||-----+----| ST |o------ Low=Reset
4
| | |____|
5
|~| |~|
6
220k | | | | 220k
7
|_| |_|
8
| |
9
GND GND
Schließe den Reedkontakt so an, dass in Ruhelage kein Strom fließt.
Der Chip hat noch 5 weitere Schmitt-Trigger, deren Eingänge du nicht
offen lassen solltest, damit die Stromaufnahme in Ruhelage wirklich auf
annähernd Null absinkt.
Du kannst den GPIO Pin an jeden beliebigen Punkt legen, solange dort
niemals mehr als 3,3V anliegen. Sicherheitshalber schadet es nicht,
einen der 0och übrigen Schmitt-Trigger zwischenzuschalten:
1
2
____
3
| |
4
+----------------| ST |o------ Low=Fenster offen
5
| |____|
6
| ____
7
____ | 470nF | |
8
+ o---- ----+----||-----+----| ST |o------ Low=Reset
9
| | |____|
10
|~| |~|
11
220k | | | | 220k
12
|_| |_|
13
| |
14
GND GND
Damit die Schaltung auf EMV nicht überempfinglich reagiert, würde ich
noch einen Kondensator hinzufügen:
1
2
____
3
47nF | |
4
+ o---||-----+----------------| ST |o------ Low=Fenster offen
5
| |____|
6
| ____
7
____ | 470nF | |
8
+ o---- ----+----||-----+----| ST |o------ Low=Reset
big_brother schrieb:> PS: Was sind denn die besten (online?) Tools um Schaltbilder zu malen?
Das beste Werkzeug nützt dir nichts, wenn du nicht damit umgehen kannst.
Hast du hier im Forum schon mal die Artikel der
Kategorie:Schaltplaneditoren durchstöbert?