Vous êtes sur la page 1sur 3

import paho.mqtt.

client as mqtt

import time

import Adafruit_DHT

import json

# clé de token Ubidots

TOKEN = "BBFF-I6i4Xrq4StlKWdfWYI95E2OAWtRvZU"

# Adresse du broker MQTT d'Ubidots

BROKER_URL = "industrial.api.ubidots.com"

# Topic MQTT que l'on souhaite utiliser sur Ubidots

MQTT_TOPIC = "/v1.6/devices/172.18.20.182"

# Délai entre les publications MQTT (en secondes)

INTERVAL = 2

# Liste des variables que vous souhaitez publier

VARIABLES = ["temperature", "humidity"]

# Fonction de rappel lors de la connexion au broker MQTT

def on_connect(client, userdata, flags, rc):

print("Code de connexion : " + str(rc) + ", flags : " + str(flags))

try:
client = mqtt.Client()

client.on_connect = on_connect

client.username_pw_set(username=TOKEN, password='') # Utilisez votre TOKEN comme nom


d'utilisateur, mot de passe vide

client.connect(host=BROKER_URL)

client.loop_start()

while True:

# Lecture de la température et de l'humidité depuis le capteur DHT11

humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, 16)

print(f"Température : {temperature} °C, Humidité : {humidity} %")

# Création d'un dictionnaire contenant les données

data = {"temperature": temperature, "humidity": humidity}

print(data)

print(type(data))

# Conversion des données en format JSON

payload = json.dumps(data)

# Publication des données sur le topic MQTT

client.publish(topic=MQTT_TOPIC, payload=payload, qos=0)

# 2 eme Méthode

# if "temperature" in VARIABLES:

# MQTT_TOPIC = "/v1.6/devices/172.18.20.182/temperature" # Remplacez par le topic Ubidots


que vous souhaitez utiliser

# client.publish(topic=MQTT_TOPIC, payload=temperature, qos=0) # Publier les données avec une


qualité de service (QoS) de 0

# print(f"Published data: {temperature} to topic: {MQTT_TOPIC,}")

# if "humidity" in VARIABLES:

# MQTT_TOPIC = "/v1.6/devices/172.18.20.182/humidity" # Remplacez par le topic Ubidots que


vous souhaitez utiliser

# client.publish(topic=MQTT_TOPIC, payload=humidity, qos=0) # Publier les données avec une


qualité de service (QoS) de 0

# print(f"Published data: {humidity} to topic: {MQTT_TOPIC,}")

time.sleep(INTERVAL)

client.loop_stop()

except KeyboardInterrupt:

pass

Vous aimerez peut-être aussi