add more averaging to speed reader.py

This commit is contained in:
Jan Beníček 2025-01-22 10:02:54 +01:00
parent d78ac03500
commit 5aded9f031
2 changed files with 31 additions and 4 deletions

View file

@ -1,11 +1,15 @@
from src.variables.service import get_variable, set_variable
from gpiozero import Button
import datetime, os
import datetime, os, json
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("actual_rpm_unfiltered", 0, False)
set_variable("rpm_filter", json.dumps([0]), False)
if get_variable("rpm_filter_count") == None:
set_variable("rpm_filter_count", 8, True)
def printer(text):
if bool(os.getenv("DEBUG")):
@ -19,8 +23,23 @@ def event():
rpm = (60 / difference) / pulses_per_rotation
actual_rpm = (float(get_variable("actual_rpm_unfiltered")) + rpm) / 2
set_variable("actual_rpm_unfiltered", rpm, False)
#actual_rpm = (float(get_variable("actual_rpm_unfiltered")) + rpm) / 2
#set_variable("actual_rpm_unfiltered", rpm, False)
rpm_filter = json.loads(get_variable("rpm_filter"))
print(rpm_filter)
while len(rpm_filter) > int(get_variable("rpm_filter_count")):
rpm_filter.remove(rpm_filter[0])
rpm_filter.append(rpm)
set_variable("rpm_filter", json.dumps(rpm_filter), False)
average = 0
for i in rpm_filter:
average = average + i
actual_rpm = average / len(rpm_filter)
set_variable("actual_rpm", round(actual_rpm, 1), False)
printer("Measured RPM: {}".format(round(actual_rpm, 1)))

View file

@ -4,6 +4,7 @@ from dotenv import load_dotenv
load_dotenv()
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from src.modules.router import router as modulesrouter
from src.variables.router import router as variablesrouter
@ -13,6 +14,13 @@ import scripts.timer
app = FastAPI(root_path="/api")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Can also use ["*"] to allow all origins
allow_credentials=True, # Allow cookies or authentication credentials
allow_methods=["*"], # Allow all HTTP methods
allow_headers=["*"], # Allow all headers
)
app.include_router(router=modulesrouter)
app.include_router(router=variablesrouter)