/**
ESP32 + DHT22 Example for Wokwi
https://wokwi.com/arduino/projects/322410731508073042
*/
#include <WiFi.h>
#include "ThingSpeak.h"
#include "RTClib.h"
#include <Wire.h>
const int PIR_PIN = 4;
const int LED_PIN = 13;
const char* WIFI_NAME = "Wokwi-GUEST";
const char* WIFI_PASSWORD = "";
const int myChannelNumber = 2271261;
const char* myApiKey = "8WUYHDDRWJ7ZATY9";
const char* server = "api.thingspeak.com";
WiFiClient client;
RTC_DS3231 rtc;
void setup() {
Serial.begin(115200);
pinMode(PIR_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
WiFi.begin(WIFI_NAME, WIFI_PASSWORD);
Wire.begin();
// rtc.begin();
rtc.adjust(DateTime(__DATE__, __TIME__));
while (WiFi.status() != WL_CONNECTED){
delay(1000);
Serial.println("Wifi not connected");
}
Serial.println("Wifi connected !");
Serial.println("Local IP: " + String(WiFi.localIP()));
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}
void loop() {
int pirState = digitalRead(PIR_PIN);
DateTime now = rtc.now();
int year = now.year();
int month = now.month();
int day = now.day();
int hour = now.hour();
int minute = now.minute();
int second = now.second();
String timeString = String(year) + "-" + String(month) + "-" + String(day) + " " +
String(hour) + ":" + String(minute) + ":" + String(second);
ThingSpeak.setField(1,timeString);
// Serial.println(timeString);
if(pirState == HIGH){
digitalWrite(LED_PIN, HIGH);
}
else{
digitalWrite(LED_PIN, LOW);
}
int x = ThingSpeak.writeFields(myChannelNumber,myApiKey);
if(x == 200){
Serial.println("Data pushed successfull");
}else{
Serial.println("Push error" + String(x));
}
Serial.println("---");
delay(1000);
}