#include <ESP8266WiFi.h>
#include <ThingSpeak.h>
#include <MQ2_LPG.h>
// WiFi credentials
const char* ssid = "IQOOZ6Lite";
const char* password = "abhibatatihu";
// ThingSpeak API details
const char* server = "api.thingspeak.com";
unsigned long channelID = YOUR_CHANNEL_ID;
const char* readAPIKey = "YOUR_READ_API_KEY";
const char* writeAPIKey = "YOUR_WRITE_API_KEY";
// Hardware setup
WiFiClient client;
const int APin = 25;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected");
ThingSpeak.begin(client);
servo.attach(servoPin);
pinMode(irSensorPin, INPUT);
}
void loop() {
// Read IR sensor value
int irValue = digitalRead(irSensorPin);
Serial.print("IR Sensor Value: ");
Serial.println(irValue);
// Upload IR sensor data to ThingSpeak
ThingSpeak.writeField(channelID, 1, irValue, writeAPIKey);
delay(5000); // Adjust based on requirement
// Read servo control data from ThingSpeak
int servoPosition = ThingSpeak.readIntField(channelID, 2, readAPIKey);
if (servoPosition >= 0 && servoPosition <= 180) {
servo.write(servoPosition);
Serial.print("Servo moved to: ");
Serial.println(servoPosition);
}
delay(5000); // Allow time for ThingSpeak update
}