Refactor main.py: replace manual temperature sensor initialization with dynamic configuration from SENSOR_CONFIG
This commit is contained in:
parent
35558805b2
commit
4ef7b00b74
45
main.py
45
main.py
@ -3,7 +3,7 @@ import time
|
|||||||
from scripts.networking import connect_wifi
|
from scripts.networking import connect_wifi
|
||||||
from scripts.discord_webhook import send_discord_message
|
from scripts.discord_webhook import send_discord_message
|
||||||
from scripts.monitors import TemperatureMonitor, WiFiMonitor, run_monitors
|
from scripts.monitors import TemperatureMonitor, WiFiMonitor, run_monitors
|
||||||
from scripts.temperature_sensor import TemperatureSensor
|
from scripts.temperature_sensor import get_configured_sensors, SENSOR_CONFIG
|
||||||
|
|
||||||
# Initialize pins (LED light onboard)
|
# Initialize pins (LED light onboard)
|
||||||
led = Pin("LED", Pin.OUT)
|
led = Pin("LED", Pin.OUT)
|
||||||
@ -16,34 +16,33 @@ wifi = connect_wifi(led)
|
|||||||
if wifi and wifi.isconnected():
|
if wifi and wifi.isconnected():
|
||||||
send_discord_message("Pico W online and connected ✅")
|
send_discord_message("Pico W online and connected ✅")
|
||||||
|
|
||||||
# Initialize temperature sensors
|
# Get configured sensors
|
||||||
inside_sensor = TemperatureSensor(pin=10, label="Inside")
|
sensors = get_configured_sensors()
|
||||||
outside_sensor = TemperatureSensor(pin=11, label="Outside")
|
|
||||||
|
|
||||||
# Set up monitors
|
# Set up monitors
|
||||||
monitors = [
|
monitors = [
|
||||||
WiFiMonitor(wifi, led, interval=5, reconnect_cooldown=60),
|
WiFiMonitor(wifi, led, interval=5, reconnect_cooldown=60),
|
||||||
TemperatureMonitor(
|
|
||||||
sensor=inside_sensor,
|
|
||||||
label="Inside",
|
|
||||||
interval=300, # 5 minutes
|
|
||||||
alert_high=85.0,
|
|
||||||
alert_low=32.0,
|
|
||||||
log_file="/temp_logs.csv"
|
|
||||||
),
|
|
||||||
TemperatureMonitor(
|
|
||||||
sensor=outside_sensor,
|
|
||||||
label="Outside",
|
|
||||||
interval=300, # 5 minutes
|
|
||||||
alert_high=100.0,
|
|
||||||
alert_low=20.0,
|
|
||||||
log_file="/temp_logs.csv"
|
|
||||||
),
|
|
||||||
# Add more monitors here later:
|
|
||||||
# SoilMoistureMonitor(pin=26, interval=600),
|
|
||||||
# LightLevelMonitor(pin=27, interval=900),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Add temperature monitors from config
|
||||||
|
for key, sensor in sensors.items():
|
||||||
|
config = SENSOR_CONFIG[key]
|
||||||
|
|
||||||
|
# Inside temp alerts go to separate channel
|
||||||
|
send_to_alert_channel = (key == 'inside')
|
||||||
|
|
||||||
|
monitors.append(
|
||||||
|
TemperatureMonitor(
|
||||||
|
sensor=sensor,
|
||||||
|
label=config['label'],
|
||||||
|
interval=300, # 5 minutes
|
||||||
|
alert_high=config['alert_high'],
|
||||||
|
alert_low=config['alert_low'],
|
||||||
|
log_file="/temp_logs.csv",
|
||||||
|
send_alerts_to_separate_channel=send_to_alert_channel
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
# Main monitoring loop
|
# Main monitoring loop
|
||||||
while True:
|
while True:
|
||||||
run_monitors(monitors)
|
run_monitors(monitors)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user