Translate

ARDUINO MONITORSUHU KELEMBABAN DEBU DAN GAS SENSOR MQ-7 DHT11 DAN GP2Y1010AU0F

ARDUINO MONITORSUHU KELEMBABAN DEBU DAN GAS SENSOR MQ-7 DHT11 DAN GP2Y1010AU0F


           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat berfungsi untuk monitor suhu dan gas serta debu. alat ini menggunakan Arduino sebagai mikrokontrollernya dan interfacenya menggunakan LCD. alat ini dapat dikembangkan untuk monitor udara disuatu tempat sehingga bisa terdeteksi kadarnya. untuk lebih jelasnya berikut adalah daftar komponen dan programnya.




a. Arduino Uno




b. Sensor Gas MQ-7




c. Sensor DHT11




d. Sensor Debu






e. Lcd + I2C






f. Program Arduino IDE

#include <Wire.h> //library
#include <LiquidCrystal_I2C.h>  //library lcd
#include "DHT.h"  //library dht11

#define DHTPIN 3     // pin digital untuk dht11
#define DHTTYPE DHT11   // set dht11

DHT dht(DHTPIN, DHTTYPE);  //set dht11
LiquidCrystal_I2C lcd(0x27, 16, 2);  //untuk library lcd i2c

int ledx = 2;   //untuk pin sensor debu
float ppm2;   //variabel untuk mq7
float RS_air; //  Get the value of RS via in a clear air
float R0 = 0.25;  // Get the value of R0 via in H2
float sensorValue;  // variabel bisa pecahan
float sensor_volt; // variabel bisa pecahan
float RS_gas;  //variabel bisa pecahan
float ratio;  //variabel bisa pecahan


void setup()  //prosedure
{
 dht.begin();  //mulai dht11
 lcd.begin();  //mulai lcd
 lcd.clear();  //bersihakn lcd
 lcd.noCursor();  //lcd tanpa kursor
 pinMode(ledx,OUTPUT);  //pin sebagai output
 pinMode(A3,OUTPUT);  //pin sebagai output
}


void loop()  //prosedure
{

 float h = dht.readHumidity();  //ambil data humidity
 float t = dht.readTemperature();  //ambil data suhu c
 float f = dht.readTemperature(true); //ambil data suhu f

 int hum = h;  //deklarasi variabel
 int suhu = t;  //deklaras variabel

  if (isnan(h) || isnan(t) || isnan(f)) {  //untuk koneksi dht11
    Serial.println("Failed to read from DHT sensor!");  //jika error
    return;  //maka kembali
  }

  float hif = dht.computeHeatIndex(f, h);  //untuk dht11
  float hic = dht.computeHeatIndex(t, h, false);  //untuk dht11


//aktif low
//GP2Y1010AU0F_SAMPLEDELAY should be 280us to perform the correct reading
//this delay should consider that ADC conversion takes 13 ADC clock cycles
//ADCtime(s) = (1/ADCclock)*13 = (1/FCPU/ADCprescaler)*13
// es (1/(8000000/64))*13 = 0.000104s = 104us
//so to perform reading at correct time
//280 - (1/FCPU/ADCprescaler)*13*1000000   , 1000000 is the conversion factor from s to us
// es. 280 - 104 = 176

digitalWrite(ledx,LOW);    //pin on
delayMicroseconds(176);  //delay

int dataadc = analogRead(A0);  //ambil adc
delayMicroseconds(40);  //delay

digitalWrite(ledx,HIGH);   //pin off
delayMicroseconds(9680);  //delay

float v = dataadc * (5.0 / 1023.0);    //untuk dikonvert ke tegangan

//y = 0.166x - 0.129   //rumus
float Dustval = (v * 0.166) - 0.129;  //rumus sensor debu
delay(80);  //delay

gasmq7();  //ambil data gas mq7

  lcd.setCursor(0,0);  //untuk menampilkan d baris atas
  lcd.print("S=");  //menulis huruf
  lcd.print(suhu); //menulis suhu
  lcd.print(" / ");  //menulis tanda /
  lcd.print("P=");  //menulis p
  lcd.print(ppm2); //menulis nilai sensor gas
  lcd.print("     "); //spasi

  lcd.setCursor(0,1);  //untuk menulis d lcd bawah
  lcd.print("Dust= "); //menulis variabel
  lcd.print(Dustval); //menulis nilai
  lcd.print(" mg/m3");  //menulis variabel

}

void gasmq7(){  //prosedure

analogWrite(A3, 1023);  //untuk mengeluarkan tegangan
//Heather 1.4 V 90 s 
    analogWrite(A3, (1023/5)*1.4 );  //untuk mengeluarkan tegangan
    //for(int i = 0; i<90; i++){     
        sensorValue = analogRead(A1);  //untuk ambil adc sensor mq7
        sensor_volt = sensorValue/1024*5.0;  //untuk menjadi tegangan
        RS_gas = (5.0-sensor_volt)/sensor_volt;  //untuk rumus
        ratio = RS_gas/R0; //Replace R0 with the value found using the calibration code
        float kal = 83.39 / ratio;  //untuk rumus
        ppm2 = pow(kal , 0.63);       //untuk jadi ppm
        delay(100);  //delay
    //}

}





g. VIDEO HASILNYA















No comments:

Post a Comment