Robins Blog – Technik und Multimedia

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

Update 19.05.2019 Bitte beachtet, der Beitrag ist schon etwas älter. Ich habe mehrere Sensoren getestet: CO2 – Sensor , Feinstaub-Sensor, BME 680 Sensor für LuftQualitätMultichannel Gas Sensor Methan Propan NO2 – MiCS-6814

Ich 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 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:

Auto Amazon Links: Keine Produkte gefunden. http_request_failed: Es wurde keine gültige URL übermittelt. URL: https://ws-eu.amazon-adsystem.com/widgets/q?SearchIndex=All&multipageStart=0&multipageCount=20&Operation=GetResults&Keywords=B00NJOIB50&InstanceId=0&TemplateId=MobileSearchResults&ServiceVersion=20070822&MarketPlace=DE Cache: AAL_fc857f6268d0d046fd52d317ecd02d35

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.

Die mobile Version verlassen