Folgender Aufbau:
Ein Abstand-Sensor führt eine Entfernungsmessung durch und überträgt im Sekundenabstand via serieller Schnittstelle die Daten an einen RPi.
Somit ist eine Ermittlung möglich, ob sich ein Objekt im Empfangsbereich befindet (Messwert ist kleiner) oder nicht (Messwert ist größer).
Zum Testen werden die Daten zur Verarbeitung an ThingSpeak weiter gereicht.
(siehe bisherigen Code)
Code: Alles auswählen
import serial
import time
import thingspeak
channel_id = xxxxxxx
write_key = 'xxxxxxxxxxxxxxxxxx'
a=0
ser = serial.Serial('/dev/ttyAMA0',19200)
ser.flushInput()
channel=thingspeak.Channel(id=channel_id,write_key=write_key)
while 'true':
a=ser.readline()
time.sleep(0.1)
print(a)
response = channel.update({1:a})
time.sleep(0.090)
Nun soll der RPi/Python nicht die einzelen Abstandswerte,
sondern lediglich den jeweiligen Zustand (Objekt im Emfangsbereich vorhanden=1 /nicht vorhanden=0)
resultierend aus den Abstands-Messwerten berechnen und ausgeben.
Hierzu hätte ich nun folgende Annahme bzw. Idee zur Umsetzung,
Annahme:
Der Zustand/Abstand, Objekt im Empfangsbereich "nicht vorhanden" (0) ist absolut, da der Abstand vorgegeben und unveränderlich ist.
Der Zustand/Abstand, Objekt im Empfangsbereich "vorhanden" (1) ist relativ, beinflusst durch Form und Größe können die Messwerte leicht variieren.
Idee:
Eine Messung soll alle 30 Sekunden erfolgen.
Nun wird aus den Abstands-Messwerten die in 30 Sekunden gesammelt wurden ein Mittelwert errechnet.
Basierend auf einen Vergleich des Mittelwertes wird der Zustand dargestellt.
Beispiel:
Wenn der Mittelwert aus 30 Abstands-Messwerten <=2(Meter) ergibt, Dann Wert=1 (Objekt im Emfangsbereich VORHANDEN)
Wenn der Mittelwert aus 30 Abstands-Messwerten >2(Meter) ergibt, Dann Wert=0 (Objekt im Emfangsbereich NICHT VORHANDEN)
Geht meine Idee soweit in die richtige Richtung?
Wie geht man das am Besten an?
Ich bin für jeden Hinweis sehr dankbar.
Vielen Dank und schöne Grüße!
Rene