Here is my full code:
#define BLYNK_TEMPLATE_ID "TMPL5SbCVWTab"
#define BLYNK_TEMPLATE_NAME "MSc Project"
#define BLYNK_AUTH_TOKEN "Z_db3VeO9M0qAExWVbtcDuab-8vxhVpV"
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Servo.h>
// WiFi Credentials
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Maidul's iPhone";
char pass[] = "00000000";
// Define pin connections
#define TRIG_PIN 9
#define ECHO_PIN 10
#define MQ2_PIN A0
#define LM35_PIN 11
#define BUZZER1 6
#define BUZZER2 7
#define SERVO_PIN 5
#define RELAY1 2
#define RELAY2 3
#define RELAY3 4
#define RELAY4 8
Servo doorServo;
BlynkTimer timer;
bool doorOpen = false;
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(MQ2_PIN, INPUT);
pinMode(LM35_PIN, INPUT);
pinMode(BUZZER1, OUTPUT);
pinMode(BUZZER2, OUTPUT);
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
doorServo.attach(SERVO_PIN);
doorServo.write(0); // Initial position
timer.setInterval(1000L, checkSensors); // Run every 1 sec
}
void loop() {
Blynk.run();
timer.run();
}
void checkSensors() {
checkUltrasonic();
checkGasSensor();
checkTemperature();
}
void checkUltrasonic() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH, 30000);
if (duration == 0) return;
int distance = duration * 0.034 / 2;
Blynk.virtualWrite(V1, distance);
if (distance < 10 && !doorOpen) {
doorOpen = true;
doorServo.write(90);
delay(1000);
doorServo.write(0);
doorOpen = false;
}
}
void checkGasSensor() {
int gasValue = analogRead(MQ2_PIN);
Blynk.virtualWrite(V4, gasValue);
if (gasValue > 300) {
digitalWrite(BUZZER1, HIGH);
} else {
digitalWrite(BUZZER1, LOW);
}
}
void checkTemperature() {
int tempValue = analogRead(LM35_PIN);
float temperature = (tempValue * 5.0 * 100.0) / 1024.0;
Blynk.virtualWrite(V3, temperature);
static bool relayState = false;
if (temperature > 30 && !relayState) {
digitalWrite(RELAY1, HIGH);
relayState = true;
} else if (temperature < 28 && relayState) {
digitalWrite(RELAY1, LOW);
relayState = false;
}
}
//Controls Relays
BLYNK_WRITE(V5) { digitalWrite(RELAY2, param.asInt()); }
BLYNK_WRITE(V6) { digitalWrite(RELAY3, param.asInt()); }
BLYNK_WRITE(V7) { digitalWrite(RELAY4, param.asInt()); }
The problem is this code is not working properly. Please fix the issue. The device ESP8266 can’t connect with the blynk IOT. The device is showing offline. The serial monitor is showing nothing.