#include <LiquidCrystal_I2C.h>
#include <DHTesp.h>
#include <WiFi.h>
#include <HTTPClient.h>
String serverName = "https://postman-echo.com/get";
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
DHTesp mydht;
void setup() {
// config LED_PIN output
pinMode(32, OUTPUT);
// setup PIR
pinMode(12,INPUT);
//setup for serial communication
Serial.begin(9600);
Serial.println("ESP32 collecting sensors data");
mydht.setup(15,DHTesp::DHT22);
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(1,0);
lcd.println("ESP32 collecting data ...");
delay(1000);
//setup for serial communication
Serial.print("Connecting to WiFi");
//setup for WiFi connection
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println("WiFi Connected!");
}
void loop() {
// get data from DHT22
TempAndHumidity data = mydht.getTempAndHumidity();
String temp = String(data.temperature)+"C";
String humid = String(data.humidity)+"%";
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp: "+temp);
lcd.setCursor(0,1);
lcd.print("Humidity: "+humid);
// send data log and print data to Serial port
Serial.println("Temp: " + temp);
Serial.println("Humidity: " + humid);
// signal's PIR and LED processing
int pir_value = digitalRead(12);
if(pir_value == 1){
Serial.println("Motion detected");
digitalWrite(32,HIGH);
Serial.println("LED on");
delay(100);
}
else{
Serial.println("Motion ended");
digitalWrite(32,LOW);
Serial.println("LED off");
delay(100);
}
Serial.println("---");
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String serverPath = serverName + "?temp="+temp+"&humid="+humid;
http.begin(serverPath.c_str()); // Send HTTP GET request
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
Serial.print("HTTP Response code: "); Serial.println(httpResponseCode);
String payload = http.getString();
Serial.println(payload);
}
else {
Serial.print("Error code: "); Serial.println(httpResponseCode);
}
http.end();
}
else {
Serial.println("WiFi Disconnected");
}
delay(1900);
}