#include <WiFi.h>
#include "ThingSpeak.h"
#include "DHTesp.h"
DHTesp dhtSensor;
TempAndHumidity data;
const int DHT_PIN = 15;
const int pirPin = 18;
const int ldrPin = 34; // Define the pin for the LDR sensor
const char* WIFI_NAME = "Wokwi-GUEST";
const char* WIFI_PASSWORD = ""; // Fill in your WiFi password
const int myChannelNumber = 2535687;
const char* myApiKey = "GTQDXX44TWDBE9YO";
WiFiClient client;
void setup() {
Serial.begin(115200);
delay(1000); // Added delay for Serial monitor to initialize
WiFi.begin(WIFI_NAME, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
}
ThingSpeak.begin(client);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
pinMode(pirPin, INPUT);
pinMode(ldrPin, INPUT); // Initialize the LDR pin as input
}
void loop() {
data = dhtSensor.getTempAndHumidity();
int pirState = digitalRead(pirPin);
int ldrValue = analogRead(ldrPin); // Read the LDR value
if (pirState == HIGH) {
Serial.println("Motion detected!");
ThingSpeak.setField(1, 1); // Set field 1 to 1 (motion detected)
} else {
Serial.println("No motion detected.");
ThingSpeak.setField(1, 0); // Set field 1 to 0 (no motion detected)
}
ThingSpeak.setField(2, data.humidity);
ThingSpeak.setField(3, data.temperature);
ThingSpeak.setField(4, ldrValue); // Set field 4 to LDR value
int x = ThingSpeak.writeFields(myChannelNumber, myApiKey);
if (x == 200) {
Serial.println("Data pushed successfully to ThingSpeak!");
} else {
Serial.println("Failed to push data to ThingSpeak. HTTP error code: " + String(x));
}
delay(1000); // Delay before next iteration
}