Sensormatten programmieren

OP #7846331
Lesenswert?

Könnte mir jemand bei folgendem Projekt behilflich sein?

Ich möchte gerne eine Sensormatte programmieren, die bei betreten der Matte einen Befehl auslöst. Sie soll als Einbruchsprävention dienen. Bei betreten der Matte ab 22 Uhr und einem Gewicht größer 50kg soll der Gartensprenger angehen und den potentiellen Einbrecher nassspritzen.

Ich würde mich über Eure Hilfe freuen. Viele Grüße Philipp

#7846350
Lesenswert?

Na klar! Das Tolle an der PC-Programmierung ist ja, dass es insbesondere nicht notwendig ist, die verwendete Hardware und Schnittstellen zur Ansteuerung zu spezifizieren. Hier mal ein Code für den Raspberry Pi. Die Logik wird durch Prolog spezifiziert, während Python-Code für die Hardware-Ansteuerung verantwortlich ist.

1
from pyswip import Prolog
2
import RPi.GPIO as GPIO
3
import time
4

5
# GPIO initialisieren
6
GPIO.setmode(GPIO.BCM)  # Verwenden des Broadcom-Numberings
7
GPIO.setup(15, GPIO.OUT)  # GPIO-Pin 15 als Ausgang konfigurieren
8

9
# Prolog-Initialisierung
10
prolog = Prolog()
11

12
# Prolog-Logik einbetten
13
prolog.assertz("einbrecher_erkannt(Zeit, Gewicht) :- Zeit >= 22, Gewicht > 50")
14
prolog.assertz("aktion_sprenger_an(Zeit, Gewicht) :- einbrecher_erkannt(Zeit, Gewicht)")
15

16
# Funktion zur Steuerung des Gartensprengers
17
def schalte_gartensprenger_an():
18
    GPIO.output(15, GPIO.HIGH)  # GPIO-Pin 15 aktivieren
19
    print("Gartensprenger aktiviert!")
20
    time.sleep(5)  # Sprinkler für 5 Sekunden aktiv halten
21
    GPIO.output(15, GPIO.LOW)  # GPIO-Pin 15 deaktivieren
22
    print("Gartensprenger deaktiviert!")
23

24
# Funktion zur Überprüfung der Sensordaten
25
def überprüfe_matte(zeit, gewicht):
26
    abfrage = list(prolog.query(f"aktion_sprenger_an({zeit}, {gewicht})"))
27
    if abfrage:
28
        schalte_gartensprenger_an()
29
    else:
30
        print("Keine Aktion erforderlich.")
31

32
# Beispiel: Simulation der Sensormatte
33
try:
34
    while True:
35
        # Sensordaten simulieren (hier durch Benutzereingabe)
36
        aktuelle_zeit = int(input("Geben Sie die aktuelle Stunde ein (0-23): "))
37
        gemessenes_gewicht = float(input("Geben Sie das gemessene Gewicht ein (kg): "))
38

39
        überprüfe_matte(aktuelle_zeit, gemessenes_gewicht)
40
        time.sleep(1)  # Wiederholung alle 1 Sekunde
41
except KeyboardInterrupt:
42
    print("Programm beendet.")
43
finally:
44
    GPIO.cleanup()  # GPIO-Pins zurücksetzen
Gast #7846355
Lesenswert?

Woher sollen wir wissen, ob und wie deine unbekannte Sesormatte programmierbar ist? So wie du fragst, hast du vermutlich noch nie etwas programmiert und auch noch keine Sensormatte in der Hand gehabt.

Suche dir erst mal eine konkrete Sensormatte aus, die auf das gewünschte Gewicht reagiert. Dann schauen wir weiter.

Die Sache mit dem Gartensprenger solltest du nochmal überdenken. Ich würde nicht den Garten sprengen wollen. Ein Rasensprinkler ginge schon eher, ist aber im Winter aus mehreren Gründen problematisch. Du kommst bestimmt selbst drauf, wenn du etwas länger darüber nachdenkst.

#7846400
Lesenswert?

Schlachte doch einfach die Sensoren aus einer Personenwaage aus, kleb die unter einer Matte und schließ das ganze an GPIO eines Raspberry's an oder so - Dann kannst du deine Programmiersprache frei wählen (ob nun Python, C++, Java oder gar Javascript mittels Node.js wäre Wurscht).

(Firma: Q3) #7847153
Lesenswert?

Eine Sensormatte ist genau das, was der Name verspricht, ein mattenförmiger Sensor. Ein Sensor ist per Definition erstmal nur ein Wandler einer nicht-elektrischen Größe (hier mechanischer Druck)in die Veränderung einer zunächst analogen elektische Größe, z.B. Widerstand, Kapazität oder Induktivität.

Folgen aus diesen Änderungen wie Frequenzen, Strom, Spannung, PWM-Verhältnisse oder Schaltvorgänge sind schon sekundär und werden durch eine nachfolgene Elektronik realisiert.

Das muss dann nur noch digitalisiert oder direkt ausgewertet werden ... an der Matte selbst wird dabei nichts programmiert.

#7847290
Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:

ie Sache mit dem Gartensprenger solltest du nochmal überdenken. Ich würde nicht den Garten sprengen wollen. Ein Rasensprinkler ginge schon eher, ist aber im Winter aus mehreren Gründen problematisch.

Den Sprinkler braucht man erst nach der Sprengung, um das Feuer zu löschen. Aber wer hat schon einen überdachten Rasen?

Jens B. schrieb:

Ach, ein paar Gramm C2, ein Zünder, und schon hat sich das erledigt.

Was hat Citroen damit zu tun? Ich würde Zeh4 nehmen.

Also wenn schon Zitrön, dann den Klassiker 2CV.

F. schrieb:

Welche Katze bringt schon 50 kg auf die Waage?

Tiger.

Die sind bei uns recht selten geworden. Aber klar, wenn doch mal einer vorbei kommt, ist es gut, die Gewissheit zu haben, dass er nassgespritzt wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren