ESP32 - Gassensor

Deze tutorial begeleidt u door het proces van het gebruik van de ESP32 in combinatie met de MQ2 gassensor om de luchtkwaliteit te beoordelen door het meten van verschillende brandbare gassen zoals LPG, rook, alcohol, propaan, waterstof, methaan en koolmonoxide. We behandelen de volgende aspecten in detail:

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×MQ2 Gassensor
1×Breadboard (experimenteerprint)
1×Jumperdraden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de MQ2 Gassensor

De MQ2 gassensor kan de aanwezigheid detecteren van diverse gassen zoals LPG, rook, alcohol, propaan, waterstof, methaan en koolmonoxide in de omgeving. De sensor heeft twee uitgangsmogelijkheden: een digitale output-pin en een analoge output-pin.

Het is belangrijk om te weten dat de MQ2 gassensor geen specifieke informatie geeft over elk gas afzonderlijk. In plaats daarvan geeft het een gecombineerde meting van de gassen of de algemene aanwezigheid van gassen.

Door gebruik te maken van de MQ2 sensor kunnen we vaststellen of er een gaslek is of dat de luchtkwaliteit slecht is. Deze informatie stelt ons in staat om passende maatregelen te nemen om onze veiligheid te waarborgen, zoals het activeren van een alarm of het inschakelen van ventilatiesystemen.

Pinout

De MQ2 gassensor heeft vier pinnen met specifieke functies:

  • VCC pin: Deze pin moet worden verbonden met de VCC (5V).
  • GND pin: Deze pin wordt verbonden met GND (0V).
  • DO pin: Dit is een digitale uitgangspin die aangeeft of er brandbare gassen aanwezig zijn. Wanneer een brandbaar gas wordt gedetecteerd boven een drempelwaarde, wordt een LOW-signaal uitgegeven; anders is het signaal HIGH. De drempelwaarde voor het detecteren van gasconcentratie kan worden aangepast met een ingebouwde potentiometer.
  • AO pin: Dit is een analoge uitgangspin die een analoge spanning genereert die evenredig is aan de gasconcentratie. Wanneer de gasconcentratie stijgt, neemt ook de uitgangsspanning toe, en als de gasconcentratie daalt, neemt ook de uitgangsspanning af.
MQ2 Gas Sensor Pinout

Daarnaast is de MQ2 gassensor uitgerust met twee LED-indicatoren:

  • PWR-LED indicator: Deze LED geeft aan dat de sensor onder spanning staat. Hij brandt wanneer de sensor wordt gevoed en functioneert.
  • DO-LED indicator: Deze LED is gekoppeld aan de DO-pin van de sensor. Hij geeft visueel de gasconcentratie weer op basis van de waarde van de DO-pin. Wanneer gasconcentratie aanwezig is en de DO-pin op LOW staat, gaat de DO-LED aan. Als er geen gas wordt gedetecteerd en de DO-pin HIGH is, gaat de DO-LED uit.

Hoe Het Werkt

Met betrekking tot de DO-pin:

  • De MQ2 module heeft een ingebouwde potentiometer waarmee u de gevoeligheid of drempelwaarde voor gasconcentratie kunt instellen.
  • Als de gasconcentratie in de omgeving de ingestelde drempel overschrijdt, wordt de output-pin van de sensor op LOW gezet en gaat de DO-LED aan.
  • Als de gasconcentratie onder de ingestelde drempel komt, wordt de output-pin op HIGH gezet en gaat de DO-LED uit.

Met betrekking tot de AO-pin:

  • Wanneer de gasconcentratie stijgt, neemt de spanning op de AO-pin proportioneel toe.
  • Wanneer de gasconcentratie daalt, neemt de spanning op de AO-pin af.

Let op: het afstellen van de potentiometer beïnvloedt niet de waarde op de AO-pin.

Opwarming van de MQ2 Sensor

De MQ2 gassensor heeft een opwarmperiode nodig voordat hij effectief kan worden gebruikt. Hier de details:

  • Als u de sensor voor het eerst gebruikt na een lange opslagperiode (ongeveer een maand of langer), moet u de sensor 24-48 uur laten opwarmen. Deze langere opwarmtijd zorgt voor nauwkeurige werking.
  • Als de sensor recentelijk is gebruikt, is de opwarmtijd aanzienlijk korter. Meestal duurt het slechts 5-10 minuten voor de sensor volledig is opgewarmd. Tijdens deze periode kan de sensor aanvankelijk hoge waarden aangeven, die geleidelijk afnemen tot de sensor stabiel is.

Om de MQ2 sensor op te warmen, sluit u eenvoudig de VCC en GND pinnen aan op een voedingsbron of op de VCC en GND pinnen van een ESP32. Laat de sensor gedurende de benodigde opwarmperiode in deze staat.

Bedradingsschema

De MQ2 gassensormodule heeft twee uitgangen, u kunt één of beide gebruiken, afhankelijk van uw toepassing.

  • Hoe ESP32 en gassensor aan te sluiten met een breadboard (gevoed via USB-kabel)
ESP32 MQ2 gas sensor wiring diagram

This image is created using Fritzing. Click to enlarge image

  • Hoe ESP32 en gassensor aan te sluiten met een breadboard (gevoed via Vin pin)
ESP32 MQ2 gas sensor wiring instruction

This image is created using Fritzing. Click to enlarge image

How to connect ESP32 and gas sensor
How to wire ESP32 and gas sensor

ESP32 Code – Waarde uitlezen vanaf DO pin

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-gas-sensor */ #define DO_PIN 16 // ESP32's pin GPIO16 connected to DO pin of the MQ2 sensor void setup() { // initialize serial communication Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(DO_PIN, INPUT); Serial.println("Warming up the MQ2 sensor"); delay(20000); // wait for the MQ2 to warm up } void loop() { int gasState = digitalRead(DO_PIN); if (gasState == HIGH) Serial.println("The gas is NOT present"); else Serial.println("The gas is present"); }

Snelle stappen

  • Als u voor het eerst met ESP32 werkt, bekijk dan hoe u de ontwikkelomgeving instelt voor ESP32 in Arduino IDE.
  • Kopieer bovenstaande code en open deze met Arduino IDE
  • Klik op de knop Upload om de code naar de ESP32 te uploaden
  • Plaats de MQ2 gassensor in de buurt van de rook/gas die u wilt detecteren
  • Bekijk het resultaat in de Serial Monitor.
COM6
Send
The gas is NOT present The gas is NOT present The gas is NOT present The gas is NOT present The gas is NOT present The gas is present The gas is present The gas is present The gas is present The gas is present
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Houd er rekening mee dat als u merkt dat de LED constant aan of uit blijft staan, u de potentiometer kunt aanpassen om de gevoeligheid van de sensor bij te stellen.

ESP32 Code – Waarde uitlezen vanaf AO pin

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-gas-sensor */ #define AO_PIN 36 // ESP32's pin GPIO36 connected to AO pin of the MQ2 sensor void setup() { // initialize serial communication Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); Serial.println("Warming up the MQ2 sensor"); delay(20000); // wait for the MQ2 to warm up } void loop() { int gasValue = analogRead(AO_PIN); Serial.print("MQ2 sensor AO value: "); Serial.println(gasValue); }

Snelle stappen

  • Kopieer bovenstaande code en open deze met Arduino IDE
  • Klik op de knop Upload om de code naar de ESP32 te uploaden
  • Plaats de MQ2 gassensor in de buurt van de rook/gas die u wilt detecteren
  • Bekijk het resultaat in de Serial Monitor.
COM6
Send
MQ2 sensor AO value: 135 MQ2 sensor AO value: 136 MQ2 sensor AO value: 136 MQ2 sensor AO value: 573 MQ2 sensor AO value: 674 MQ2 sensor AO value: 1938 MQ2 sensor AO value: 1954 MQ2 sensor AO value: 2000 MQ2 sensor AO value: 3002 MQ2 sensor AO value: 4014 MQ2 sensor AO value: 4017
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vanuit de waarden die u leest via DO of AO kunt u de luchtkwaliteit afleiden volgens uw eigen standaard, of een alarm activeren of ventilatiesystemen inschakelen.

※ Notiz:

Deze tutorial maakt gebruik van de functie analogRead() om waarden uit te lezen van een ADC (Analog-to-Digital Converter) die aan de gassensor is gekoppeld. De ESP32 ADC is geschikt voor projecten waarvoor geen hoge nauwkeurigheid vereist is. Voor projecten die precieze metingen nodig hebben, geldt echter:

  • De ESP32 ADC is niet perfect accuraat en kan een kalibratie nodig hebben voor correcte resultaten. Elke ESP32 kan iets anders zijn, dus u zult de ADC per bord moeten kalibreren.
  • Kalibratie kan moeilijk zijn, vooral voor beginners, en levert niet altijd de gewenste exacte resultaten op.

Voor projecten die hoge precisie vereisen, overweeg het gebruik van een externe ADC (bijv. ADS1115) met de ESP32 of het gebruik van een Arduino, die een betrouwbaardere ADC heeft. Als u toch de ESP32 ADC wilt kalibreren, raadpleeg dan ESP32 ADC Calibration Driver

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u om de stappen nauwkeurig op te volgen.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!