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
Next revision
Previous revision
amc2021:code:start [2021/09/02 22:47] โ€“ [**For noise disturbance detection in the environment**] leen001amc2021:code:start [2021/09/03 18:48] (current) โ€“ removed kshama001
Line 1: Line 1:
-======Arduino Code====== 
  
-===== For Carbon Dioxide detection in air ===== 
- 
- 
-<code> 
-/* 
-  // This code communicates with the MQ135 air quality sensor. The sensor is supposed to preheat for 2 mins before taking readings 
-  // Once the code runs, it prints out the concentration of detected gases in ppm on a serial monitor and a LCD 20 x 4 screen 
-  //An alarm system (LED light) is also set to print out messages saying if the air is of a good quality relying on a predefined threshold value 
-*/ 
-  // digital output value is converted to ppm value using CO2 gas as parameter                                 
-#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 = 900; // Threshold on cumulative counts for LED switching ON, the value has been optimized with respect to the used sampling time of 10 ms here. (900 digital outputs โ‰ˆ 90 dB from "Shall") 
- 
- 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 
- 
-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 the threshold for the alarm 
-    
-   dB = 0.0666 *(sampleBufferValue) + 30.223; //linear regression to calculate the decibel value based of the rough clibration of the sensor response  
-  Serial.println(dB); // print decibel values on the Serial Monitor  
-   
-   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.1630615629.txt.gz ยท Last modified: 2023/01/05 14:38 (external edit)