Air quality click is a simple solution for adding a high sensitivity sensor for detecting a variety of gases that impact air quality in homes and offices. It carries an MQ-135 sensor. The click is designed to run on a 5V power supply. It communicates with the target microcontroller over the AN pin on the mikroBUS™ line.
Air quality click is suitable for detecting ammonia (NH3), nitrogen oxides (NOx) benzene, smoke, CO2 and other harmful or poisonous gases that impact air quality. The MQ-135 sensor unit has a sensor layer made of tin dioxide (SnO2), an inorganic compound which has lower conductivity in clean air than when polluting gases are present.
To calibrate Air quality click for optimum performance, use the on-board potentiometer to adjust the load resistance on the sensor circuit.
Type | Gas |
Applications | Air quality detection for homes and offices. |
On-board modules | MQ-135 sensor |
Key Features | Potentiometer for calibration |
Key Benefits | The gas sensing layer on the sensor unit is made of tin dioxide (SnO2), which has lower conductivity in clean air |
Interface | Analog |
Input Voltage | 3.3V or 5V |
Compatibility | mikroBUS |
Click board size | M (42.9 x 25.4 mm) |
This table shows how the pinout on Air quality click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Code examples for Air quality click, written for MikroElektronika hardware and compilers are available on Libstock.
Code snippet
The following code snippet intitializes the LCD display, pins, and ADC, and then periodically calculates ppm value, and prints it to the LCD.
01 void main() { 02 03 LCD_Init(); // Initialize Lcd 04 Lcd_Cmd(_LCD_CLEAR); // Clear display 05 Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off 06 Lcd_Out(1,1,"AirQuality click"); // Write text in first row 07 08 ANSELA = 0x04; // Set ADC on RA2 09 TRISA = 0x04; // Set RA2 as input 10 LATA = 0; // Set PORTA as 0 11 ADC_Init(); // Initialize ADC 12 delay_ms(100); // Pause of 100ms for ADC module stabilization 13 14 //Initial read ADC and display PPM value on LCD 15 readSensor(); // Read sensor 16 calculatePPM(); // Calculating PPM value 17 18 FloatToStr(ppm,&txt); // Conversion float ppm to string txt 19 LCD_Out(2,14,"ppm"); // Print text on LCD 20 LCD_Out(2,1,txt); // Print txt value on LCD 21 22 while(1) { 23 24 delay_ms(500); // Pause 500ms 25 readSensor(); // Read sensor 26 calculatePPM(); // Calculating PPM value 27 FloatToStr(ppm,&txt); // Conversion float ppm to string txt 28 LCD_Out(2,1," "); 29 LCD_Out(2,1,txt); // Print txt value on LCD 30 31 } 32 }