/**
   ESP32 + DHT22 Example for Wokwi
   
   https://wokwi.com/arduino/projects/322410731508073042
*/

#include "DHTesp.h"
#include <WiFi.h>
#include "ThingSpeak.h"
const int DHT_PIN = 15;

DHTesp dhtSensor;

unsigned long myChannelNumber = 1843837;
//const char * myWriteAPIKey = "150INT0DTLRAZ4UF";

String apiKey = "150INT0DTLRAZ4UF";

const char* server = "api.thingspeak.com";

WiFiClient client;


void setup() {
  Serial.begin(9600);
  Serial.print("Connecting to WiFi");
  WiFi.begin("Wokwi-GUEST", "", 6);
  while (WiFi.status() != WL_CONNECTED) {
    delay(100);
    Serial.print(".");
  }
  Serial.println(" Connected!");

  //Serial.begin(115200);
  dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
  WiFiClient  client;
  ThingSpeak.begin(client);
}

void loop() {
  TempAndHumidity  data = dhtSensor.getTempAndHumidity();
  float t = data.temperature;
  float h = data.humidity;

   if(client.connect(server,80)){
  

     String postStr = apiKey;
       postStr +="&field1=";
       postStr += String(t);
       postStr +="&field2=";
       postStr += String(h);
       postStr += "\r\n\r\n";
 
      client.print("POST /update HTTP/1.1\n");
      client.print("Host: api.thingspeak.com\n");
      client.print("Connection: close\n");
      client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
      client.print("Content-Type: application/x-www-form-urlencoded\n");
      client.print("Content-Length: ");
      client.print(postStr.length());
      client.print("\n\n");
      client.print(postStr);


      Serial.println("Temp: " + String(data.temperature, 2) + "°C");
      Serial.println("Humidity: " + String(data.humidity, 1) + "%");
      Serial.println("---");
     }

     delay(1000);
}