from machine import Pin, PWM
import dht
import time
servo_pin = 2 # GPIO for controlling the servo
sensor_pin = 4 # GPIO for DHT22 sensor
servo = PWM(Pin(servo_pin), freq=50) # Initialize PWM for servo motor at 50Hz
dht_sensor = dht.DHT22(Pin(sensor_pin)) # Initialize DHT22 sensor
def read_temperature_humidity():
dht_sensor.measure()
temperature = dht_sensor.temperature()
humidity = dht_sensor.humidity()
return temperature, humidity
def adjust_servo_based_on_temp():
temperature, _ = read_temperature_humidity()
duty_cycle = int((temperature / 50) * 102) + 40 # Map temperature (0-50°C) to PWM duty cycle
servo.duty(duty_cycle) # Adjust servo position based on temperature
def adjust_servo_based_on_humidity():
_, humidity = read_temperature_humidity()
duty_cycle = int((humidity / 100) * 102) + 40 # Map humidity (0-100%) to PWM duty cycle
servo.duty(duty_cycle) # Adjust servo position based on humidity
while True:
adjust_servo_based_on_temp() # or use adjust_servo_based_on_humidity() for humidity control
time.sleep(2) # Delay between sensor readings