import network
import time
import dht
from machine import Pin
from simple import MQTTClient
WIFI_SSID = "Mohamed-Guest"
WIFI_PASSWORD = ""
MQTT_BROKER = "broker.hivemq.com"
CLIENT_ID = "wokwi-client"
TOPIC = b"wokwi/iot/1102005/led17"
TEMP_TOPIC = b"wokwi/iot/1102005/temp"
led = Pin(17, Pin.OUT)
sensor = dht.DHT22(Pin(15))
prev_message = ""
print("Connecting to WiFi...")
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(WIFI_SSID, WIFI_PASSWORD)
while not wifi.isconnected():
time.sleep(0.1)
print("WiFi Connected!")
def callback(topic, msg):
print("Message received:", msg)
if msg == b'on':
print("LED ON")
led.value(1)
elif msg == b'off':
print("LED OFF")
led.value(0)
print("Connecting to MQTT...")
client = MQTTClient(CLIENT_ID, MQTT_BROKER)
client.set_callback(callback)
client.connect()
print("MQTT Connected!")
while True:
try:
client.subscribe(TOPIC)
client.check_msg()
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
message = f"Temp: {temp}C, Humidity: {hum}%"
print(message)
if message != prev_message:
client.publish(TEMP_TOPIC, message)
prev_message = message
print("Data sent!")
except Exception as e:
print("Error:", e)
time.sleep(2)