#include "ThingSpeak.h"
#include "DHT.h"
#include <WiFi.h>
#include <WiFiClient.h>
#include <string.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define SECRET_CH_ID 2169013 // replace 0000000 with your channel number
#define SECRET_WRITE_APIKEY "68M30L6G4J706K13" // replace XYZ with your channel write API Key
// DHT define
#define DHTTYPE DHT22 // DHT 22
#define DHTPIN 14
DHT dht(DHTPIN, DHTTYPE);
// Define LED
#define LED 27
#define BT_PIN 15
WiFiClient client;
unsigned long myChannelNumber = SECRET_CH_ID;
const char * myWriteAPIKey = SECRET_WRITE_APIKEY;
int D_value;
int buttonState = 0;
unsigned long dataMillis = 0;
void setup()
{
Serial.begin(115200); //Initialize serial
// Debug console
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
dht.begin();
WiFi.begin(ssid,pass);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(100);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
ThingSpeak.begin(client); // Initialize ThingSpeak
}
void loop()
{
// Read Temp
float t = dht.readTemperature();
// Read Humi
float h = dht.readHumidity();
// Check isRead ?
if (isnan(h) || isnan(t)) {
delay(500);
Serial.println("Failed to read from DHT sensor!\n");
return;
}
Serial.print("\n");
Serial.print("Humidity: " + String(h) + "%");
Serial.print("\t");
Serial.print("Temperature:" + String(t) + " C");
delay(2000);
ThingSpeak.setField(1, String(h));
ThingSpeak.setField(2, String(t));
if (millis() - dataMillis > 500)
{
int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if(x == 200){
Serial.println("Channel update successful.");
}
else {
Serial.println("Problem updating channel. HTTP error code " + String(x));
}
}
if(t>40){
D_value = 1;
}
else D_value = 0;
//ThingSpeak.setField(3, D_value);
if (D_value) {
digitalWrite(LED, HIGH);
delay(300);
digitalWrite(LED, LOW);
delay(300);
}
else digitalWrite(LED, LOW);
}