/*
  Example - Publish Data to Sensesiot Platform with DHT22
  Created by Natthawat Raocharoensinp, November 21, 2022.
  Last Updated by Natthawat Raocharoensinp, August 28, 2023.
*/
#include <Sensesiot.h>
#include <DHT.h>

const char key[] = "32AJfBVjKMxqI_XrUqNw";
const char wifissid[] = "Wokwi-Guest";
const char wifipw[] = "";

#define DHTPIN 25          // Pin where the DHT22 is connected
#define DHTTYPE DHT22      // Type of the DHT sensor

SensesiotClient sensesProtocol(key);
DHT dht(DHTPIN, DHTTYPE);

void setup()
{
  Serial.begin(115200);

  sensesProtocol.begin(wifissid, wifipw);
  sensesProtocol.waitUntilReady();
  Serial.println(F("Connected"));

  dht.begin();  // Initialize the DHT sensor
}

void loop()
{
  if (!sensesProtocol.ready())
  {
    Serial.println(F("Disconnected"));

    sensesProtocol.begin(wifissid, wifipw);
    sensesProtocol.waitUntilReady();

    Serial.println(F("Connected"));
  }
  sensesProtocol.loop();

  // Read temperature from DHT22 sensor
  float temperature = dht.readTemperature();

  // Check if temperature reading is valid
  if (!isnan(temperature))
  {
    sensesProtocol.setData(1, temperature);
    Serial.print(F("Temperature: "));
    Serial.print(temperature);
    Serial.println(F("°C"));
  }
  else
  {
    Serial.println(F("Failed to read temperature from DHT22"));
  }

  Serial.println(F("Send Data"));
  delay(2000);
}

esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
dht1:VCC
dht1:SDA
dht1:NC
dht1:GND