I have simple program which consists of two mq6 gas sensor(using digital out) connecting with nodemcu.
I have two sensors of MQ6 so i am connecting with digital out from sensor and digital in to nodemcu. When i try to read the value i always get 1.
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
BlynkTimer timer;
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
char auth[] = "Auth Token"; //Enter Authentication code sent by Blynk on your regested email
char ssid[] = "----------"; // Enter WIFI Name Here
char pass[] = "----------"; // Enter WIFI Password Here
const int MQ6_1 = 2;
int MQ6_1_data = 0;
const int MQ6_2 = 3;
int MQ6_2_data = 0;
const int button = 4;
int buttonStatus = 0;
void setup() {
Serial.begin(115200);
pinMode(button, INPUT);
pinMode(MQ6_1,INPUT);
pinMode(MQ6_2,INPUT);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, getSendData);
}
void loop() {
timer.run();
Blynk.run();
}
void getSendData() {
MQ6_1_data = digitalRead(MQ6_1);
Serial.print("MQ6 DATA 1: ");
Serial.print(MQ6_1_data);
Serial.println();
MQ6_2_data = digitalRead(MQ6_2);
Serial.print("MQ6 DATA 2: ");
Serial.print(MQ6_2_data);
Serial.println();
buttonStatus = digitalRead(button);
Serial.print("Switch: ");
Serial.print(buttonStatus);
Serial.println();
Blynk.virtualWrite(V2, MQ6_1_data);
Blynk.virtualWrite(V3, MQ6_2_data);
Blynk.virtualWrite(V4, buttonStatus);
if (MQ6_1_data > 200) {
Blynk.notify("Smoke Detected! First Sensor");
}
if (MQ6_2_data > 200) {
Blynk.notify("Smoke Detected! Second Sensor");
}
if (buttonStatus == HIGH) {
Blynk.notify("Button On");
}
}
kindly help me to rectify the issue. I googled it but i found only using analog out they connecting.