from machine import Pin, PWM
from dht22 import DHT22
from time import sleep
servo = PWM(Pin(2), freq=50, duty=0)
dht = DHT22(17, 'MyDHT')
def pwm_angle(angle: float) -> float:
return int(((angle)/180 *2 + 0.5) / 20 * 1023)
def temp_to_angle(temperature: float) -> float:
# 80 -> 180
# temp -> angle
# 80 * angle = 180 * temp
angle_number = 0
if temperature > 10:
angle_number = 180 * temperature / 80
return pwm_angle(angle_number)
while True:
temperature = dht.get_temperature_celsius()
pwm = temp_to_angle(temperature)
servo.duty(pwm)
sleep(1)