- Komponen Diperlukan
- Sensor GP2Y1014AU0F Tajam
- Modul Layar OLED
- Diagram Sirkuit
- Membangun Sirkuit di Papan Perf
- Penjelasan Kode untuk Air Quality Analyzer
- Menguji Antarmuka Sensor Sharp GP2Y1014AU0F dengan Arduino
Polusi udara adalah masalah utama di banyak kota dan indeks kualitas udara semakin buruk setiap hari. Menurut laporan Organisasi Kesehatan Dunia, lebih banyak orang terbunuh secara prematur oleh efek partikel berbahaya yang ada di udara daripada akibat kecelakaan mobil. Menurut Badan Perlindungan Lingkungan (EPA), udara dalam ruangan bisa 2 hingga 5 kali lebih beracun daripada udara luar. Jadi di sini kami membangun proyek untuk memantau kualitas udara dengan mengukur kepadatan partikel debu di udara.
Jadi sebagai kelanjutan dari proyek kami sebelumnya seperti detektor LPG, Detektor asap, dan Monitor Kualitas Udara, di sini kita akan menghubungkan Sensor GP2Y1014AU0F Sharp dengan Arduino Nano untuk mengukur Densitas Debu di Udara. Selain sensor Debu dan Arduino Nano, layar OLED juga digunakan untuk menampilkan nilai yang diukur. Sensor Debu GP2Y1014AU0F Sharp sangat efektif dalam mendeteksi partikel yang sangat halus seperti asap rokok. Ini dirancang untuk digunakan dalam pemurni udara dan AC.
Komponen Diperlukan
- Arduino Nano
- Sensor GP2Y1014AU0F Tajam
- Modul Layar OLED SPI 0,96 '
- Kabel Jumper
- Kapasitor 220 µf
- 150 Ω Resistor
Sensor GP2Y1014AU0F Tajam
GP2Y1014AU0F Sharp adalah sensor optik kualitas udara / debu optik keluaran analog enam pin kecil yang dirancang untuk merasakan partikel debu di udara. Ia bekerja berdasarkan prinsip hamburan laser. Di dalam modul sensor, dioda pemancar inframerah dan fotosensor disusun secara diagonal di dekat lubang masuk udara seperti yang ditunjukkan pada gambar di bawah ini:
Ketika udara yang mengandung partikel debu masuk ke dalam ruang sensor, partikel debu menyebarkan cahaya LED IR ke detektor foto. Intensitas cahaya yang tersebar tergantung pada partikel debu. Semakin banyak partikel debu di udara, semakin besar intensitas cahayanya. Tegangan output pada pin V OUT sensor berubah sesuai dengan intensitas cahaya yang tersebar.
Pinout Sensor GP2Y1014AU0F:
Seperti yang disebutkan sebelumnya, sensor GP2Y1014AU0F hadir dengan konektor 6-pin. Gambar dan tabel di bawah ini menunjukkan penetapan pin untuk GP2Y1014AU0F:
S. NO. |
Nama Pin |
Deskripsi Pin |
1 |
V-LED |
Pin Vcc LED. Hubungkan ke 5V melalui 150Ω Resistor |
2 |
LED-GND |
Pin Tanah LED. Hubungkan ke GND |
3 |
LED |
Digunakan untuk Toggle LED On / Off. Hubungkan ke pin digital apa pun di Arduino |
4 |
S-GND |
Pin Tanah Sensor. Hubungkan ke GND dari Arduino |
5 |
V OUT |
Pin Output Analog Sensor. Hubungkan ke Pin Analog apa pun |
6 |
V CC |
Pin Pasokan Positif. Hubungkan ke 5V dari Arduino |
Spesifikasi Sensor GP2Y1014AU0F:
- Konsumsi Arus Rendah: maks. 20mA
- Tegangan Operasi Khas: 4.5V hingga 5.5V
- Ukuran Debu Minimum yang Dapat Dideteksi: 0,5µm
- Rentang Penginderaan Densitas Debu: Hingga 580 ug / m 3
- Waktu Penginderaan: Kurang dari 1 Detik
- Dimensi: 1,81 x 1,18 x 0,69 '' (46,0 x 30,0 x 17,6 mm)
Modul Layar OLED
OLED (Organic Light-Emitting Diodes) adalah teknologi pemancar cahaya mandiri, dibangun dengan menempatkan serangkaian film tipis organik di antara dua konduktor. Cahaya terang dihasilkan ketika arus listrik dialirkan ke film-film ini. OLED menggunakan teknologi yang sama seperti televisi, tetapi memiliki piksel lebih sedikit daripada kebanyakan TV kami.
Untuk proyek ini, kami menggunakan layar OLED Monokrom 7-pin SSD1306 0,96 ”. Ini dapat bekerja pada tiga protokol komunikasi yang berbeda: mode SPI 3 Wire, mode SPI empat kabel, dan mode I2C. Pin dan fungsinya dijelaskan pada tabel di bawah ini:
Kami telah membahas OLED dan jenisnya secara detail di artikel sebelumnya.
Nama Pin |
Nama lain |
Deskripsi |
Gnd |
Tanah |
Pin ground modul |
Vdd |
Vcc, 5V |
Pin daya (dapat ditoleransi 3-5V) |
SCK |
D0, SCL, CLK |
Bertindak sebagai pin jam. Digunakan untuk I2C dan SPI |
SDA |
D1, MOSI |
Pin data modul. Digunakan untuk IIC dan SPI |
RES |
RST, RESET |
Mereset modul (berguna selama SPI) |
DC |
A0 |
Pin Perintah Data. Digunakan untuk protokol SPI |
CS |
Pilih Chip |
Berguna jika lebih dari satu modul digunakan di bawah protokol SPI |
Spesifikasi OLED:
- IC Driver OLED: SSD1306
- Resolusi: 128 x 64
- Sudut Visual:> 160 °
- Tegangan Input: 3.3V ~ 6V
- Warna Pixel: Biru
- Suhu kerja: -30 ° C ~ 70 ° C
Pelajari lebih lanjut tentang OLED dan antarmuka dengan mikrokontroler yang berbeda dengan mengikuti tautan.
Diagram Sirkuit
Diagram Sirkuit untuk Menghubungkan Sensor Sharp GP2Y1014AU0F dengan Arduino diberikan di bawah ini:
Rangkaiannya sangat sederhana karena kami hanya menghubungkan Sensor GP2Y10 dan modul Layar OLED dengan Arduino Nano. Sensor GP2Y10 dan modul Layar OLED keduanya didukung dengan + 5V dan GND. Pin V0 dihubungkan dengan pin A5 Arduino Nano. Pin LED sensor terhubung ke pin digital Arduino12. Karena modul Layar OLED menggunakan komunikasi SPI, kami telah membuat komunikasi SPI antara modul OLED dan Arduino Nano. Hubungannya ditunjukkan pada tabel di bawah ini:
S.No |
Pin Modul OLED |
Pin Arduino |
1 |
GND |
Tanah |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
S.No |
Pin Sensor |
Pin Arduino |
1 |
Vcc |
5V |
2 |
V O |
A5 |
3 |
S-GND |
GND |
4 |
LED |
7 |
5 |
LED-GND |
GND |
6 |
V-LED |
5V Melalui 150Ω Resistor |
Membangun Sirkuit di Papan Perf
Setelah menyolder semua komponen pada papan kinerja, akan terlihat seperti di bawah ini. Tapi itu juga bisa dibangun di atas papan tempat memotong roti. Saya telah menyolder sensor GP2Y1014 pada papan yang sama yang saya gunakan untuk menghubungkan sensor SDS011. Saat menyolder, pastikan kabel solder Anda harus berada pada jarak yang cukup satu sama lain.
Penjelasan Kode untuk Air Quality Analyzer
Kode lengkap untuk proyek ini diberikan di akhir dokumen. Di sini kami menjelaskan beberapa bagian penting dari kode.
Kode menggunakan perpustakaan Adafruit_GFX , dan Adafruit_SSD1306 . Pustaka ini dapat diunduh dari Manajer Perpustakaan di Arduino IDE dan menginstalnya dari sana. Untuk itu, buka Arduino IDE dan masuk ke Sketch <Include Library <Manage Libraries . Sekarang cari Adafruit GFX dan instal perpustakaan Adafruit GFX oleh Adafruit.
Demikian pula, instal perpustakaan Adafruit SSD1306 oleh Adafruit.
Setelah menginstal perpustakaan ke Arduino IDE, mulai kode dengan memasukkan file perpustakaan yang diperlukan. Sensor debu tidak memerlukan pustaka apa pun karena kami membaca nilai tegangan langsung dari pin analog Arduino.
#include
Kemudian, tentukan lebar dan tinggi OLED. Dalam proyek ini, kami menggunakan layar OLED 128 × 64 SPI. Anda dapat mengubah variabel SCREEN_WIDTH , dan SCREEN_HEIGHT sesuai tampilan Anda.
# Tentukan SCREEN_WIDTH 128 # Tentukan SCREEN_HEIGHT 64
Kemudian tentukan pin komunikasi SPI di mana Layar OLED terhubung.
# Tentukan OLED_MOSI 9 # Tentukan OLED_CLK 10 # Tentukan OLED_DC 11 # Tentukan OLED_CS 12 # Tentukan OLED_RESET 13
Kemudian, buat instance tampilan Adafruit dengan lebar dan tinggi yang ditentukan sebelumnya dengan protokol komunikasi SPI.
Layar Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Setelah itu, tentukan sensor sensor Debu dan pin led. Pin Sense merupakan pin keluaran dari sensor Debu yang digunakan untuk membaca nilai tegangan sedangkan pin led digunakan untuk menghidupkan / mematikan Led IR.
int sensePin = A5; int ledPin = 7;
Sekarang di dalam fungsi setup () , inisialisasi Monitor Serial pada baud rate 9600 untuk keperluan debugging. Juga, Inisialisasi tampilan OLED dengan fungsi begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Di dalam fungsi loop () , baca Nilai tegangan dari pin analog 5 Arduino Nano. Pertama, nyalakan LED IR lalu tunggu 0,28ms sebelum membaca tegangan output. Setelah itu, baca nilai tegangan dari pin analog. Operasi ini membutuhkan waktu sekitar 40 hingga 50 mikrodetik, jadi perkenalkan penundaan 40 mikrodetik sebelum mematikan led sensor debu. Menurut spesifikasinya, LED harus menyala setiap 10 md, jadi tunggu sisa siklus 10 md = 10.000 - 280 - 40 = 9680 mikrodetik .
digitalWrite (ledPin, LOW); delayMicroseconds (280); outVo = analogRead (sensePin); delayMicroseconds (40); digitalWrite (ledPin, HIGH); delayMicroseconds (9680);
Kemudian di baris berikutnya, hitung densitas Debu menggunakan tegangan keluaran dan nilai sinyal.
sigVolt = outVo * (5/1024); dustLevel = 0,17 * sigVolt - 0,1;
Setelah itu, setel ukuran teks dan warna teks menggunakan setTextSize () dan setTextColor () .
display.setTextSize (1); display.setTextColor (WHITE);
Kemudian di baris berikutnya, tentukan posisi di mana teks mulai menggunakan metode setCursor (x, y) . Dan mencetak Nilai Densitas Debu pada Layar OLED menggunakan fungsi display.println () .
display.println ("Debu"); display.println ("Density"); display.setTextSize (3); display.println (dustLevel);
Dan terakhir, panggil metode display () untuk menampilkan teks pada Layar OLED.
display.display (); display.clearDisplay ();
Menguji Antarmuka Sensor Sharp GP2Y1014AU0F dengan Arduino
Setelah perangkat keras dan kode siap, sekarang saatnya menguji sensor. Untuk itu, hubungkan Arduino ke laptop, pilih Board dan Port, dan tekan tombol unggah. Seperti yang Anda lihat pada gambar di bawah, ini akan menampilkan Densitas Debu pada Layar OLED.
Video dan kode kerja lengkap diberikan di bawah ini. Semoga Anda menikmati tutorial ini dan mempelajari sesuatu yang bermanfaat. Jika Anda memiliki pertanyaan, tinggalkan di bagian komentar atau gunakan forum kami untuk pertanyaan teknis lainnya.