from machine import ADC, Pin
import time
# SENSOR CLASS
class TemperatureSensor:
def __init__(self, pin):
self.adc = ADCPin(pin))
self.adc.atten(ADC.ATTN_11DB)
a
def read(self):
# Convert ADC value to percentage (0–100)
return (self.adc.read() / 4095) * 100
#LED CLASS
class LED:
def __init__(self, pin):
self.led = Pin(pin, Pin.OUT)
def on(self):
self.led.value(1)
def off(self):
self.led.value(0)
# ---------------- OBJECT CREATION ----------------
temp_sensor = TemperatureSensor(34)
red_led = LED(26) # WARNING
green_led = LED(27) # CRITICAL (buzzer simulation)
# ---------------- THRESHOLDS ----------------
WARNING_LEVEL = 50
CRITICAL_LEVEL = 80
# ---------------- MAIN LOOP ----------------
while True:
temp = temp_sensor.read()
print("Temperature:", round(temp, 2), "%")
# ---------------- STATE MACHINE ----------------
# NORMAL STATE (SAFE)
if temp < WARNING_LEVEL:
state = "NORMAL"
red_led.off()
green_led.off()
# WARNING STATE
elif WARNING_LEVEL <= temp < CRITICAL_LEVEL:
state = "WARNING"
red_led.on()
green_led.off()
# CRITICAL STATE
else:
state = "CRITICAL"
red_led.off()
green_led.on() # alarm simulation
print("STATE:", state)
time.sleep(1)