Indien je uitsluitend wilt weten of de luchtkwaliteit onder een ‘gezond’ niveau komt, dan kun je de goedkope MQ-135 sensor gebruiken.
Deze heeft naast de analoge uitgang, ook een digital uitgang die ‘hoog’ wordt indien een bepaalde grens wordt overschreden. Die grens kun je instellen met de potmeter op het printplaatje, standaard staat die ingesteld op 400 ppm.
De analoge uitgang (AO) en de digital uitgang (DO) kunnen op een ESP32 aangesloten worden en de spanning wordt aangesloten op 5V en GND. De gas-sensor in de MQ-135 dient opgewarmd te worden voordat deze accurate gegevens geleverd worden, 24 uur is de eerste keer het beste om de sensor stabiel te krijgen, daarna volstaat 60-120 seconden.
Indien gas wordt gedetecteerd zoals rook, benzine, CO2, alcohol, ammoniak en/of stikstofoxide, zal een klein LEDje op het printplaatje oplichten en zal de digitale uitgang (DO) dus hoog worden.
Ik gebruik de analoge uitgang als controle maar in feite is die niet nodig. Als de DO ‘hoog’ wordt weet je dat er te veel ‘foute’ gassen aanwezig zijn en moet je gaan ventileren.
Op de ESP-32 module die ik hiervoor gebruikt heb, wordt de analoge uitgang (AO) aangesloten op GPIO34 en de digitale uitgang (DO) op GPIO13. De GND en de VCC gaat op een 5 Volt aansluiting die vanuit een USB poort komt. Afhankelijk van het type ESP32 vind je wel of geen 5 Volt pin op de ESP32 en zul je iets vanuit de USB poort moeten halen..
Zie hier het aansluitschema van de ESP32 die ik momenteel in gebruik heb:
In de ESPHome Device Builder kan de configuratie voor de ESP32 geconfigureerd worden. Toevoegen van een (nieuwe) ESP32 is vrij simpel en de sensoren voor de MQ-135 zien er als volgt uit
Analoge sensor:
sensor:
- platform: adc
id: mq135_voltage
pin: GPIO34
attenuation: 11db
update_interval: 30s
samples: 10
name: "MQ135 Voltage"
Hiermee wordt de analoge spanning uitgelezen via een Analoge-Digital-Converter (adc) en daar kan dan met een template een berekening voor de ppm gemaakt worden. Deze template wordt dan als volgt:
- platform: template
name: "MQ135 PPM"
lambda: |-
float v = id(mq135_voltage).state;
float ppm = pow((5 - v) / v, -2.8) * 116.6;
return ppm;
Digitale sensor:
binary_sensor:
- platform: gpio
name: Gas Detectie
pin: GPIO13
id: binary_sensor_gpio_1
filers:
- invert:
Na het schrijven van de configuratie in de ESP32 via Install (of Update) zijn zowel de sensoren bekend binnen Home Assistant.



