add more averaging to speed reader.py
This commit is contained in:
parent
d78ac03500
commit
5aded9f031
2 changed files with 31 additions and 4 deletions
|
@ -1,11 +1,15 @@
|
||||||
from src.variables.service import get_variable, set_variable
|
from src.variables.service import get_variable, set_variable
|
||||||
from gpiozero import Button
|
from gpiozero import Button
|
||||||
import datetime, os
|
import datetime, os, json
|
||||||
|
|
||||||
pulses_per_rotation = 4
|
pulses_per_rotation = 4
|
||||||
reader = Button(4, pull_up=False, bounce_time=0.0005)
|
reader = Button(4, pull_up=False, bounce_time=0.0005)
|
||||||
set_variable("speed_reader_last_impulse_time", datetime.datetime.now(), False)
|
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):
|
def printer(text):
|
||||||
if bool(os.getenv("DEBUG")):
|
if bool(os.getenv("DEBUG")):
|
||||||
|
@ -19,8 +23,23 @@ def event():
|
||||||
|
|
||||||
rpm = (60 / difference) / pulses_per_rotation
|
rpm = (60 / difference) / pulses_per_rotation
|
||||||
|
|
||||||
actual_rpm = (float(get_variable("actual_rpm_unfiltered")) + rpm) / 2
|
#actual_rpm = (float(get_variable("actual_rpm_unfiltered")) + rpm) / 2
|
||||||
set_variable("actual_rpm_unfiltered", rpm, False)
|
#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)
|
set_variable("actual_rpm", round(actual_rpm, 1), False)
|
||||||
printer("Measured RPM: {}".format(round(actual_rpm, 1)))
|
printer("Measured RPM: {}".format(round(actual_rpm, 1)))
|
||||||
|
|
|
@ -4,6 +4,7 @@ from dotenv import load_dotenv
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
from src.modules.router import router as modulesrouter
|
from src.modules.router import router as modulesrouter
|
||||||
from src.variables.router import router as variablesrouter
|
from src.variables.router import router as variablesrouter
|
||||||
|
|
||||||
|
@ -13,6 +14,13 @@ import scripts.timer
|
||||||
|
|
||||||
app = FastAPI(root_path="/api")
|
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=modulesrouter)
|
||||||
app.include_router(router=variablesrouter)
|
app.include_router(router=variablesrouter)
|
||||||
|
|
Loading…
Add table
Reference in a new issue