Gassensor MQ-7 und MQ-2 mit LCD-Display und Arduino Nano

Rauchsensor-LCD-Display-Arduino-NanoIch habe vor kurzen einige MQ-7 Sensoren für meine Testumgebung bestellt. Hiermit wollte ich ein separates Modul bauen, welcher Kohlenmonoxid CO auf einem Display anzeigt. Das Modul ist derzeitig noch nicht an meine Hausautomation Fhem angeschlossen, weil ich das Modul erst mal mobil einsetzen möchte.

Folgende Zutaten / Hardware benötigt man, hier Auswahl von Amazon.de:

Für die Software habe ich mir ein paar Snippets von dem MySensor Modul „Air-Quality Sensor“ geklaut und die MySensor Programmzeilen herausgeworfen. Zusätzlich habe ich dann die Library für das LCD-Display und die Status-Infos hinzugefügt. Wie gesagt, 90% des Programm-Codes woanders her geklaut, kein Hexenwerk.

Beim Einschalten des Rauchsensor, erscheint erst mal auf dem LCD-Display 30s lang „Kalibrierung“. Hier wird die interne Heizung des MQ-7 Moduls gestartet. Anschließend ist es sofort einsatzbereit.

Programm-Code: mq-7-Arduino-LCD-Programm-Code

Wichtig: Bei der Beschaltung des LCD-Displays bitte die Beschaltung der richtigen Pins vornehmen: D4,D5,D6,D7,D8,D9, Versorgungsspannung 5V, siehe Programm-Code

Fazit: Das Modul könnt ihr mobil einsetzen, um zu schauen, ob alles ok ist.

An dem Blog-Beitrag wird noch gearbeitet, möglicherweise baue ich doch bald wieder das drahtlose MySensors-Modul mit rein.

Rauchsensor-LCD-Display-Arduino-Nano

Rauchsensor MQ-7 mit LCD-Display / Arduino Nano im Einsatz. Ich hatte kurz vor der Aufnahme ein Feuerzeug am Sensor gehalten

 

Update 06.09.2015 : Hier eine kleiner Demo-Aufbau mit dem Gas-Sensor MQ-2

Mit dem MQ-2 Sensor könnt ihr Gase vom Typ: LPG, i-Butan, Propan, Methan, Alkohol, Wasserstoff und Rauch aufspüren. An dem Analogen Ausgang A0 wird der Sensor angeschlossen. Der Sensor benötigt als Betriebsspannung 5V. Die Empfindlichkeit des Sensors stellt ihr an einem Drehpoti auf der Rückseite des Sensors ein.
Als Ergebnis bekommt ihr eine Zahl. In dem Sketch wird laufend der tiefste, höchste und aktuelle Wert gemessen. Das Datenblatt zum MQ-2-Sensor findet ihr hier.

Ihr benötigt die gleichen Bauteile (siehe oben), jedoch anstatt den MQ-7 Sensor den MQ-2 Sensor, den ihr hier bekommt: MQ-2 Gas Sensor Module LP,Propane,Hydrogen Detection Sensor Gas Detector Sensor Module for Arduino Raspberry pi

Ich habe hier auch noch einige in meiner Testumgebung, einfach fragen.

Wer mal alle Sensoren durchtesten möchte: Bei amazon.de gibt es ein Set von vielen Sensoren -> MQ-Serie- 9er Set Sensoren

Update 21.10.2015: Ich habe den MQ-2 Sensor mehrere Tage mit dem Luftqualitäts-Sensor verglichen und einen Blog-Beitrag darüber geschrieben. Das Ergebnis findet ihr hier.


/* Sample Arduino for MQ2 Smoke Sensor Shield
05/03/2011
**********************************************/
// erweitert für das LCD-Display von Robins-blog.de

const int analogInPin = A0; // Analog input pin that the potentiometer is attached to

#include //Sample using LiquidCrystal library

LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // select the pins used on the LCD panel

int sensorValue = 0; // value read from the pot
int outputValue = 0; // value output to the PWM (analog out)
int count,count1;
int low=300;
int high=10;
void setup()
{
// initialize serial communications at 9600 bps:
Serial.begin(9600);

//pinMode(7, OUTPUT);

lcd.begin(16, 2); // start the LCD library
lcd.setCursor(0,0); // set cursor position at start

lcd.print(„Kalibrierung …“);

lcd.clear();
lcd.setCursor(0,0);
lcd.print(„MQ-2: LPG,Methan,Alcohol:“);
lcd.setCursor(0,1);
lcd.print(„Propan, Butan – Sensor“);
delay (2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(„Low: 30 High:50“);
lcd.setCursor(0,1);
lcd.print(„Val: „);
}

void loop()
{

count1++;
// read the analog in value:
sensorValue = analogRead(analogInPin);

if(count1==30)
{
count1=0;
// print the results to the serial monitor:
//Serial.print(„sensor = “ );
//Serial.print(sensorValue);
Serial.print(„\t output = „);
Serial.println(sensorValue);
lcd.setCursor(6,1);
lcd.print(“ „);
lcd.setCursor(6,1);
lcd.print(sensorValue);
// get lowest Value
if(low > sensorValue)
{
lcd.setCursor(5,0);
lcd.print(“ „);
lcd.setCursor(5,0);
lcd.print(sensorValue);
low=sensorValue;
}
// get highest value
if(high < sensorValue)
{
lcd.setCursor(13,0);
lcd.print(“ „);
lcd.setCursor(13,0);
lcd.print(sensorValue);
high=sensorValue;
}
}
delay(100);
}

Und wie immer: Bei Fragen, fragen und wer das ein oder andere Bauteil benötigt kurz anfragen.

War der Beitrag für Dich sinnvoll?
  • Langweilig (2)
  • Nützlich (3)
  • Schlecht (3)
  • Genial (4)
  • Interessant (6)
Dieser Beitrag wurde unter Hardware veröffentlicht. Setze ein Lesezeichen auf den Permalink.

20 Kommentare zu Gassensor MQ-7 und MQ-2 mit LCD-Display und Arduino Nano

  1. Manfred Gronemeyer sagt:

    Hallo,
    ich bin hier nicht der absolute Spezialist.
    Ich suche eine Bauanleitung / Schaltplan für ein CO – Messgerät, bei dem
    ich eine Anzeige und eine Aufzeichnungsfunktion habe. Kann mir da jemand helfen?

  2. Jörg sagt:

    Hallo,

    kann man eigentlich mehrere MQ Sensoren (z.B. MQ-2, MQ-7, MQ-135) an EINEN nano anschließen und dann die Werte entsprechend darstellen ?

    Hast du schon eine FHEM Integration z.B. über dne mysensors LAN gateway umgesetzt ?

    Grüße
    Jörg

  3. Farina sagt:

    Hallo
    was ist wenn man noch dazu ein Alarm bauen will ? Als Ausgabe
    Vielen Dank in voraus.

  4. Robin sagt:

    Hallo Matthias,
    bei meinem MQ-2 kommt am A0 eine Zahl raus. Ich habe das Modul nur so lala kalibriert.
    Ich habe das MQ-2 Modul mal mit dem Luftqualitäts-Sensor von Conrad verglichen, und es kamen annähernd die gleichen Werte raus. Darüber werde ich später noch einen separaten Blog-Beitrag schreiben.
    Wer also bspw. bei einem bestimmten Wert das Fenster öffnen oder schließen möchte, liegt mit dem Sensor genau richtig.

    LG
    /robin

  5. Matthias sagt:

    Ich muss leider ganz blöd nachfragen… ist dein Sketch nicht falsch? 🙂

    Zur Berechnung der Werte benötigt der Sketch, die für jeden Sensor charakteristischen Werte Werte aus dem Datasheet.

    D.h. die Werte: RO_CLEAN_AIR_FACTOR, LPGCurve[3], COCurve[3] und SmokeCurve[3] sind bei jedem Sensor anders?

    Bzw. mit dem MQ-7 Sensor kann man laut Datasheet (https://www.sparkfun.com/datasheets/Sensors/Biometric/MQ-7.pdf) eigentlich auch nur nur H2 und CO vernünftig messen, da dies die einzigsten Kurven sind?

    Ich bin sowieso etwas verwirrt, wie man mit einem Sensor mehrere „Gase“ messen kann.

    Dein Sketch oben stimmt wohl für einen MQ-2 durchaus, man könnte ihn sogar erweitern und mit einem MQ-2 (http://sandboxelectronics.com/files/SEN-000004/MQ-2.pdf) H2, LPG, CH4, CO, Alcohol, Smoke und Propane messen.

    Wobei ich mich immer noch frage, wie ein Sensor auf so viele unterschiedliche Stoffe reagieren kann…

    oder irre ich komplett?

  6. Matthias sagt:

    In dem Fall arbeitest du nicht mit dem originalen Gas-MySensors-Sketch: http://www.mysensors.org/build/gas
    Der ist eigentlich auch aus deiner Quelle erstellt worden, lediglich um die MySensors-Zusätze erweitert worden.

    In dem Fall einfach probeweise MyMessage msg(CHILD_ID_MQ, V_LEVEL); mit MyMessage msg( CHILD_ID_LIGHT, S_LIGHT_LEVEL); ersetzen 🙂

    V_LEVEL scheint im FHEM-Modul scheinbar (noch) nicht integriert zu sein.

  7. Robin sagt:

    Ich habe den Sketch vom Lux-Sensor und dann die Brightness-Variable als Wert für den Sensor genommen.

    LG
    /robin

  8. Matthias sagt:

    Hallo Robin,
    mit dem originalen FHEM-Modul oder hast du es anpassen müssen?
    Gruss

  9. Robin sagt:

    Hallo Matthias,
    klappt bei mir auch schon mit Fhem UND mit LC-Display. Vielleicht mache ich heute ein Youtube-Video fertig und zeige Euch das wie es geht. Es war etwas frickelig, LCD UND NRF unter einem Hut zu bringen, wegen den begrenzten Ports vom Arduino-Nano.

    LG
    /robin

  10. Matthias sagt:

    Der Sensor ist mittlerweile angekommen und auch schon zusammengebaut (ohne Display) dafür mit MySensors. Leider versteht das FHEM-Modul derzeit die neuen Variablen noch nicht…

  11. Matthias sagt:

    Hallo Robin, ja hätte Interesse, schreibst du es mir per Mail? Eventuell hätte ich sogar auch noch gerne ein Display… 😀

  12. Robin sagt:

    Hallo Matthias,
    ja das war die Basis für den Sketch, wie ich beschrieben habe.
    Ich wollte aber auch „offline“ messen können, bzw. das man das Gerät mobil einsetzen kann. Deshalb habe ich das LCD-Display da angeschlossen.

    LG
    /robin

  13. Robin sagt:

    Hallo Matthias,
    wenn du noch einen haben willst, ich habe noch welche da, Typ MQ7. Und richtig, es gibt verschiedene Gassensor-Typen.

    LG
    /robin

  14. Matthias sagt:

    „Notify me of followup comments via e-mail“

    PS: Natürlich dann aber auf MySensor Basis 🙂

  15. Matthias sagt:

    Sehr gut 🙂

    Ich wollte mir schon lange einen Gassensor bauen, nur war/bin ich mir immer noch nicht ganz sicher, wie gut die Sensoren arbeiten und welchen Sensor ich für welches Gas benötige.

    Manche Sensoren scheinen ja unterschiedliche Gase zu erkennen.

    Gruss

  16. Robin sagt:

    Hallo Thomas,
    danke, ist korrigiert!

    LG
    /robin

  17. Thomas sagt:

    Hallo,
    kleiner Vertipper am Anfang: CO2 sollte durch CO ersetzt werden.

  18. Robin sagt:

    Hallo Sven,
    danke, ich habe es korrigiert.

    LG
    /robin

  19. Sven sagt:

    Ich glaube der erste Link ist falsch verlinkt. Der zeigt auf den Ultraschallsensor

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.