- Komponen Diperlukan
- Nova PM Sensor SDS011
- Modul Layar OLED 0,96 '
- Diagram Sirkuit untuk Air Quality Analyzer
- Membangun Sirkuit di Papan Perf
- Penjelasan Kode untuk Monitor Kualitas Udara
- Pengujian Monitor Kualitas Udara 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 perangkat untuk memantau kualitas udara dengan mengukur partikel PM2.5 dan PM10 di udara.
Kami sebelumnya menggunakan sensor Gas MQ135 untuk monitor kualitas Udara dan Sensor Sharp GP2Y1014AU0F untuk mengukur kepadatan debu di udara. Kali ini kami menggunakan sensor SDS011 dengan Arduino Nano untuk membuat Air Quality Analyzer. Sensor SDS011 dapat menghitung konsentrasi partikel PM2.5 dan PM10 di udara. Di sini nilai PM2.5 dan PM 10 waktu nyata akan ditampilkan di layar OLED.
Komponen Diperlukan
- Arduino Nano
- Nova PM Sensor SDS011
- Modul Layar OLED SPI 0,96 '
- Kabel Jumper
Nova PM Sensor SDS011
Sensor SDS011 adalah Sensor Kualitas Udara terbaru yang dikembangkan oleh Nova Fitness. Ia bekerja berdasarkan prinsip hamburan laser dan bisa mendapatkan konsentrasi partikel antara 0,3 hingga 10μm di udara. Sensor ini terdiri dari kipas kecil, katup saluran masuk udara, dioda laser, dan fotodioda. Udara masuk melalui saluran masuk udara di mana sumber cahaya (Laser) menerangi partikel dan cahaya yang tersebar diubah menjadi sinyal oleh fotodetektor. Sinyal tersebut kemudian diperkuat dan diproses untuk mendapatkan konsentrasi partikel PM2.5 dan PM10.
Spesifikasi Sensor SDS011:
- Keluaran: PM2.5, PM10
- Rentang Pengukuran: 0,0-999,9μg / m3
- Tegangan Input: 4.7V hingga 5.3V
- Arus Maksimum: 100mA
- Tidur Saat Ini: 2mA
- Waktu Respon: 1 detik
- Frekuensi Output Data Serial: 1 kali / detik
- Resolusi Diameter Partikel: ≤ 0,3μm
- Kesalahan Relatif: 10%
- Rentang Suhu: -20 ~ 50 ° C
Modul Layar OLED 0,96 '
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:
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 |
Kami telah membahas Artikel lengkap tentang tampilan OLED dan tipenya di sini.
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 untuk Air Quality Analyzer
Diagram rangkaian untuk mengukur partikel PM2.5 dan PM10 menggunakan Arduino sangat sederhana dan diberikan di bawah ini.
Sensor SDS011 dan modul Layar OLED keduanya didukung dengan + 5V dan GND. Pin Pemancar dan Penerima SDS011 terhubung ke pin D3 dan D4 Arduino Nano. 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 |
Membangun Sirkuit di Papan Perf
Saya juga sudah menyolder semua komponen di perf board agar terlihat rapi. Tapi Anda juga bisa membuatnya di papan tempat memotong roti. Papan yang saya buat ada di bawah. Saat menyolder, pastikan Anda tidak menyortir kabel. Papan kinerja yang saya solder ditunjukkan di bawah ini:
Penjelasan Kode untuk Monitor Kualitas Udara
Kode lengkap untuk proyek ini diberikan di akhir dokumen. Di sini kami menjelaskan beberapa bagian penting dari kode.
Kode menggunakan perpustakaan SDS011, Adafruit_GFX , dan Adafruit_SSD1306 . Pustaka ini dapat diunduh dari Manajer Perpustakaan di Arduino IDE dan dapat diinstal dari sana. Untuk itu, buka Arduino IDE dan buka Sketch> Include Library> Manage Libraries . Sekarang cari SDS011 dan instal perpustakaan Sensor SDS oleh R. Zschiegner.
Demikian pula, instal pustaka Adafruit GFX dan Adafruit SSD1306 oleh Adafruit.
Setelah menginstal pustaka ke Arduino IDE, mulai kode dengan memasukkan file pustaka yang diperlukan.
#include
Di baris berikutnya, tentukan dua variabel untuk menyimpan nilai PM10 dan PM2.5.
float p10, p25;
Kemudian, tentukan lebar dan tinggi OLED. Dalam proyek ini, kami menggunakan layar OLED 128 × 64 SPI. Anda dapat mengubah itu SCREEN_WIDTH dan SCREEN_HEIGHT variabel sesuai dengan 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);
Sekarang di dalam fungsi setup () , inisialisasi Monitor Serial pada baud rate 9600 untuk keperluan debugging. Juga, Inisialisasi tampilan OLED dan sensor SDS011 dengan fungsi begin () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Di dalam void loop (), baca nilai PM10 dan PM2.5 dari sensor SDS011 dan cetak bacaan tersebut pada monitor serial.
void loop () {error = my_sds.read (& p25, & p10); if (! error) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + String (p10));
Setelah itu, setel ukuran teks dan warna teks menggunakan setTextSize () dan setTextColor () .
display.setTextSize (2); display.setTextColor (WHITE);
Kemudian di baris berikutnya, tentukan posisi untuk memulai teks menggunakan metode setCursor (x, y) . Di sini kita akan menampilkan nilai PM2.5 dan PM10 pada tampilan OLED sehingga baris pertama dimulai pada (0,15) sedangkan baris kedua dimulai pada koordinat (0, 40).
display.setCursor (0,15); display.println ("PM2.5"); display.setCursor (67,15); display.println (p25); display.setCursor (0,40); display.println ("PM10"); display.setCursor (67,40); display.println (p10);
Dan terakhir, panggil metode display () untuk menampilkan teks pada Layar OLED.
display.display (); display.clearDisplay ();
Pengujian Monitor Kualitas Udara Arduino
Setelah perangkat keras dan kode siap, sekarang saatnya menguji perangkat. 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 nilai PM2.5 dan PM10 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.