Hallo liebes Forum,
nachdem nun meine USV in Python endlich funktioniert möchte ich mich meinem nächsten Projekt widmen.
Ich habe vor, in ferner Zukunft einen Alarmmonitor im Feuerwehrhaus anzubringen. Mit dem Raspi möchte ich dann bei Alarmeingang mehrere Automatismen einleiten. Z.B. möchte ich das Hallenlicht anschalten. Dazu kommt eine Transponderanlage, die nach Alarm auf bestimmte Zeit geschaltet ist um Kameraden den schlüssellosen Zugang über öffnen der Hallentore zu ermöglichen. Zu guter letzt möchte ich damit ein Magnetventil schalten, dass bei Alarm die Druckluftanlage, sprich einen Kompressor, öffnet um die Feuerwehrautos mit genügend Druckluft zu versorgen.
Das Ganze habe ich bereits gelöst. Und zwar über eine Relaissteuerung. Die Ladeschale unserer Funkalarmempfänger (Swissphone LGRA) kann ein internes Relais für 10 Min schalten und öffnet eine Flanke über einen Gpio. Mein Python Script funktioniert damit ganz gut.
Jetzt mein Problem und mal wieder abtauchen in totales Neuland:
Ich habe die besagte Ladeschale als Programmierstation umgebaut, um über USB die Meldungen auf den Raspi zu kriegen. Damit möchte ich später den Alarmmonitor füttern. Durch den umbau musste ich RX TX von der Ladeschalenplatine trennen (damit der eingesteckte Melder Strom bekommt). Nun funktioniert das interne Relais nicht mehr.
Jetzt möchte ich den USB Eingang überwachen und wenn dort ein Alarm eingeht, die GPIOS für die Ausgangsrelais schalten. Nur habe ich von dieser Art keine Ahnung.
Habe schonmal mit dem Scripten angefangen (siehe unten) leider kommt da im sekundentakt die Ausführung der If schleife. Das sollte wie eine Art Flanke warten auf den Eingang der Nachricht.
Hat jemand eine Idee?
import time
import RPi.GPIO as GPIO
import urllib
import csv
import os
import serial
GPIO.setmode(GPIO.BCM)
ser = serial.Serial(
port='/dev/ttyUSB0',
baudrate = 9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
print ("DME-Ueberwachung aktiviert!!\n")
try:
while 1:
x=ser.readline()
if x.find("Feuer"):
print ("Hier kommen dann die Gpios hin") # hier kommen dann die Ausfuehrungen rein
except KeyboardInterrupt:
GPIO.cleanup()
print ("")
print ("KeyboardInterrupt")
print ("GPios resettet")
Alles anzeigen