Alarmanlage über PIR mit ESP

  • Hallo Freunde, ich bin mal wieder nach längerer Zeit Online. Bin jetzt mit der Weile soweit, das ich die Kommunikation mit MQTT realisiert habe.
    Auf dem Raspi nutze ich Python und auf dem ESP erledige ich alles über ein Sketch. Im Moment nutze ich noch den ESP8266-01, will aber später
    mit dem ESP8266-07 arbeiten, da ich dort mit deep-sleep und einer Batterie-Kapazitätsabfrage arbeiten will. Die Spannungsversorgung wird mit
    einem 7333 erledigt. Ich will dann mal später noch ein Bild einstellen, damit man es auch sieht.
    So das erst mal wieder als Zwischenbericht.

  • Hallo,

    brauche mal Eure Hilfe. Stecke irgendwie fest mit dem esp8266-07. Programmieren geht ganz gut, aber danach startet der esp nur manchmal oder auch gar nicht. Habe mir verschiedene Beschaltungen angesehen. Man wird irgendwie nicht schlau daraus! Einmal bleiben die Pins offen, dann werden sie wieder gegen VCC vorgespannt. Ich nehme an, dass es eben an der Randbeschaltung liegt, dass das ganze nicht so richtig läuft. Das ganze ist auch mit dem GPIO16 an Restet für automatisches aufwachen verbunden.

    Ich hoffe doch, dass mir einer in kürze mal antwortet. Besten Dank im voraus.

    Gruß locke62

  • Hallo, die vorausgehende Frage hat sich erledigt. Nachdem ich alles mal fest verlötet habe geht es Einwandfrei.

    Aber jetzt eine andere Frage! Möchte den Reset-Grund auslesen. Brauche dazu aber eine Bibliothek die im Programm mit

    "#include <rom/rtc.h>" aufgerufen wird. Irgendwie finde ich aber diese Bibliothek nicht. Habe schon alles mögliche probiert, aber nichts funktioniert. Kann mir einer diese Bibliothek zukommen lassen oder auch schreiben wo ich diese finde?

    Und hier noch die versprochenen Bilder von meinem bisherigen Projekt!

    Hier mein Schaltplan:

    Alarmanlage2.png

    Hier mein Breadboard-Aufbau:

    Breadboard.png

    Hier mein Leiterplattenentwurf (Das ganze etwas besser mit Eagle; wen es interressiert bitte melden):

    Leiterplattenentwurf2.png

    Der regelbare Wiederstand und der Spannungsregler stimmen leider nicht, da ich nicht die passenden Teile gefunden habe. Der Spannungsregler hat die Anschlüsse nebeneinander und nicht im Dreieck angeordnet und bei dem Trimmer ist der Schleifer von den Anschlüssen genauso weit weg wie die Anschlüsse selber voneinander (5mm)! Ich hoffe doch, dass ich ein paar Interessenten mir zum Antworten Zwecks Bibliothek animieren konnte.

    Tschau bis später

    9 Mal editiert, zuletzt von locke62 (8. Juli 2018 um 01:40)

  • Ich habe mir jetzt mal alle Einträge dieses Beitrages angesehen - finde aber keine Fragestellung, die beschreibt was Du mit "wie man den Reset-Grund Fehlerfrei ausliest" genau erreichen willst. Aus dem Schaltplan nehme ich an, dass Du unterscheiden möchtest, ob der PIR oder dein Sleep den Reset ausgelöst haben...

    Ich weiß nicht, ob der ESP überhaupt die Möglichkeit bietet festzustellen, ob der Reset vom SleepTimer ausgelöst wurde.

    Wie ich gesehen habe, hast Du diesbezüglich ein eigenes Thema eröffnet: Timer vom deep sleep auslesen.

    Offensichtlich kennt dort auch keiner eine Lösung...

    Daher würde ich das per Hardware lösen: Du hast ja noch GPIOs frei. Wenn Dein Transistor einen Reset auslöst, entlädst Du einen Kondensator und fragst den nach dem Reset ab...

    Ich habe Dir daher mal einen Ansatz SKIZZIERT - der ist nicht fertig, zeigt aber worum es geht:

    - Die Senkrechte Diode entkoppelt die Signale vom Transistor bzw. vom SleepTimer (Kondensator wird nur entladen, wenn Transistor schaltet)

    - Die Horizontale sorgt dafür, dass der "neue" Kondensator nicht gemeinsam mit dem DeepSleep aufgeladen wird

    Die Schaltung ist nicht fertig.

    Keine Vorwiderstände für Kondensator, Kondensator ist nicht dimensioniert und wie der Kondensator aufgeladen wird ist auch noch nicht klar. Aber falls Dir der Ansatz gefällt, wollte ich Dir ja nicht den gesamten Spass nehmen... ;)

  • Hallo VeryPrivat, entschuldige bitte dass ich erst jetzt antworte, habe aber ehrlicher weise lange nicht hier reingesehen. Urspünglich war die Verbindung vom PIR zum GPIO13 nicht vorgesehen. Man kann die verschiedenen Reset-Gründe (unter anderem auch dem vom "DEEP SLEEP Reset" auslesen. Habe das auch mehrfach nachlesen können. Aber leider funktioniert diese Variante nicht immer zuverlässig. Mal zeigt es den Reset-Grund richtig an und dann mal wieder nicht. Deswegen die Verbindung zum GPIO13. Aber irgendwie habe ich da ebenfalls ein Problem, denn auch das funktioniert auch nicht so richtig. Bei einem Reset (egal welcher) scheint es einen ganz kurzen Impuls zu geben, der jedesmal als PIR-Reset ausgewertet wird was ich irgendwie nicht so ganz verstehe. Deswegen kam mir die Idee, die Speicherzelle(n) die für den Deep Sleep verantwortlich sind auszulesen. Wenn ich das richtig gelesen habe, bleibt die Speicherzelle nach einem Reset erhalten, so dass man sie auslesen kann. Erst nach einem neuen setzen und das anschließende setzen in den Tiefschlaf des ESP wird die Speicherzelle eben überschrieben. Das wollte ich mir zu nutze machen. Wenn der Zähler (Speicherzelle) noch nicht auf 0 runter gezählt wurde, dann gehe ich davon aus, dass es ein PIR-Reset ist. Ist der Zähler dagegen auf 0, also DEEP SLEEP Timer abgelaufen, dann kann es eben nur noch ein Weckruf vom DEEP SLEEP Timer gewesen sein. Das beiden PIR und DEEP SLEEP Timer gleichzeitig auslösen, ist dagegen fast unmöglich (gegen 0)! Das wäre warscheinlich die beste und genaueste Lösung, habe aber nichts gefunden um welche Speicheradresse es sich dabei handelt. Ich aber eben auch ganz offen für andere Lösungen wie Du es vorgeschlagen hast. Ach ja, jetzt kommt auch noch hinzu, dass der PIR (auch andere Exemplare getestet) immer unkontrolliert auslöst! Bin schon am verzweifeln. Ich hoffe doch, dass Du Deinen Entwurf noch beendest. Wie gesagt, bin interresiert und auch für andere Vorschläge offen.

  • Dein Problem lässt sich doch recht einfach mit etwas Hardware lösen. Entweder die Dauer des Signals vom PIR an diesem o. mit einer Timerschaltung solange verlängern, bis der ESP aus dem Deepsleep wach ist und dann das noch anliegende Signal vom PIR auswerten kann. Der PIR mit dem eingebautem BISS0001 IC hat doch einen Triggermode ( Pin1, A ) mit einstellbarer Haltezeit -> ggf. dort R o. C Werte entsprechend anpassen. Oder man verwendet eine Flipflop Schaltung. Der PIR aktiviert diesen und der ESP setzt diesen nach dem Aufwachen und nach dem er das Signal an einem GPIO Port eingelesen hat, wieder zurück.

    Einmal editiert, zuletzt von Fliegenhals (24. September 2018 um 12:50) aus folgendem Grund: Detail Finetuning

  • Eigentlich braucht man gar keine Hardwarelösung, da das PIR Modul ja auch eine einstellbare Signaldauer hat. Die Einstellung per Poti ist vielleicht nicht ganz präzise aber damit lässt sich eine Schaltzeit von wenigen Sekunden bis Minuten einstellen. Wacht nun der ESP auf, sollte es doch kein Problem sein, ein per Diode entkoppeltes Signal an einem GPIO Port einzulesen. Es ist halt nur etwas Fleißarbeit, die optimalen Zeiten einzustellen.

  • Hallo und Danke für die Tip's, leider hat sich das Problem etwas verlagert. Ich habe mehrere PIR's und egal welchen ich einbaue die lösen immer unwillkürlich aus. Muss erst einmal dieses in den Griff bekommen! Vielleicht die Leitung abschirmen oder eben auch kürzer machen. Da gibt es auch einen Tip, wo man beim PIR einen Kondensator entfernen muss. Werde erst einmal alles ausprobieren.

    Aber trotzdem noch mal vielen Dank, es sein denn, das mir einer bei dem neuen Problem weiter helfen kann!

    Einmal editiert, zuletzt von locke62 (23. Dezember 2018 um 23:04)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!