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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.