#include <DHTesp.h>
#include <WiFi.h>
#include <LiquidCrystal_I2C.h>
#include <WiFiClient.h>
#include <ThingSpeak.h>
#define LDR_PIN 35
#define sensor 34
#define buzzer 2
int ldrvalue;
int value;
DHTesp dhtSensor;
TempAndHumidity data;
const int dhtpin = 15;
//Initialize the LCD display
LiquidCrystal_I2C lcd(0x27, 16, 3);
//Enter your WIFI SSID and password
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
WiFiClient client;
unsigned long myChannelNumber = 2516347;
const char *myWriteAPIKey = "MAX8N1DS8BVMYG30";
int statusCode;
void setup() {
// Debug console
Serial.begin(115200);
dhtSensor.setup(dhtpin, DHTesp::DHT22);
lcd.init();
lcd.backlight();
pinMode(buzzer, OUTPUT);
pinMode(LDR_PIN, INPUT);
ThingSpeak.begin(client);
WiFi.mode(WIFI_STA);
delay(1000);
lcd.setCursor(1, 0);
// lcd.print("Gas Detector");
// for (int a = 0; a <= 15; a++) {
// lcd.setCursor(a, 1);
// lcd.print(".");
// delay(200);
}
lcd.clear();
}
// //Get the ultrasonic sensor values
// void GASLevel() {
// value = analogRead(sensor);
// value = map(value, 0, 4095, 0, 100);
// if (value >= 40) {
// digitalWrite(buzzer, HIGH);
// tone(buzzer, 200);
// lcd.setCursor(13, 0);
// lcd.print("Warning");
// }
// else {
// digitalWrite(buzzer, LOW);
// noTone(buzzer);
// lcd.setCursor(13,0);
// lcd.print("Normal ");
// }
// lcd.setCursor(0, 0);
// lcd.print("GAS Level:");
// lcd.print(value);
// lcd.print(" ");
// }
void dht(){
lcd.setCursor(0,2);
lcd.print("Humi:"+ String(data.temperature)+"%");
lcd.setCursor(0,3);
lcd.print("Temp:"+ String(data.humidity)+"oC");
}
void ldr(){
ldrvalue = analogRead(LDR_PIN);
lcd.setCursor(0,1);
lcd.print("LDR:"+ String(ldrvalue));
}
void loop() {
if (WiFi.status() != WL_CONNECTED) {
Serial.print("Attempting to connect...");
while (WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, pass);
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected");
}
// GASLevel();
dht();
ldr();
delay(2000);
data = dhtSensor.getTempAndHumidity();
Serial.println("Humi:" + String(data.temperature)+"%");
Serial.println("Temp:" + String(data.humidity)+" oC");
// Serial.println("Gas:" + String(value));
Serial.println("LDR:" + String(ldrvalue)+"lux");
Serial.println("<-------------------->");
ThingSpeak.setField(1, data.temperature);
ThingSpeak.setField(2, data.humidity);
ThingSpeak.setField(3, value);
ThingSpeak.setField(4, ldrvalue);
statusCode = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
}