Forum
raspberry pi und PIR (Computertechnik)
» Hallo Experten und bastelix,
Das könnte man übrigens auch falsch verstehen
» schätze die eingehende Antwort, lerne auf diesem Forum mehr als in
» Lehr-Texten und Tutorials.
Das ist doch schon mal was Aber das algorithmische denken musst du dir noch aneignen, vielleicht hilft es dir dabei wenn du mal ein einfaches Python-Script als Programmablaufplan/Flussdiagramm aufzeichnest um zu verstehen was der Rechner eigentlich mit deinen Befehlen anstellst. ( https://de.wikipedia.org/wiki/Programmablaufplan ).
» >>while True:
» >>>time.sleep(8)
Hier hast du wieder eine Endlosschleife deren einziger Inhalt es ist dein Programm für acht Sekunden schlafen zu legen
Was ich bei der Gelegenheit mal loswerden muss: An Python stört mich extremst, dass Programmblöcke nur durch die Einrückung definiert werden. Das ist schei*e lesbar und fördert das einbauen logischer Fehler...
So genug gemotzt
» Mein PIR PI-ADA-189 verhält sich in verschiedenen Scripts erratisch d.h. es
» gibt kein 1:1 Verhältnis
Dein PIR wird nicht über dein Python-Programm gesteuert, wann der PIR den Data-Pin auf HIGH/LOW zieht ist über die Hardware definiert. Dein Script wertet die Pegeländerungen lediglich aus (um genau zu sein wann immer der Pin von LOW auf HIGH geht, aufgrund des Parameters gpio.RISING bei gpio.add_event_detect) und reagiert darauf entsprechend. Du musst also für die Wartezeiten die Eigenschaften des PIR berücksichtigen, z.B. dass er Bewegungen nur alle X Sekunden (das müsste sich über einen Poti einstellen lassen, aber nur bis zu einer gewissen Untergrenze)
Dein Python-Script muss also selber entscheiden wann es auf den IRQ vom PIR reagiert und z.B. ne Mail verschickt oder den IRQ ignoriert.
» Ich möchte 2 Dinge erreichen:
Anders formuliert: Sendet der PIR einen IRQ wird eine Aktion ausgeführt, solange die Aktion das letzte mal vor PIR_DELAY Sekunden ausgeführt wurde.
Danach werden alle PIR IRQs für PIR_IGNORE_TIME Sekunden ignoriert. Und dann beginnt das ganze wieder von vorn.
Ich hab da mal was bei gist eingestellt (ist online besser lesbar als im Forum): https://gist.github.com/anonymous/5c25da72e1c24705d626c46a99a59b18
Dein Foto-Machen und Mail-Verschicken Code sollte dann in Zeile 53 aufgerufen werden, die restlichen prints sind Debug-Ausgaben. Ich hoffe in den Code-Kommentaren ist soweit alles erklärt. Könnte man vermutlich noch eleganter lösen, aber nicht nach 22 Uhr und halbwegs Anfänger-Verständlich
» Wenn das mal funktioniert möchte ich neben dem Bild noch ein SMS erhalten
» und mir einen remote access
» einrichten.
Divide and conquer beim remote access solltest dich aber schon etwas tiefer mit der Materie Netzwerksicherheit auskennen, sonst ist dein Pi möglicherweise bald aktives Mitglied in einem IoT-Botnetz...
Gesamter Thread:
![registrierter User (R)](img/registered.gif)
![registrierter User (R)](img/registered.gif)
![registrierter User (R)](img/registered.gif)
![registrierter User (R)](img/registered.gif)
![registrierter User (R)](img/registered.gif)
![registrierter User (R)](img/registered.gif)
![registrierter User (R)](img/registered.gif)
![registrierter User (R)](img/registered.gif)
![registrierter User (R)](img/registered.gif)