#include <WiFi.h>
#include <DHT.h>
#include <AzureIotHub.h>
#include <AzureIotHubClient.h>
#define DHTPIN 4 // Pin where the DHT11 data line is connected
#define DHTTYPE DHT11 // Define the type of DHT sensor used
// Replace these with your Azure IoT Hub credentials
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
const char* iotHubConnectionString = "YOUR_IOT_HUB_CONNECTION_STRING";
// Initialize DHT sensor
DHT dht(DHTPIN, DHTTYPE);
// Create an Azure IoT Hub client instance
AzureIoTHubClient iotHubClient;
void setup() {
Serial.begin(115200);
// Initialize the DHT sensor
dht.begin();
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("Connected to Wi-Fi");
// Initialize Azure IoT Hub client
iotHubClient.begin(iotHubConnectionString);
// Optionally: set up callbacks for device-to-cloud messages
}
void loop() {
// Read temperature and humidity from DHT11
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Check if any reads failed and exit early (to try again).
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Prepare the payload
String payload = "{\"temperature\":";
payload += temperature;
payload += ",\"humidity\":";
payload += humidity;
payload += "}";
// Send the payload to Azure IoT Hub
iotHubClient.sendMessage(payload.c_str());
// Print to Serial Monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.println(" %");
// Wait for a while before sending the next message
delay(10000); // Send every 10 seconds
}