IoT - LPG Gas Sensor Logging with NodeMCU and Thingspeak.

MQ-5 Module(Overview)

In this tutorial, will learn, how to interface MQ-5 Module with Node Mcu(ESP8266).

The Grove - Gas Sensor(MQ5) module is useful for gas leakage detection (in home and industry). It is suitable for detecting H2, LPG, CH4, CO, Alcohol. Due to its high sensitivity and fast response time, measurements can be taken as soon as possible. The sensitivity of the sensor can be adjusted by using the potentiometer.

MQ-5 Module(backside)

Components Required
  • NodeMcu(ESP8266) 
  • MQ-5 LPG SENSOR Module 
  • Few male to female connecting wires 
  • Breadboard 
Follow the image below for circuit connection reference:-
In this circuit, we have connected the A0 pin of the MQ-5 to the A0 pin of the NodeMcu module and D0 pin remain disconnected.
After making the circuit dump the code given below:-

// Karkhana Report
// Analyse the volume of the gas using thingspeak.com
// Hardware: NodeMCU,MQ-5

#include <ESP8266WiFi.h>
String apiKey = "Enter the API key"; // Enter your Write API key from ThingSpeak
const char *ssid = "Enter ssid"; // replace with your wifi ssid and wpa2 key
const char *pass = "Enter password";
const char* server = "api.thingspeak.com";
WiFiClient client;
void setup()
{
Serial.begin(115200);
delay(10);
Serial.println("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
}
void loop()
{
float h = analogRead(A0);
if (isnan(h))
{
Serial.println("Failed to read from MQ-5 sensor!");
return;
}

if (client.connect(server, 80)) // "184.106.153.149" or api.thingspeak.com
{
String postStr = apiKey;
postStr += "&field1=";
postStr += String(h);
postStr += "\r\n\";
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
Serial.print("Gas meter");
Serial.print(h);
Serial.println("%. Send to Thingspeak.");
}
client.stop();
Serial.println("Waiting...");

// thingspeak needs minimum 15 sec delay between updates, I've set it to 30 seconds
delay(3000);
}


After dumping the code we can check our output in the serial monitor as well as in the thingspeak blogging channel chart graphically as shown below:-


As you can see from the above logging figure we can check the LPG gas rate of Karkhana.

Thinking?
Join our hands-on training courses.
To know more visit us at Karkhana Training Portal
Next
Previous