I am working on a project to detect gas level, and at a certain threshold (>35) I want some event.
Components: Arduino Uno, ESP8266 WiFi Module, MQ-135, LCD 16x2, buzzer. My board manager is set as Board Manager > esp8266 > Arduino. Three errors I’m getting while compiling is;
- Wire Library is not supported by this board.
- Static int default_sda_pin = SDA
- static int default_scl_pin = SCL
#define BLYNK_TEMPLATE_ID "TMPxxxxxx"
#define BLYNK_TEMPLATE_NAME "Device"
#define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxxx"
#define BLYNK_PRINT Serial
#include <SoftwareSerial.h>
#include <BlynkSimpleEsp8266.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <ESP8266.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "";
char pass[] = "";
SoftwareSerial EspSerial(2, 3);
WiFiClient wifi(EspSerial);
BlynkTimer timer;
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int mq135Pin = A0;
#define red mq135Pin
#define buzzer 13
WidgetLED led(V1);
void setup() {
Serial.begin(9600);
EspSerial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("SENSOR GETTING");
lcd.setCursor(0, 1);
lcd.print("READY");
delay(1500);
// Display "READY" for 0.5 seconds
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("READY");
delay(500);
lcd.clear();
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, mySensor);
}
void loop() {
Blynk.run();
timer.run();
}
void mySensor(){
int gasLevel = analogRead(mq135Pin);
if (gasLevel >= 34){
Blynk.logEvent("Excess DDVP detected. Grain Might Be Harmful for intake.");
Blynk.virtualWrite(V0, gasLevel);
Blynk.virtualWrite(V1, 1);
digitalWrite(buzzer, HIGH);
lcd.setCursor(0, 0);
lcd.print("GAS LEVEL:");
lcd.print(gasLevel, 2);
lcd.setCursor(0, 1);
lcd.print("EAT NOT.");
led.on();
Serial.print("Gas Level: ");
Serial.println(gasLevel, 2);
}
else if(gasLevel <= 31){
Blynk.logEvent("No DDVP detected! Grain is at risk of insects attack. But safe for Consumption!");
Blynk.virtualWrite(V0, gasLevel);
Blynk.virtualWrite(V1, 0);
digitalWrite(buzzer, LOW);
lcd.setCursor(0, 0);
lcd.print("GAS LEVEL:");
lcd.print(gasLevel, 2);
lcd.setCursor(0, 1);
lcd.print("GRAIN AT RISK");
led.off();
Serial.print("Gas Level: ");
Serial.println(gasLevel, 2);
}
else{
Blynk.logEvent("GRAIN IS SAFE FOR CONSUMPTION");
Blynk.virtualWrite(V0, gasLevel);
Blynk.virtualWrite(V1, 0);
digitalWrite(buzzer, LOW);
lcd.setCursor(0, 0);
lcd.print("GAS LEVEL:");
lcd.print(gasLevel, 2);
lcd.setCursor(0, 1);
lcd.print("SAFE FOR EAT");
led.off();
Serial.print("Gas Level: ");
Serial.println(gasLevel, 2);
}
}