import network
import time
import machine
import random
from umqtt.simple import MQTTClient
# --- Paramètres WiFi ---
WIFI_SSID = "Younesbl"
WIFI_PASSWORD = "test1234"
# --- Paramètres MQTT ---
MQTT_SERVER = "192.168.151.140" # Adresse IP de ton broker local
MQTT_PORT = 8883 # Port SSL/TLS
CLIENT_ID = "esp32_test_001"
TOPIC_PUB = b"esp32/test/random"
TOPIC_SUB = b"esp32/test/subscribe"
MQTT_USER = "clientmq1"
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=CLIENT_ID,
server=MQTT_SERVER,
port=MQTT_PORT,
user=MQTT_USER,
password=MQTT_PASSWORD,
keepalive=60,
ssl=True # Activation du SSL
# ssl_params={} # si tu veux rajouter du paramétrage SSL plus poussé
)
client.set_callback(mqtt_callback)
client.connect()
client.subscribe(TOPIC_SUB)
print("Connecté au broker MQTT (SSL) 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()