From c6c49a18bf3c26e5fb9261f1c151175ebeb445bf Mon Sep 17 00:00:00 2001 From: Jan Benicek Date: Thu, 16 Jan 2025 06:21:17 +0100 Subject: [PATCH] speed_reader update test #3 --- scripts/speed_reader.py | 14 ++++++++++++-- scripts/timer.py | 3 ++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/scripts/speed_reader.py b/scripts/speed_reader.py index 0a3115c..a075d5d 100644 --- a/scripts/speed_reader.py +++ b/scripts/speed_reader.py @@ -6,7 +6,8 @@ pulses_per_rotation = 4 reader = Button(4, pull_up=False, bounce_time=0.0005) set_variable("speed_reader_last_impulse_time", datetime.datetime.now(), False) set_variable("actual_rpm_unfiltered", 0, False) -set_variable("impulses", 1, False) +set_variable("impulses", 0, False) +set_variable("last_impulse_time", datetime.datetime.now(), False) def event(): @@ -27,8 +28,17 @@ def event(): def new_event(): set_variable("impulses", int(get_variable("impulses")) + 1, False) - print(get_variable("impulses")) +def speed_calc(): + now = datetime.datetime.now() + last_time = datetime.datetime(get_variable("last_impulse_time")) + impulses = int(get_variable("impulses")) + set_variable("impulses", 0, False) + time_delta = (now - last_time).total_seconds() + + actual_rpm = (impulses/pulses_per_rotation) * (60/time_delta) + set_variable("actual_rpm", round(actual_rpm, 1), False) + diff --git a/scripts/timer.py b/scripts/timer.py index 0e6cbca..a9328b2 100644 --- a/scripts/timer.py +++ b/scripts/timer.py @@ -19,4 +19,5 @@ from scripts.fan_controller import fan_control scheduler.add_job(fan_control, trigger=IntervalTrigger(minutes=1)) #speed_reader -import scripts.speed_reader +import scripts.speed_reader as speed_reader +scheduler.add_job(speed_reader.speed_calc, trigger=IntervalTrigger(seconds=0.5))