import boto3
import Adafruit_DHT
import json
import time
# AWS IoT Core endpoint
iot_endpoint = "your-iot-endpoint.iot.region.amazonaws.com"
# AWS IoT Thing credentials
client_id = "your-client-id"
thing_name = "your-thing-name"
root_ca_path = "/path/to/root-CA.crt"
certificate_path = "/path/to/certificate.pem.crt"
private_key_path = "/path/to/private.pem.key"
# DHT22 setup
sensor = Adafruit_DHT.DHT22
pin = 4
# Initialize AWS IoT client
client = boto3.client('iot-data', region_name='your-region', endpoint_url=f"https://{iot_endpoint}")
while True:
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
if humidity is not None and temperature is not None:
payload = {
"temperature": temperature,
"humidity": humidity
}
client.publish(
topic=f"your/topic",
qos=1,
payload=json.dumps(payload)
)
print('Published: ', payload)
else:
print('Failed to retrieve data from sensor')
time.sleep(10) # Publish data every 10 seconds