import network
import time
from machine import Pin
import dht
import ujson
from umqtt.simple import MQTTClient
import machine
# MQTT Server Parameters
MQTT_CLIENT_ID = "micropython-radiator"
MQTT_TOPIC = "current temperature"
dir_pin = machine.Pin(12,machine.Pin.OUT)
step_pin = machine.Pin(14,machine.Pin.OUT)
def move_stepperfw(direct,steps, delay, accel):
dir_pin.value(direct)
steps = abs(steps)
for i in range(steps):
step_pin.value(1)
time.sleep_us(delay)
step_pin.value(0)
time.sleep_us(delay)
def move_stepperbw(direct,steps, delay, accel):
step_pin.value(direct)
steps = abs(steps)
for i in range(steps):
step_pin.value(1)
time.sleep_us(delay)
step_pin.value(0)
time.sleep_us(delay)
def stop_stepper():
step_pin.value(0)
dir_pin.value(0)
sensor = dht.DHT22(Pin(15))
print("Connecting to WiFi", end="")
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('Wokwi-GUEST', '')
while not sta_if.isconnected():
print(".", end="")
time.sleep(0.1)
print(" Connected!")
prev_weather = ""
while True:
print("Measurement...", end="")
sensor.measure()
message = ujson.dumps({
"temperature": sensor.temperature(),
"humidity": sensor.humidity(),
})
if message != prev_weather:
print("Updated!")
print(" {}: {}".format(MQTT_TOPIC, message))
prev_weather = message
else:
if sensor.temperature() < (17.0):
print("Increase temperature ")
move_stepperfw(1,200,2000,5)
stop_stepper()
else:
if sensor.temperature() > (22):
print("reduce temperature")
move_stepperbw(1,200,2000,5)
stop_stepper()
else:
print("temperature normal")
time.sleep(20)
time.sleep(10)
time.sleep(1)