Files
SmartTrash2026/mqtt_to_db.py
2026-05-07 11:10:05 +02:00

66 lines
1.5 KiB
Python

import paho.mqtt.client as mqtt
import mysql.connector
import json
import time
print("Projet lance...")
db = None
while db is None:
try:
db = mysql.connector.connect(
host="127.0.0.1",
user="web_user",
password="poubelle2026",
database="smart_bins"
)
print("Connecte a la base de donnees !")
except Exception:
print("En attente de la base de donnees...")
time.sleep(5)
cursor = db.cursor()
def on_message(client, userdata, msg):
try:
data = json.loads(msg.payload.decode())
print("recu :", data)
sql = """
INSERT INTO mesures (id_poubelle, niveau, poids, temperature, batterie)
VALUES (%s, %s, %s, %s, %s)
"""
values = (
data.get("id_poubelle", 1),
data.get("niveau", 0),
data.get("poids", 0),
data.get("temperature", 0),
data.get("batterie", 100)
)
cursor.execute(sql, values)
db.commit()
print("Enregistre en DB")
except Exception as e:
print("Erreur :", e)
client = mqtt.Client()
mqtt_connected = False
while not mqtt_connected:
try:
client.connect("localhost", 1883, 60)
mqtt_connected = True
print("Connecte au broker MQTT !")
except Exception:
print("En attente du broker MQTT...")
time.sleep(5)
client.subscribe("smart_trash/data")
client.on_message = on_message
print("En attente des donnees MQTT...")
client.loop_forever()