Giter VIP home page Giter VIP logo

mqsensorslib's Introduction

DOI Build Status Contributors Forks Stargazers Issues MIT License LinkedIn

MQSensorsLib

We present a unified library for MQ sensors, this library allows to read MQ signals easily from Arduino, Genuino, ESP8266, ESP-32 boards whose references are MQ2, MQ3, MQ4, MQ5, MQ6, MQ7, MQ8, MQ9, MQ131, MQ135, MQ303A, MQ309A.

Table of Contents

Getting Started

//Include the library
#include <MQUnifiedsensor.h>
/************************Hardware Related Macros************************************/
#define         Board                   ("Arduino UNO")
#define         Pin                     (A4)  //Analog input 4 of your arduino
/***********************Software Related Macros************************************/
#define         Type                    ("MQ-4") //MQ4
#define         Voltage_Resolution      (5)
#define         ADC_Bit_Resolution      (10) // For arduino UNO/MEGA/NANO
#define         RatioMQ4CleanAir        (4.4) //RS / R0 = 60 ppm 
/*****************************Globals***********************************************/
//Declare Sensor
MQUnifiedsensor MQ4(Board, Voltage_Resolution, ADC_Bit_Resolution, Pin, Type);
// Setup
MQ4.setRegressionMethod("Exponential"); //_PPM =  a*ratio^b
MQ4.setA(1012.7); MQ4.setB(-2.786); // Configure the equation to to calculate CH4 concentration
MQ4.setR0(3.86018237); // Value getted on calibration
// Loop
MQ4.init();
MQ4.update();
float ppmCH4 = MQ4.readSensor();

Wiring

Sensor

Important points:

Points you should identify
  • VCC -> 5V Power supply (+) wire
  • GND -> GND Ground (-) wire
  • AO -> Analog Output of the sensor
Data of board that you should have
  • RL Value in KOhms
Graph

Wiring_MQSensor

RS/R0 value (From datasheet of your sensor)

  • RS/R0 (Clean air - English) -> (Aire puro - Spanish)
  • Note: RS/R0 is equal to Ratio variable on the program Graph from datasheet

Arduino

Arduino_Wiring_MQSensor

MQ-7 / MQ-309A

** Note ** issue: MQ-7 and MQ-309 needs two different voltages for heater, they can be supplied by PWM and DC Signal controlled by your controller, another option is to use two different power sources, you should use the best option for you, next i will show the PWM option and on the examples this will be the way . MQ-7_MQ-309

ESP8266-ESP32

ESP8266_Wiring_MQSensor

ESP32 WROOM 32D

The ESP32 WROOM 32D does not need an external power supply. A0 goes to PIN36, Vcc to 3v3 and GND to any GND port on the board. Check the ESP2/ESP32_WROOM_32 folder to fixing the measuring issue when connecting to wifi.

Manuals

User Manual (v1.0) 12.2019

Manual

User Manual (v2.0) 04.2020

Manual

Serial debug (optional)

If your sensor is an MQ2 (Same for others sensors):

  • To enable on setup wrote
MQ2.serialDebug(true); 
  • And on Loop Wrote
MQ2.serialDebug(); 
  • Result:

Serial debug output

Note:

  • #c5f015 Yellow -> Calibration status.
  • #008000 Green -> Hardware and software characteristics.
  • #f03c15 Red -> Headers of the library calculations.
  • Only valid for 1 gas sensor readings.

Usage

  • Quick troubleshooting, since it shows everything the library does and the results of the calculations in each function.

Prerequisites

You'll need Arduino desktop app 1.8.9 or later.

Sensor manufacturers:

Sensor Manufacture URL Datasheet
MQ-2 Pololulu datasheet
MQ-3 Sparkfun datasheet
MQ-4 Sparkfun datasheet
MQ-5 parallax datasheet
MQ-6 Sparkfun datasheet
MQ-7 Sparkfun datasheet
MQ-8 Sparkfun datasheet
MQ-9 Haoyuelectronics datasheet
MQ-131 Sensorsportal datasheet
MQ-135 HANWEI Electronics datasheet
MQ-136 HANWEI Electronics datasheet
MQ-303A HANWEI Electronics datasheet
MQ-309A HANWEI Electronics datasheet

Info of datasheets

Review WPDigitalizer folder website

Installing

Clone this repository into your desktop machine

git clone https://github.com/miguel5612/MQSensorsLib

Running the tests

Use calibration systems if you have several sensors that read the same gas.

Break down into end to end tests

These tests can re-adjust values defined previously and you can contribute to improve conditions or features obtained from particular scenes.

Examples/MQ-3

And coding style tests

These tests may generate statistics validation using descriptive tools for quantitative variables.

Examples/MQ-board.ino

Built With

  • Data sheets - Curves and behavior for each sensor, using logarithmic graphs.
  • Main purpose - Every sensor has high sensibility for a specific gas or material.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Reviewers

Authors

Collaborators

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Cite as

  • Plain text: Califa Urquiza, Miguel Angel, Contreras Contreras, Ghiordy, & Carrillo Amado, Yerson Ramiro. (2019, September 3). miguel5612/MQSensorsLib: Arduino Preview V1.03 (Version 1.0.3). Zenodo. http://doi.org/10.5281/zenodo.3384301
  • CSL: { "publisher": "Zenodo", "DOI": "10.5281/zenodo.3384301", "title": "miguel5612/MQSensorsLib: Arduino Preview V1.03", "issued": { "date-parts": [ [ 2019, 9, 3 ] ] }, "abstract": "

    Publishing on Zenodo platform as software in order to extend its applications for other works allowing to recognize MQSensorLib's Authors this work into scientific community using Digital Object Identifier System (DOI).

    ", "author": [ { "family": "Califa Urquiza, Miguel Angel" }, { "family": "Contreras Contreras, Ghiordy" }, { "family": "Carrillo Amado, Yerson Ramiro" } ], "version": "1.0.3", "type": "article", "id": "3384301" }
  • BibTeX: @misc{califa_urquiza_miguel_angel_2019_3384301, author = {Califa Urquiza, Miguel Angel and Contreras Contreras, Ghiordy and Carrillo Amado, Yerson Ramiro}, title = {miguel5612/MQSensorsLib: Arduino Preview V1.03}, month = sep, year = 2019, doi = {10.5281/zenodo.3384301}, url = {https://doi.org/10.5281/zenodo.3384301} }

Sponsor

mqsensorslib's People

Contributors

aetilius avatar fredolaredo avatar ghiordy avatar jhonatanramirez avatar miguel5612 avatar per1234 avatar prabhuelectro avatar vincenzomanzoni avatar yoimer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.