#include <WiFi.h>
#include <ThingSpeak.h>
#include "Adafruit_SSD1306.h"
#include "Adafruit_GFX.h"
Adafruit_SSD1306 oled(128,64,&Wire,-1);
char ssid[] = "Wokwi-GUEST";
char password[] = "";
WiFiClient client;
unsigned long myChannelNumber = 2511201; // Replace with your ThingSpeak channel number
const char *myWriteAPIKey = "9IMGZGAB9UBRO5PJ"; // Replace with your ThingSpeak API key
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC,0x3C);
Serial.begin(115200);
pinMode(34, INPUT);
pinMode(26, OUTPUT);
pinMode(16, OUTPUT);
Serial.println("Hello, ESP32!");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
ThingSpeak.begin(client);
}
void loop() {
int objectDetected = digitalRead(34);
if (objectDetected == HIGH) {
Serial.println("Object detected");
digitalWrite(26, HIGH);
tone(16, 1000);
oled.clearDisplay();
oled.setTextSize(1);
oled.setCursor(0,10);
oled.setTextColor(SSD1306_WHITE);
oled.display();
int value=analogRead(33);
oled.println("Object: "+String(value));
oled.display();
} else {
Serial.println("No object detected");
digitalWrite(26, LOW);
noTone(16);
}
// Update ThingSpeak field based on object detection status
int status = ThingSpeak.writeField(myChannelNumber, 1, objectDetected, myWriteAPIKey);
if (status == 200) {
Serial.println("ThingSpeak update successful");
} else {
Serial.print("Problem updating ThingSpeak. HTTP error code: ");
Serial.println(status);
}
delay(1000); // Adjust delay as needed
}