Hallo,
ich möchte an einem Raspberry Zero mehrere Bewegungsmelder anschließen und eine Bewegung per MQTT an einen Broker weiterleiten.
Dazu habe ich ein Beispiel-Script umgebaut, mit einem Bewegungsmelder klappt es:
************************************************************************************
import RPi.GPIO as GPIO
import time
import datetime
import os
#Board Mode: Angabe der GPIO-Nummer
GPIO.setmode(GPIO.BCM)
#GPIO Pin definieren fuer den Dateneingang vom Sensor
PIR_GPIO = 14
GPIO.setup(PIR_GPIO, GPIO.IN)
def MOTION(PIR_GPIO):
# Bewegung erkannt
os.system('mosquitto_pub -h 192.168.0.100 -m true -t /smarthome/Bewegungsmelder1 -u admin -P kennwort')
time.sleep(1)
os.system('mosquitto_pub -h 192.168.0.100 -m false -t /smarthome/Bewegungsmelder1 -u admin -P kennwort')
try:
GPIO.add_event_detect(PIR_GPIO, GPIO.RISING, callback=MOTION)
while 1:
time.sleep(60)
except KeyboardInterrupt:
GPIO.cleanup()
************************************************************************************
Wie muss ich das Scipt jetzt umbauen, um mehrere Bewegungsmelder zu überwachen und jeweils eine andere MQTT-Nachricht zusenden?
Bewegungsmelder1 an GPIO14 ... Nachricht: /smarthome/Bewegungsmelder1 auf "true" ... nach einer Sekunde auf "false"
Bewegungsmelder2 an GPIO15 ... Nachricht: /smarthome/Bewegungsmelder2 auf "true" ... nach einer Sekunde auf "false"
Bewegungsmelder3 an GPIO16 ... Nachricht: /smarthome/Bewegungsmelder3 auf "true" ... nach einer Sekunde auf "false"
Ich bin blutiger python-Newbie ;-(( .... ich weis leider nicht, wie ich das umsetzen muss.
Gibt es jemand der mir helfen kann?
Vielen Dank.
Viele Grüße
Frank
MQTT mit python am Raspberry
- __blackjack__
- User
- Beiträge: 13938
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@frasche06347: Das würde ich gar nicht umbauen, das müsste man eh von Grund auf neu schreiben. Mit `gpiozero` statt `RPi.GPIO` und beispielsweise `paho-mqtt` statt irgendwelche externen Programme, dann auch noch mit `os.system()` zu starten.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware