From 12753d93fbd63ab4d4d8b8ffbd94cd55cf0c9c90 Mon Sep 17 00:00:00 2001 From: Rahix Date: Sun, 24 Aug 2025 03:21:46 +0200 Subject: [PATCH] temp: Slow down reports Only send a new report every 200ms to hopefully mitigate the serial port glitches. --- Misc/Temp-Monitor/temperature_monitor.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Misc/Temp-Monitor/temperature_monitor.py b/Misc/Temp-Monitor/temperature_monitor.py index 7ed89d8..8169aac 100644 --- a/Misc/Temp-Monitor/temperature_monitor.py +++ b/Misc/Temp-Monitor/temperature_monitor.py @@ -1,4 +1,5 @@ import math +import time from cs1237 import CS1237 from machine import Pin @@ -10,7 +11,7 @@ ADC_RATE = 40 cs1237 = CS1237(clock, data) cs1237.config(gain=1, rate=ADC_RATE) -print(repr(cs1237.get_config())) +cs1237.get_config() THERMISTOR_BETA = 3950.0 THERMISTOR_R25 = 10e3 @@ -22,6 +23,7 @@ FILTER_RC = 1 FILTER_A = 1 / ADC_RATE / (FILTER_RC / 1 / ADC_RATE) temperature_filtered = 25 +last_report = time.ticks_ms() while True: raw_value = cs1237.read() value = float(raw_value) / (2**24 - 1) @@ -37,4 +39,8 @@ while True: temperature_filtered * (1 - FILTER_A) + temperature * FILTER_A ) - print(temperature_filtered) + now = time.ticks_ms() + elapsed = now - last_report + if elapsed >= 200 or elapsed < 0: + print(f"{temperature_filtered:.6f}") + last_report = now