Components and supplies
16x2 LCD display with I²C interface
MQ136 Gas Sensor
MQ135 Gas sensor
(MQ303A) Gas Sensor
Grove - Gas Sensor(MQ5)
(MQ309A) Gas Sensor
(MQ307A) Gas Sensor
MQ8 Gas sensor
Grove - Gas Sensor (MQ9)
MQ3 Gas sensor
MQ137 Gas Sensor
(MQ303A) Gas Sensor
Arduino Uno Rev3
Gravity: Analog Propane Gas Sensor (MQ6) For Arduino
MQ4 Gas sensor
20K Potantiometer
MQ2 gas sensor
MQ-131(ozone)
MQ7 Gas sensor
Apps and platforms
PlatformIO IDE
Arduino IDE 2.0 (beta)
Project description
Code
Adjustable Air Quality Monitoring & Analysis Platform with Plug-UnPlug System
cpp
1#include <MQSpaceData.h> 2#include <LiquidCrystal_I2C.h> 3 4#define ADC_BIT_RESU (10) 5#define space (A1) 6 7#define pot analogRead(A0) 8 9MQSpaceData MQ(ADC_BIT_RESU, space); 10 11int lcdColumns = 16; 12int lcdRows = 2; 13 14int x, Air; 15String xname, mode, strper; 16 17LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows); 18 19void setup() { 20 MQ.begin(); 21 lcd.init(); 22 lcd.backlight(); 23} 24 25void loop() { 26 switch (map(pot, 0, (1 << ADC_BIT_RESU) - 1, 1, 14)) { 27 case (1): MQ135(); break; 28 case (2): MQ2(); break; 29 case (3): MQ3(); break; 30 case (4): MQ4(); break; 31 case (5): MQ5(); break; 32 case (6): MQ6(); break; 33 case (7): MQ7(); break; 34 case (8): MQ8(); break; 35 case (9): MQ9(); break; 36 case (10): MQ131(); break; 37 case (11): MQ136(); break; 38 case (12): MQ137(); break; 39 case (13): MQ303A(); break; 40 case (14): MQ307A(); break; 41 case (15): MQ309A(); break; 42 } 43} 44 45void hello() { 46 lcd.setCursor(0, 0); 47 lcd.print("Air:" + String(Air)); 48 lcd.setCursor(16 - mode.length(), 0); 49 lcd.print(mode); 50 lcd.setCursor(0, 1); 51 lcd.print(xname + ":" + String(x)); 52 strper = String(int(MQ.MQData100())); 53 lcd.setCursor(16 - strper.length() - 1, 1); 54 lcd.print("%" + strper); 55 delay(1500); 56 lcd.clear(); 57} 58 59void MQ135(){ 60 MQ.RSRoMQAir(3.6); 61 MQ.setRL(20); 62 mode = "MQ-135"; 63 64 xname = "CO"; 65 MQ.dangerousPer(42.5); 66 x = MQ.MQ135DataCO(); 67 hello(); 68 69 xname = "Alcohol"; 70 MQ.dangerousPer(25.55); 71 x = MQ.MQ135DataAlcohol(); 72 hello(); 73 74 xname = "CO2"; 75 MQ.dangerousPer(27.77); 76 x = MQ.MQ135DataCO2(); 77 hello(); 78 79 xname = "Toluen"; 80 MQ.dangerousPer(21.944); 81 x = MQ.MQ135DataToluen(); 82 hello(); 83 84 xname = "NH4"; 85 MQ.dangerousPer(29.166); 86 x = MQ.MQ135DataNH4(); 87 hello(); 88 89 xname = "Aceton"; 90 MQ.dangerousPer(20.55); 91 x = MQ.MQ135DataAceton(); 92 hello(); 93 94 Air = MQ.MQ135DataAir(); 95} 96 97void MQ2() { 98 MQ.RSRoMQAir(9.8); 99 MQ.setRL(20); 100 mode = "MQ-2"; 101 102 xname = "H2"; 103 MQ.dangerousPer(10.2); 104 x = MQ.MQ2DataH2(); 105 hello(); 106 107 xname = "LPG"; 108 MQ.dangerousPer(7.96); 109 x = MQ.MQ2DataLPG(); 110 hello(); 111 112 xname = "CO"; 113 MQ.dangerousPer(31.63); 114 x = MQ.MQ2DataCO(); 115 hello(); 116 117 xname = "Alcohol"; 118 MQ.dangerousPer(16.33); 119 x = MQ.MQ2DataAlcohol(); 120 hello(); 121 122 xname = "Propane"; 123 MQ.dangerousPer(8.38); 124 x = MQ.MQ2DataPropane(); 125 hello(); 126 127 xname = "CH4"; 128 MQ.dangerousPer(17.86); 129 x = MQ.MQ2DataCH4(); 130 hello(); 131 132 xname = "Smoke"; 133 MQ.dangerousPer(18.98); 134 x = MQ.MQ2Datasmoke(); 135 hello(); 136 137 Air = MQ.MQ2DataAir(); 138} 139 140void MQ3() { 141 MQ.RSRoMQAir(9.8); 142 MQ.setRL(20); 143 mode = "MQ-3"; 144 145 xname = "H2"; 146 MQ.dangerousPer(10.2); 147 x = MQ.MQ2DataH2(); 148 hello(); 149 150 xname = "LPG"; 151 MQ.dangerousPer(7.96); 152 x = MQ.MQ2DataLPG(); 153 hello(); 154 155 xname = "CO"; 156 MQ.dangerousPer(31.63); 157 x = MQ.MQ2DataCO(); 158 hello(); 159 160 xname = "Alcohol"; 161 MQ.dangerousPer(16.33); 162 x = MQ.MQ2DataAlcohol(); 163 hello(); 164 165 xname = "Propane"; 166 MQ.dangerousPer(8.38); 167 x = MQ.MQ2DataPropane(); 168 hello(); 169 170 xname = "CH4"; 171 MQ.dangerousPer(17.86); 172 x = MQ.MQ2DataCH4(); 173 hello(); 174 175 xname = "Smoke"; 176 MQ.dangerousPer(18.98); 177 x = MQ.MQ2Datasmoke(); 178 hello(); 179 180 Air = MQ.MQ2DataAir(); 181} 182 183void MQ4() { 184 MQ.RSRoMQAir(4.4); 185 MQ.setRL(20); 186 mode = "MQ-4"; 187 188 xname = "H2"; 189 MQ.dangerousPer(64.43); 190 x = MQ.MQ4DataH2(); 191 hello(); 192 193 xname = "LPG"; 194 MQ.dangerousPer(34.32); 195 x = MQ.MQ4DataLPG(); 196 hello(); 197 198 xname = "CH4"; 199 MQ.dangerousPer(22.73); 200 x = MQ.MQ4DataCH4(); 201 hello(); 202 203 xname = "CO"; 204 MQ.dangerousPer(86.14); 205 x = MQ.MQ4DataCO(); 206 hello(); 207 208 xname = "Alcohol"; 209 MQ.dangerousPer(82.05); 210 x = MQ.MQ4DataAlcohol(); 211 hello(); 212 213 xname = "Smoke"; 214 MQ.dangerousPer(80.23); 215 x = MQ.MQ4DataSmoke(); 216 hello(); 217 218 Air = MQ.MQ4DataAir(); 219} 220 221void MQ5() { 222 MQ.RSRoMQAir(6.5); 223 MQ.setRL(20); 224 mode = "MQ-5"; 225 226 xname = "H2"; 227 MQ.dangerousPer(15.12); 228 x = MQ.MQ5DataH2(); 229 hello(); 230 231 xname = "LPG"; 232 MQ.dangerousPer(5.54); 233 x = MQ.MQ5DataLPG(); 234 hello(); 235 236 xname = "CH4"; 237 MQ.dangerousPer(7.92); 238 x = MQ.MQ5DataCH4(); 239 hello(); 240 241 xname = "CO"; 242 MQ.dangerousPer(44.15); 243 x = MQ.MQ5DataCO(); 244 hello(); 245 246 xname = "Alcohol"; 247 MQ.dangerousPer(39.38); 248 x = MQ.MQ5DataAlcohol(); 249 hello(); 250 251 Air = MQ.MQ5DataAir(); 252} 253 254void MQ6() { 255 MQ.RSRoMQAir(10); 256 MQ.setRL(20); 257 mode = "MQ-6"; 258 259 xname = "H2"; 260 MQ.dangerousPer(33.7); 261 x = MQ.MQ6DataH2(); 262 hello(); 263 264 xname = "LPG"; 265 MQ.dangerousPer(10); 266 x = MQ.MQ6DataLPG(); 267 hello(); 268 269 xname = "CH4"; 270 MQ.dangerousPer(13.5); 271 x = MQ.MQ6DataCH4(); 272 hello(); 273 274 xname = "CO"; 275 MQ.dangerousPer(78); 276 x = MQ.MQ6DataCO(); 277 hello(); 278 279 xname = "Alcohol"; 280 MQ.dangerousPer(61.2); 281 x = MQ.MQ6DataAlcohol(); 282 hello(); 283 284 Air = MQ.MQ6DataAir(); 285} 286 287void MQ7() { 288 MQ.RSRoMQAir(26); 289 MQ.setRL(10); 290 mode = "MQ-7"; 291 292 xname = "H2"; 293 MQ.dangerousPer(3.08); 294 x = MQ.MQ7DataH2(); 295 hello(); 296 297 xname = "LPG"; 298 MQ.dangerousPer(30.77); 299 x = MQ.MQ7DataLPG(); 300 hello(); 301 302 xname = "CH4"; 303 MQ.dangerousPer(49.18); 304 x = MQ.MQ7DataCH4(); 305 hello(); 306 307 xname = "CO"; 308 MQ.dangerousPer(3.85); 309 x = MQ.MQ7DataCO(); 310 hello(); 311 312 xname = "Alcohol"; 313 MQ.dangerousPer(57.69); 314 x = MQ.MQ7DataAlcohol(); 315 hello(); 316 317 Air = MQ.MQ7DataAir(); 318} 319 320void MQ8() { 321 MQ.RSRoMQAir(70); 322 MQ.setRL(10); 323 mode = "MQ-8"; 324 325 xname = "H2"; 326 MQ.dangerousPer(1.43); 327 x = MQ.MQ8DataH2(); 328 hello(); 329 330 xname = "LPG"; 331 MQ.dangerousPer(27.53); 332 x = MQ.MQ8DataLPG(); 333 hello(); 334 335 xname = "CH4"; 336 MQ.dangerousPer(63.47); 337 x = MQ.MQ8DataCH4(); 338 hello(); 339 340 xname = "CO"; 341 MQ.dangerousPer(80.57); 342 x = MQ.MQ8DataCO(); 343 hello(); 344 345 xname = "Alcohol"; 346 MQ.dangerousPer(14.81); 347 x = MQ.MQ8DataAlcohol(); 348 hello(); 349 350 Air = MQ.MQ8DataAir(); 351} 352 353void MQ9() { 354 MQ.RSRoMQAir(9.7); 355 MQ.setRL(20); 356 mode = "MQ-9"; 357 358 xname = "LPG"; 359 MQ.dangerousPer(10.31); 360 x = MQ.MQ9DataLPG(); 361 hello(); 362 363 xname = "CH4"; 364 MQ.dangerousPer(18.04); 365 x = MQ.MQ9DataCH4(); 366 hello(); 367 368 xname = "CO"; 369 MQ.dangerousPer(8); 370 x = MQ.MQ9DataCO(); 371 hello(); 372 373 Air = MQ.MQ9DataAir(); 374} 375 376void MQ131() { 377 MQ.RSRoMQAir(12); 378 MQ.setRL(100); 379 mode = "MQ131"; 380 381 xname = "NOx"; 382 MQ.dangerousPer(23.75); 383 x = MQ.MQ131DataNOx(); 384 hello(); 385 386 xname = "CL2"; 387 MQ.dangerousPer(8.33); 388 x = MQ.MQ131DataCL2(); 389 hello(); 390 391 xname = "O3"; 392 MQ.dangerousPer(4.166); 393 x = MQ.MQ131DataO3(); 394 hello(); 395 396 Air = MQ.MQ131DataAir(); 397} 398 399void MQ136() { 400 MQ.RSRoMQAir(3.54); 401 MQ.setRL(20); 402 mode = "MQ-136"; 403 404 xname = "H2S"; 405 MQ.dangerousPer(40.68); 406 x = MQ.MQ136DataH2S(); 407 hello(); 408 409 xname = "NH4"; 410 MQ.dangerousPer(72); 411 x = MQ.MQ136DataNH4(); 412 hello(); 413 414 xname = "CO"; 415 MQ.dangerousPer(81.64); 416 x = MQ.MQ136DataCO(); 417 hello(); 418 419 Air = MQ.MQ136DataAir(); 420} 421 422void MQ137() { 423 MQ.RSRoMQAir(3.54); 424 MQ.setRL(47); 425 mode = "MQ-137"; 426 427 xname = "CO"; 428 MQ.dangerousPer(81.64); 429 x = MQ.MQ137DataCO(); 430 hello(); 431 432 xname = "Ethanol"; 433 MQ.dangerousPer(72); 434 x = MQ.MQ137DataEthanol(); 435 hello(); 436 437 xname = "NH3"; 438 MQ.dangerousPer(40.68); 439 x = MQ.MQ137DataNH3(); 440 hello(); 441 442 Air = MQ.MQ137DataAir(); 443} 444 445void MQ303A() { 446 MQ.RSRoMQAir(1); 447 MQ.setRL(47); 448 mode = "MQ303A"; 449 450 xname = "IsoButane"; 451 MQ.dangerousPer(17); 452 x = MQ.MQ303ADataIso(); 453 hello(); 454 455 xname = "Hydrogen"; 456 MQ.dangerousPer(13); 457 x = MQ.MQ303ADataHyd(); 458 hello(); 459 460 xname = "Ethanol"; 461 MQ.dangerousPer(10); 462 x = MQ.MQ303ADataEthanol(); 463 hello(); 464 465 Air = MQ.MQ303ADataAir(); 466} 467 468void MQ309A() { 469 mode = "MQ309A"; 470 MQ.setRL(50); 471 MQ.RSRoMQAir(11); 472 473 xname = "H2"; 474 MQ.dangerousPer(11.4545); 475 x = MQ.MQ309ADataH2(); 476 hello(); 477 478 xname = "CH4"; 479 MQ.dangerousPer(9.0909); 480 x = MQ.MQ309ADataCH4(); 481 hello(); 482 483 xname = "CO"; 484 MQ.dangerousPer(54.5454); 485 x = MQ.MQ309ADataCO(); 486 hello(); 487 488 xname = "Alcohol"; 489 MQ.dangerousPer(49.0909); 490 x = MQ.MQ309ADataAlcohol(); 491 hello(); 492 493 Air = MQ.MQ309ADataAir(); 494} 495 496void MQ307A(){ 497 mode = "MQ307A"; 498 MQ.setRL(50); 499 MQ.RSRoMQAir(100); 500 501 xname = "CO"; 502 MQ.dangerousPer(0.96); 503 x = MQ.MQ307ADataCO(); 504 hello(); 505 506 xname = "H2"; 507 MQ.dangerousPer(56.107); 508 x = MQ.MQ307ADataH2(); 509 hello(); 510} 511 512// MQ-X: [PIN --> A1] [GND --> GND] [VCC --> 5V] 513// Potentiometer: [PIN --> A0] [GND --> GND] [VCC --> 5V]
Documentation
Circuit Diagram
circut.png
Comments
Only logged in users can leave comments
abcda123
0 Followers
•0 Projects
Table of contents
Intro
3
0