User Tools

Site Tools


amc2021:code:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
amc2021:code:start [2021/09/03 01:01] โ€“ [For Carbon Dioxide detection in air] kshama001amc2021:code:start [2021/09/03 18:48] (current) โ€“ removed kshama001
Line 1: Line 1:
-======Arduino Code====== 
  
-===== For Carbon Dioxide detection in air ===== 
- 
-This code communicates with the MQ135 air quality sensor. The sensor is supposed to preheat for 24 hours before taking readings. 
-Once the code runs, it prints out the concentration of detected gases in ppm on a serial monitor and the results are displayed on an LCD screen 
-An alarm system (LED light) is also set to glow if the CO<sub>2<\sub> values cross a threshold value of 1000ppm.  
-  
- 
-<code> 
-                               
-#include "MQ135.h"  
-#include <Wire.h>  
-#include <LiquidCrystal_I2C.h>  //Header file for LCD 
- 
-LiquidCrystal_I2C lcd(0x27,16,2);//set the LCD address to x27 for a 16 chars and 2 line display 
- 
-#define led          9                       //led on pin 9 
-const int gas_pin = A0;                      //analog feed from MQ135 
-MQ135 gasSensor = MQ135(gas_pin); 
- 
-void setup(){ 
- 
-  lcd.init();                      // initialize the lcd  
-  lcd.begin(16,2);                  // consider 16 chars + 2 lines lcd 
-  lcd.backlight();                 // illuminate to produce visible reading 
-  lcd.clear();                     // clear lcd 
-  lcd.setCursor(4,0);              //set cursor of lcd to 1st row and 5th column 
-  lcd.print("Group L");          // print as a sentence on lcd 
- 
-  pinMode(gas_pin,INPUT);     //MQ135 analog feed set for input 
-  pinMode(led,OUTPUT);        //led set for output 
-   
-  Serial.begin(9600);        //serial comms for debugging 
-} 
- 
-void loop(){ 
- float ppm = gasSensor.getPPM(); 
- Serial.println(ppm);            // print ppm on serial monitor 
- delay(1000);                     
-   lcd.clear();                  // clear lcd 
-   lcd.setCursor(0,0);          // set cursor of lcd to 1st row and 1st column 
-   lcd.print("Air Quality: ");  // print as a sentence on lcd 
-   lcd.print(ppm);             // print value of MQ135 
- if(ppm>999){                  //if co2 ppm > 1000 
-    digitalWrite(led,HIGH);    //turn on led 
-    lcd.setCursor(2,1);        // set cursor of lcd to 2nd row and 3rd column 
-    lcd.print("AQ Level BAD");  //print as a sentence on lcd 
-   } 
- else{               
-    digitalWrite(led,LOW);         //turn off led 
-    lcd.setCursor(1,1);            // set cursor of lcd to 2nd row and 2nd column 
-    lcd.print ("AQ Level Good");   // print as a sentence on lcd 
-  } 
- 
-} 
- 
-</code> 
- 
-===== **For noise disturbance detection in the environment** ===== 
- 
- 
-<code> 
-/* This code is meant to monitor the sound intensity using LM393 sensor connected to Arduino UNO board. 
-//The used sensor has only a digital output. Therefore, the number of times the sensor detects a sound is summed up over a sampling time called "SAMPLE_TIME" 
-//Then the sum called "sampleBufferValue" is printed on a Serial Monitor (laptop), and visualized with the Serial Plotter.  
-// The code allows to communicate  with a LED in order to provide a visual alarm if the "sampleBufferValue" surpasses a preset Threshold  "Threshold" */ 
- 
-// 0 means silence and 1 means noise 
- 
- const int OUT_PIN = 12;          // The OUTPUT of the sound sensor is connected to the digital pin D12 of the Arduino  
- const int SAMPLE_TIME = 10;      // The sampling time in milliseconds,  can be set differently if required 
- const int Threshold = 90;       // Threshold on decibel value for LED switching ON, the value has been optimized with respect to the used sampling time (900 cumulative digital counts โ‰ˆ 90 dB from "Schall") 
- 
- unsigned long millisCurrent;     // current time 
- unsigned long millisLast = 0;    //previous time 
- unsigned long millisElapsed = 0; // difference between current time and previous time (time interval) 
- 
- int sampleBufferValue = 0;       // initiate the sum of digital outputs over the sampling time 
- int led = 8;                    // LED on pin 4 of Arduino 
- int dB = 0;                     //initiate sound intensity dB value 
- 
-void setup() { 
- 
-  Serial.begin(9600);           //Arduino starts serial communication with baud rate 9600 
-  pinMode(led,OUTPUT);          // the LED is connected as output for alarm purpose 
-  
-} 
- 
-void loop() {  
- 
-  millisCurrent = millis();                    //the current time is assigned to the dedicated variable 
-  millisElapsed = millisCurrent - millisLast; //the elapsed time is updated  
-   
-  if(digitalRead(OUT_PIN) == HIGH){          //HIGH means noise 
-    
-  sampleBufferValue++;                       //increments the sum variable by 1 
-  } 
-   if (millisElapsed > SAMPLE_TIME) {       //if the elapsed time surpasses the sampling time, print the sampleBufferValue and test threshold for alarm 
-    
-   dB = 0.0666 *(sampleBufferValue) + 30.223; //linear regression to calculate the decibel value based of the rough calibration of the sensor response  
-  Serial.println(dB);                        // print decibel values on the Serial Monitor  
-  Serial.print("dB");                        // print sound unit decibel 
-   
-   
-   if (sampleBufferValue > Threshold) {     // test if the threshold is surpassed  
-   
-    digitalWrite(led, HIGH);                //blink LED 2 ms ON and 1 ms OFF 
-    delay(2); 
-    digitalWrite(led, LOW); 
-    delay(1); 
-  } 
-   
-  digitalWrite(led, LOW);                  // the LED is turned off to be ready for the next sample 
-  sampleBufferValue = 0;                   // re-initialization of the  sampleBufferValue variable for the new sampling time 
-  millisLast = millisCurrent;              // update the previous time to be the start for the next sample 
-  } 
-} 
- 
-</code> 
amc2021/code/start.1630623663.txt.gz ยท Last modified: 2023/01/05 14:38 (external edit)