import network
import time
import machine
import random
from umqtt.simple import MQTTClient
# --- Paramètres WiFi ---
WIFI_SSID = "Younesbl" # Remplace par ton vrai SSID
WIFI_PASSWORD = "test1234" # Remplace par ton vrai mot de passe
# --- Paramètres MQTT ---
MQTT_SERVER = "192.168.151.140" # Tu peux aussi tester avec "test.mosquitto.org"
CLIENT_ID = "esp32_test_001"
TOPIC_PUB = b"esp32/test/random"
TOPIC_SUB = b"esp32/test/subscribe"
MQTT_USER = "clientmq1" # Authentification au niveau brocker
MQTT_PASSWORD = "clientmq1"
# --- Connexion WiFi ---
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print("Connexion au WiFi...")
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
while not wlan.isconnected():
time.sleep(0.5)
print(".", end="")
print("\nConnecté au WiFi:", wlan.ifconfig())
# --- Callback lors de la réception d'un message MQTT ---
def mqtt_callback(topic, msg):
print("Message reçu - Topic:", topic.decode(), "Message:", msg.decode())
# --- Connexion MQTT ---
def connect_mqtt():
client = MQTTClient(CLIENT_ID, MQTT_SERVER, user=MQTT_USER, password=MQTT_PASSWORD, keepalive=60)
client.set_callback(mqtt_callback)
client.connect()
client.subscribe(TOPIC_SUB)
print("Connecté au broker MQTT et abonné au topic:", TOPIC_SUB.decode())
return client
# --- Programme principal ---
connect_wifi()
mqtt_client = connect_mqtt()
try:
while True:
# Publier un chiffre aléatoire
random_value = random.randint(0, 100)
mqtt_client.publish(TOPIC_PUB, str(random_value))
print("Publié :", random_value)
# Vérifier s'il y a des messages MQTT entrants
mqtt_client.check_msg()
# Attente 5 secondes
time.sleep(5)
except KeyboardInterrupt:
print("Arrêt du programme")
mqtt_client.disconnect()