import machine
import time
import dht
from machine import Pin
import _thread
# DHT22 sensor setup
dht_sensor = dht.DHT22(Pin(6)) # Adjust the pin according to your setup
# Shared variables for temperature and humidity
temperature = None
humidity = None
# Mutex for shared resource access
mutex = _thread.allocate_lock()
# Task 1: Temperature Monitoring
def temperature_monitoring_task():
global temperature, humidity
while True:
try:
dht_sensor.measure()
temp = dht_sensor.temperature()
hum = dht_sensor.humidity()
# Safely update shared variables using mutex
mutex.acquire()
temperature = temp
humidity = hum
mutex.release()
print(f"Temperature: {temperature}°C, Humidity: {humidity}%")
except Exception as e:
print(f"Error reading sensor: {e}")
# Delay for 2 seconds (2000 milliseconds)
time.sleep(2)
# Create FreeRTOS task
_thread.start_new_thread(temperature_monitoring_task, ())