LoRa, MQTT and Oled

This commit is contained in:
2026-07-16 16:32:50 +02:00
parent 1df9d878ca
commit aa60f5bca1
31 changed files with 3367 additions and 21 deletions
@@ -0,0 +1,64 @@
"""Small CPython MQTT example.
Listens and prints all received messages on the subscribed channel continuously.
Set MQTT_BROKER_HOST to the broker IP address, not localhost.
"""
import os
import time
from pathlib import Path
from shared.mqtt import BrokerClient
BROKER_HOST = os.getenv("MQTT_BROKER_HOST", "192.168.50.1")
TOPIC = "smartwave/demo"
USE_TLS = os.getenv("MQTT_CLIENT_TLS", "true").lower() in {"1", "true", "yes", "on"}
CA_FILE = os.getenv(
"MQTT_CA_FILE",
str(Path(__file__).resolve().parents[2] / "orchestrateur" / "mqtt" / "certs" / "ca.crt"),
)
def main():
client = BrokerClient(
host=BROKER_HOST,
client_id="zephyrus",
use_tls=USE_TLS,
cafile=CA_FILE,
keepalive=30,
)
print(f"Connexion au broker: {BROKER_HOST}...")
client.connect()
print(f"Souscription au topic: {TOPIC}...")
client.subscribe(TOPIC, qos=2)
print("En attente de messages... (Appuyez sur Ctrl+C pour quitter)")
try:
while True:
# Traite le réseau et récupère les paquets MQTT entrants
client.poll(0.1)
# Récupère le message dans la file d'attente de la librairie
message = client.get_message()
if message is not None:
# Décodage du payload pour un affichage plus propre en texte
try:
payload_str = message['payload'].decode('utf-8')
except Exception:
payload_str = message['payload']
print(f"[{message['topic']}] reçu : {payload_str}")
except KeyboardInterrupt:
print("\nArrêt utilisateur")
finally:
client.close()
print("Connexion MQTT fermée.")
if __name__ == "__main__":
main()