SequentMicrosystems_API/scripts/speed_reader.py

24 lines
654 B
Python
Raw Normal View History

2025-01-14 18:30:53 +01:00
from src.variables.service import get_variable, set_variable
2025-01-14 19:41:53 +01:00
from gpiozero import Button
2025-01-14 18:30:53 +01:00
import datetime
2025-01-14 20:56:23 +01:00
pulses_per_rotation = 1
2025-01-14 22:06:41 +01:00
reader = Button(4, pull_up=False, bounce_time=0.0005)
2025-01-14 18:30:53 +01:00
set_variable("speed_reader_last_impulse_time", datetime.datetime.now(), False)
2025-01-14 19:41:53 +01:00
def event():
2025-01-14 18:30:53 +01:00
actual = datetime.datetime.now()
last = get_variable("speed_reader_last_impulse_time")
difference = (actual - last).total_seconds()
2025-01-14 20:56:23 +01:00
set_variable("speed_reader_last_impulse_time", actual, False)
2025-01-14 18:30:53 +01:00
2025-01-14 20:56:23 +01:00
rpm = (60 / difference) / pulses_per_rotation
2025-01-14 18:30:53 +01:00
2025-01-14 22:06:41 +01:00
set_variable("actual_rpm", round(rpm, 1), False)
2025-01-14 18:30:53 +01:00
2025-01-14 22:06:41 +01:00
reader.when_pressed = event
reader.when_activated