#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <SinricPro.h>
#include <SinricProTemperaturesensor.h>
#include "DHT.h"
// ====== WiFi Credentials ======
const char* ssid = "Wokwi-GUEST"; // Wokwi default WiFi
const char* password = ""; // no password
// ====== Sinric Pro Credentials ======
// đ yaha apna khud ka App Key, Secret aur Device ID dalna
#define APP_KEY "67c6c08c-75cd-475b-a2d2-158fe3ce2d5c"
#define APP_SECRET "67c6c08c-75cd-475b-a2d2-158fe3ce2d5c"
#define DEVICE_ID "68bbc4f5b26fa2c215e6fdec"
// ====== DHT22 Setup ======
#define DHTPIN 4 // DHT22 Data pin -> GPIO4
#define DHTTYPE DHT22 // DHT22 sensor
DHT dht(DHTPIN, DHTTYPE);
// ====== Update Interval (milliseconds) ======
unsigned long lastUpdate = 0;
unsigned long interval = 60000; // 60 sec me ek baar data bhejna
// ====== Optional Power State Callback ======
bool onPowerState(const String &deviceId, bool &state) {
Serial.printf("Device %s turned %s\r\n", deviceId.c_str(), state ? "on" : "off");
return true;
}
void setup() {
Serial.begin(115200);
dht.begin();
// WiFi Connect
Serial.printf("Connecting to %s", ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" Connected!");
// Sinric Pro device setup
SinricProTemperaturesensor& mySensor = SinricPro[DEVICE_ID];
mySensor.onPowerState(onPowerState);
// Sinric Pro connect
SinricPro.begin(APP_KEY, APP_SECRET);
}
void loop() {
SinricPro.handle();
unsigned long now = millis();
if (now - lastUpdate > interval) {
lastUpdate = now;
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (isnan(temp) || isnan(hum)) {
Serial.println("â DHT read failed!");
return;
}
// Send data to Sinric Pro
SinricProTemperaturesensor& mySensor = SinricPro[DEVICE_ID];
mySensor.sendTemperatureEvent(temp, hum);
Serial.printf("â
Sent to Sinric Pro -> Temp: %.1f°C, Hum: %.1f%%\n", temp, hum);
}
}