from machine import Pin
import dht
import time
import network
import json
from simple import MQTTClient
# ================= WIFI =================
SSID = "Wokwi-GUEST"
PASSWORD = ""
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(SSID, PASSWORD)
print("Connexion WiFi...")
while not wifi.isconnected():
time.sleep(1)
print("WiFi connecté:", wifi.ifconfig())
# ================= MQTT (SANS SSL) =================
MQTT_SERVER = "broker.hivemq.com" # public broker
MQTT_PORT = 1883
TOPIC_PUB = "pico/test/data"
TOPIC_SUB = "pico/test/control"
client = MQTTClient("pico-client", MQTT_SERVER, MQTT_PORT)
# ================= CALLBACK =================
def mqtt_callback(topic, msg):
print("Message reçu:", topic, msg)
client.set_callback(mqtt_callback)
# ================= CONNEXION =================
client.connect()
print("MQTT connecté")
client.subscribe(TOPIC_SUB)
# ================= CAPTEUR =================
dht_22 = dht.DHT22(Pin(15))
time.sleep(2)
# ================= BOUCLE =================
while True:
try:
client.check_msg()
dht_22.measure()
temp = dht_22.temperature()
hum = dht_22.humidity()
data = {
"temperature": temp,
"humidity": hum
}
payload = json.dumps(data)
client.publish(TOPIC_PUB, payload)
print("Envoyé:", payload)
except Exception as e:
print("Erreur:", e)
time.sleep(3)