#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include "DHTesp.h"
#include "ThingSpeak.h"
const int DHT_PIN = 15;
const int LED_PIN = 13;
int pot=35;
const char* WIFI_NAME = "Wokwi-GUEST";
const char* WIFI_PASSWORD = "";
const int myChannelNumber =2342401 ;
const char* myApiKey = "RBFBGOVR7D51N9G5";
const char* server = "api.thingspeak.com";
DHTesp dhtSensor;
WiFiClient client;
LiquidCrystal_I2C lcd(0x27, 16, 4);
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.print("Initializing ...\n");
delay(2000);
lcd.clear();
pinMode(pot,INPUT);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
pinMode(LED_PIN, OUTPUT);
Serial.println("****************** WELCOME TO THE SMART IOT WEATHER STATION ******************");
delay(3000);
Serial.println("Wifi Status:\n");
Serial.println(">Connecting ...\n");
WiFi.begin(WIFI_NAME, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED){
digitalWrite(LED_PIN, HIGH);
delay(280);
digitalWrite(LED_PIN, LOW);
delay(280);
}
delay(1000);
digitalWrite(LED_PIN,HIGH);
Serial.println(">Wifi connected !");
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
Serial.println("-------------------------------------------------------");
Serial.println("Monitoring Interface:\n");
}
void loop() {
float pot_value=0;
float data1;
pot_value=analogRead(pot);
pot_value= map(pot_value,0,4095,0,100);
TempAndHumidity data = dhtSensor.getTempAndHumidity();
data1=pot_value;
ThingSpeak.setField(1,data.temperature);
ThingSpeak.setField(2,data.humidity);
ThingSpeak.setField(3,data1);
int x = ThingSpeak.writeFields(myChannelNumber,myApiKey);
Serial.println("Temperature Value: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity Value: " + String(data.humidity, 1) + "%");
Serial.println("Potentiometer Value: "+ String(pot_value,3)+ "%");
lcd.setCursor(0,0);
lcd.print("Temp.(C):");
lcd.print(data.temperature);
lcd.setCursor(0,1);
lcd.print("Humidity(%):");
lcd.print(data.humidity);
Serial.println("Data Upload Status:\n");
if(x == 200){
Serial.println(">Uploaded successfully");
}else{
Serial.println(">Pending... , Upload error: " + String(x));
}
Serial.println("-------------------------------------------------------");
delay(2000);
}