Da erledigt --> Lösung ganz unten für Pi 4 B (Raspi OS 32 Bit)
Hallo an alle.
Benötigte Teile um das Problem nach zu produzieren:
Raspberry Pi 4 B (4 GB Ram) & ggf. Pi 400
Argon One Case mit M.2 SSD Zubehör sowie 500 GB SATA M.2 SSD
Rasbi OS ---> Up to Date; installiert auf der 500 GB M2.SSD
USB Kartenleser
USB Hub (3.0)
16 GB SD Karte
Sensor: RPI-HC SR501 bzw. hier der Link
Jumper Kabel:
Script:
#!/usr/bin/python
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#|R|a|s|p|b|e|r|r|y|P|i|-|S|p|y|.|c|o|.|u|k|
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#
# pir_1.py
# Detect movement using a PIR module
#
# Author : Matt Hawkins
# Date : 21/01/2013
# Import required Python libraries
import RPi.GPIO as GPIO
import time
# Use BCM GPIO references
# instead of physical pin numbers
GPIO.setmode(GPIO.BCM)
# Define GPIO to use on Pi
GPIO_PIR = 4
print "PIR Module Test (CTRL-C to exit)"
# Set pin as input
GPIO.setup(GPIO_PIR,GPIO.IN) # Echo
Current_State = 0
Previous_State = 0
try:
print "Waiting for PIR to settle ..."
# Loop until PIR output is 0
while GPIO.input(GPIO_PIR)==1:
Current_State = 0
print " Ready"
# Loop until users quits with CTRL-C
while True :
# Read PIR state
Current_State = GPIO.input(GPIO_PIR)
if Current_State==1 and Previous_State==0:
# PIR is triggered
print " Motion detected!"
# Record previous state
Previous_State=1
elif Current_State==0 and Previous_State==1:
# PIR has returned to ready state
print " Ready"
Previous_State=0
# Wait for 10 milliseconds
time.sleep(0.01)
except KeyboardInterrupt:
print " Quit"
# Reset GPIO settings
GPIO.cleanup()
Alles anzeigen
Problembeschreibung:
Ich habe ein Python Script. Dieses Script sollte nach dem Aufruf im Terminal (im selben Terminal) mit "Ready" bestätigen um dann auf Bewegung mit "Motion Detect!" im Terminal zu reagieren.
Ich habe folgende Änderungen am Script vorgenommen:
GPIO auf 7 auf GPIO 4 geändert. und zwar in der Zeile:
GPIO_PIR = 4
Im Script stand vorher 7.
das script ausführbar gemacht (chmod +x pir_1.py)
Kabel sind gesteckt auf :
Pin 2 : VCC +
Pin 6 : Gnd -
Pin 7 : Signal
PROBLEM:
Wenn ich das Argon One Case benutze spielt es überhaupt keine Rolle, ob der Sensor angeschlossen ist oder nicht! Das Script startet und dann erscheint:
pi@Workstationnew:~ $ ./pir_1.py
PIR Module Test (CTRL-C to exit)
Waiting for PIR to settle ...
Ready
Er meldet keinerlei Bewegungen!!!
ABER: Wenn ich den Pi 4 B aus dem Gehäuse ausbaue, und den Sensor anschließe Funktioniert alles. Und es steht dann eine neue Zeile mit "Motion Detected" darunter ,,es folgt eine per Poti eingestellte Haltezeit. Im Anschluss steht wieder da : Ready. Und alles Funktioniert!! Das gleiche Ergebniss mit Pi 400. Der Sensor arbeitet also. Sowie der Pi 4 im Argon One Gehäuse ist, hört er mit Ready auf!
Siehe Quellcode oben
keine Bewegung wird erkannt.
UNTERNEHMUNGEN Meinerseits:
Die Platiene in dem Argon One Gehäuse = zuständig für Lüfter GPIO PINS (Brücke) IR Gehäuse LED.... Habe ich Reklamiert und eine Ersatzplatine /Leiterplatte selber neu eingebaut also gewechselt.
Daran kann es nicht liegen dass diese Brücke der Hardware am Gehäuse einen Fehler hätte.
Also:
Gehäuse Leiterplatte = getauscht
Pi 4 ausgebaut+ Sensor-kontakte einfach direkt aufgesteckt. Mit Raspi OS Lite && SD Karte gestartet via SSH getestet -->Sensor geht!!
Pi 400: Sensor verbunden & SD Karte gestartet mit Raspi OS Lite (sudo apt-get update && sudo apt-get upgrade ) -->funktioniert
+ Mir überlegt ob es an der Stromversorgung liegen kann [Das Argon Case sollte ja den Lüfter und die Leiterplatte mit versorgen von den GPIOs (ist da abr ein anderer Pin)]
+ Darauf hin: Argon One Case "Steckbrücke" zum M.2 Gehäuse Teil entfernt und USB Kartenleser genutzt um Raspi OS Lite (ohne sudo apt-get uüdate && sudo apt-get upgrade)
zu starten. Dann das Script gedownloadet. GPIO Pin mit:
nano pir_1.py
auf Pin 4 gändert.
chmod +x /pir_1.py
und ausgeführt.
(Am Bildschirm). Resultat: ist wie Quelltext oben sowie keinerlei Erkennung von Bewegungen.
+ weitere Übelegungen gemacht woran es liegen kann und diesen Thread eröffnet.
Frage:
Ist bekannt das man die GPIO Pins erst irgendwie aktivieren muss?
Wenn ja dann im Zusammenhang mit dem Gehäuse?
+ Danke für das lesen & und ich hoffe ganz doll auf Hilfe.