Elektronika

Mengukur Kepekatan Debu menggunakan Dust Sensor + Arduino

Assalamu-alaikum teman teman, kembali lagi di cronyos.com  :salaman, kali ini kita akan belajar cara mengukur kepekatan debu pada udara menggunakan sebiah sensor dari sharp yaitu sensor Sharp GP2Y1010AU0F, sensor ini dihargai cukup murah menurut saya, hanya sekitar 150 ribuan. dengan sensor ini kita dapat mengukur kepekatan debu pada udara yang nantinya dapat kita gunakan mengetahui kualitas udara

Sebelum belajar menggunakannya maka ada beberapa bahan yang harus kita siapkan, antara lain

  1. Arduino Board (Link Tokopedia)
  2. Sensor Debu / Dust Sensor GP2Y1010AU0F (Link Tokopedia)
  3. Kabel Jumper (Link Tokopedia)
  4. Elco 220 uF
  5. Resistor 220 Ohm

Setelah semua bahan tersedia selanjutnya kita buat rangkaiannya. buat rangkaiannya seperti wiring berikut ini

Setelah komponen selesai dirangkai selanjutnya kita uploud coding / sketch berikut ini

int ledPower = 2;
int measurePin = A0;
int samplingTime = 280;
int sleepTime = 100;
 
float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;
float voltDensity = 0;

void setup() {
  Serial.begin(9600);
  pinMode(ledPower,OUTPUT);

}

void loop() {
      digitalWrite(ledPower,LOW); // power on the LED
      delayMicroseconds(samplingTime);
     
      voMeasured = analogRead(measurePin); // read the dust value
      digitalWrite(ledPower,HIGH); // turn the LED off
      delayMicroseconds(sleepTime);
     
      calcVoltage = ( ( voMeasured * 5 ) / 1024);
      voltDensity = calcVoltage - 0.6;
      dustDensity = voltDensity * 0.17;
     
      Serial.print(" - Dust Density: ");
      Serial.print(dustDensity);
      Serial.println(" Kg/m3");
}

Setelah coding berhasil di uploud maka kalian akan melihat intensitas debu yang terbaca oleh sensor debu tersebut. untuk mencobanya kalian bisa memasukan ujung lidi / sejenisnya ke lubang pembacaan sensor. 

Hal ini untuk mensimulasikan kalau dust sensor mendeteksi debu yang sangat pekat, jika langkah langkah diatas dikerjakan dengan baik maka di serial monitor kita akan melihat intensitas debu yang terbaca adalah sekitar 0.59 kg/m3.

Baik, cara untuk membaca kepadatan debu menggunakan arduino sudah selesai, namun mungkin masih ada yang bertanya tanya fungsi dari setiap baris kode dan darimanakah perhitungan di coding tersebut didapatkan? dan kenapa pas mensimulasikan sensor membaca debu yang sangat padat menggunakan cara memasukan batang lidi? okelah mari kita ulas satu persatu.

Pertama kita bahas pertanyaan yang terakhir dulu. kenapa pas mensimulasikan sensor membaca debu yang sangat padat menggunakan cara memasukan batang lidi?

Oke, Sebelum kita bahas pertanyaan diatas mungkin lebih afdol kalau kalian download dulu datasheetnya disini, karena semua pembahasan kita nanti akan mengacu pada datasheet

Pertama, perlu diketahui bahwa kerja dari sensor ini adalah dengan menembakan cahaya ke photodioda, debu akan dilewatkan antara led dan photo dioda seperti berikut ini

Intinya disini adalah debu akan menghalangi cahaya yang diterima oleh photodioda sehingga akan merubah tahanan dari photodioda tersebut. makanya kita menggunakan batang lidi untuk mensimulasikan debu yang tebal. karena pada intinya adalah sama, cahaya akan terhalang oleh suatu benda yang pekat sehingga cahaya yang diterima oleh photodioda sangat sedikit.

Kedua, tentang baris kode berikut

digitalWrite(ledPower,LOW); // power on the LED

Baris kode diatas adalah untuk menyalakan led, menyalakan kenapa digitalWrite LOW?? iya karena disini rangkaian lednya menggunakan kendali negatif / memakakai transistor pnp, berikut rangkaiannya

Ketiga, tentang baris kode berikut,

delayMicroseconds(samplingTime);

dimana variabel “samplingTime” telah di definisan sebelumnya pada baris

int samplingTime = 280;

Baris kode diatas adalah untuk memberi jeda waktu agar led dapat menyala dengan sempurna sebelum nantinya jumlah cahaya yang diterima photo dioda dibaca, lalu kenapa delaynya 280 microseconds? angka tersebut didapatkan dari datasheet pada bagian ini

Ke Empat, tentang baris kode berikut

voMeasured = analogRead(measurePin); // read the dust value
digitalWrite(ledPower,HIGH); // turn the LED off
delayMicroseconds(sleepTime);

baris kode yang pertama adalah untuk membaca tegangan analog yang terbaca setelah photodioda menerima cahaya dari led
baris kedua adalah untuk mematikan led dan baris yang ketiga adalah memberi jeda agar led dapat mati dengan sempurna / benar benar mati

Ke lima, tentang baris kode berikut

calcVoltage = ( ( voMeasured * 5 ) / 1024);

baris kode tersebut adalah untuk merubah nilai pembacaan yang semula pada tipe data integer (0 – 1023) menjadi data pecahan / float (0.0 – 5.0 volt)

Ke enam, tentang beris kode berikut

voltDensity = calcVoltage - 0.6;
dustDensity = voltDensity * 0.17;

baris kode tersebut adalah rumus / perhitungan yang saya buat menggunakan perhitungan persamaan garis linear sederhana untuk mengubah nilai pembacaan tegangan menjadi kepadatan debu mengacu pada grafik pada datasheet berikut

baris pertama, kita bisa melihat bahwa kenaikan tegangan pada grafik dimulai dari sekitar 0.6 volt, artinya jika tegangan output sensor dibawah 0.6 volt berarti sensor suhu tidak membaca adanya debu, makanya hasil pengukuran perlu kita kurangi 0.6

baris kedua, kita tahu bahwa setelah 0.6 volt maka grafik akan cenderung naik sebanding dengan bertambahnya intensitas debu yang terbaca, dimana naiknya garis pada grafik merupakan garis lurus, tentu persamaan garis linear sederhana bermain disini, dimana pada perhitungan persamaan garis lurus kita memerlukan konstanta agar suatu koordinat dapat dicari berdasarkan data korrdinat lain, dalam hal ini adalah agar kepadatan debu bisa dicari berdasarkan tegegangan output sensor, perhitungan untuk mencari konstantannya adalah sebagai berikut :

dust = 0.5 (0 - 0.5), dimana dust = rentan pembacaan suhu pada garis lurus
volt = 2.9 (0.6 - 3.5), dimana volt = rentan pembacaan output voltage pada garis lurus
konstanta = 0.5 : 2.9 = 0.17

setelah kita tahu kontantanya maka perhitungan untuk mencari kepadatan debu adalah seperti yang saya tuliskan di coding diatas, yaitu

dustDensity = voltDensity * 0.17;

Gimana?? Pusing??  :hammer , jika pusing silahkan ajak teman kalian yang jago matematika untuk diskusi. hehe

Sekian dulu belajar kita kali ini, semoga apa yang kami tulis dapat bermanfaat. terima kasih . wassslamau’alaikum

Giri Wahyu Pambudi

Giri Wahyu Pambudi - Seorang Pemuda Desa yang berkeinginan ikut membangun Indonesia dengan Sedikit Ilmu yang dimiliki SMK N 2 Wonogiri lulus 2015 UNIV Negeri Yogyakarta lulus 2019 2019 - Sekarang Bekerja di SMK Gajah Mungkur 1 Wuryantoro, Wonogiri

View Comments

Share
Published by
Giri Wahyu Pambudi

Recent Posts

Adab Buang Hajat

Kitab Rujukan : Shahih Adab Islamiyyah karya Dr. Wahid bin Abdissalam bali 1.Berdoa ketika masuk…

11 bulan ago

Adab Ketika Bangun Tidur

Berdzikir kepada Allah Ketika Bangun Tidur عَنْ حُذَيْفَةَ رَضِيَ اللَّهُ عَنْهُ قَالَ: كَانَ النَّبِيُّ صَلَّى…

1 tahun ago

Kisah Tiga Orang yang Terjebak di Dalam Gua dan Bertawasul Dengan Beramal Saleh

عن عَبْدَ اللَّهِ بْنَ عُمَرَ رَضِيَ اللَّهُ عَنْهُمَا - قَالَ سَمِعْتُ رَسُولَ اللَّهِ صلى الله…

1 tahun ago

2 Nikmat yang sering dilupakan Manusia : Sehat dan Waktu Luang

عَنِ ابْنِ عَبَّاسٍ رضى الله عنهما قَالَ-  قَالَ النَّبِيُّ صلى الله عليه وسلم ‏ "‏ نِعْمَتَانِ…

1 tahun ago

7 Golongan yang Mendapatkan Naungan Allah di Padang Mahsyar saat Hari Kiamat

Assalamu'alaikum, Catatan ini menjadi nasehat untuk diri kami pribadi dan umumnya untuk anak - anak…

1 tahun ago

Piston pin Offset – Alasan piston tidak boleh dipasang terbalik

Assalamu'alaikum warahmatullahi wabarakatuh sahabat otomotif :-) , kali ini kita akan bahas tentang piston pin…

4 tahun ago

Tampilan Versi Hemat Data