#include <WiFi.h>
#include <HTTPClient.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 16,2);
const char ssid[] = "Wokwi-GUEST";
const char password [] = "";
#define TRIGGER_PIN 23
#define ECHO_PIN 22
const int NTC_sensor = 35;
const int PIR_sensor = 14;
float temperature;
int motion;
String server = "https://api.thingspeak.com/update?api_key=2K0DV1LPPMVLL0WW&field1=0";
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, password);
pinMode(PIR_sensor, INPUT);
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
lcd. init ();
lcd. backlight ();
}
void loop() {
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2;
motion = digitalRead(PIR_sensor);
Serial.print("Distance:");
Serial.print(distance);
Serial.print("\t Motion Detected:");
Serial.println(motion);
if (WiFi.status() == WL_CONNECTED){
sendData (distance, motion);
}
String dist = String(distance);
lcd.setCursor(0,0);
lcd.print("Distance" + dist + "cm");
lcd.setCursor(0,1);
if (motion = 0){
lcd.print("Motion detected");
}
else{
lcd.print("No motion");
}
delay(500);
}
void sendData(float distance, int motion){
HTTPClient http;
String url = server + "&field1=" + distance + "&field2=" + motion;
http.begin(url.c_str());
int httpResponseCode = http.GET();
http.end();
}