import Adafruit_DHT
import paho.mqtt.client as mqtt
import json
import time
# Sensor setup
SENSOR = Adafruit_DHT.DHT11
PIN = 15 # GPIO pin where DHT11 is connected
# MQTT setup
BROKER = "mqtt.eclipseprojects.io" # Example public broker
PORT = 1883
TOPIC = "iot/test/dht11"
client = mqtt.Client()
client.connect(BROKER, PORT, 60)
try:
while True:
humidity, temperature = Adafruit_DHT.read(SENSOR, PIN)
if humidity is not None and temperature is not None:
payload = {
"temperature": temperature,
"humidity": humidity
}
client.publish(TOPIC, json.dumps(payload))
print(f"Published: {payload}")
else:
print("Failed to read sensor data. Retrying...")
time.sleep(10)
except KeyboardInterrupt:
print("Program stopped by user")
client.disconnect()