- Komponen Diperlukan
- Sensor PM Nova SDS011
- Modul Paparan OLED 0.96 '
- Diagram Litar untuk Penganalisis Kualiti Udara
- Membina Litar di Perf Board
- Penjelasan Kod untuk Monitor Kualiti Udara
- Ujian Monitor Kualiti Udara Arduino
Pencemaran udara adalah masalah utama di banyak bandar dan indeks kualiti udara semakin buruk setiap hari. Menurut laporan Pertubuhan Kesihatan Sedunia, lebih banyak orang terbunuh sebelum waktunya akibat kesan zarah berbahaya yang terdapat di udara daripada kemalangan kereta. Menurut Badan Perlindungan Alam Sekitar (EPA), udara dalaman boleh menjadi 2 hingga 5 kali lebih beracun daripada udara luar. Jadi di sini kami membina peranti untuk memantau kualiti udara dengan mengukur zarah PM2.5 dan PM10 di udara.
Kami sebelumnya menggunakan sensor Gas MQ135 untuk monitor kualiti Udara dan Sensor Sharp GP2Y1014AU0F untuk mengukur kepadatan habuk di udara. Kali ini kami menggunakan sensor SDS011 dengan Arduino Nano untuk membina Penganalisis kualiti udara. Sensor SDS011 dapat mengira kepekatan partikel PM2.5 dan PM10 di udara. Di sini nilai PM2.5 dan PM 10 masa nyata akan dipaparkan pada paparan OLED.
Komponen Diperlukan
- Arduino Nano
- Sensor PM Nova SDS011
- Modul Paparan OLED 0.96 'SPI
- Wayar Pelompat
Sensor PM Nova SDS011
Sensor SDS011 adalah Sensor Kualiti Udara terbaru yang dikembangkan oleh Nova Fitness. Ia berfungsi berdasarkan prinsip penyerakan laser dan dapat memperoleh kepekatan zarah antara 0.3 hingga 10μm di udara. Sensor ini terdiri daripada kipas kecil, injap masuk udara, dioda Laser, dan fotodiod. Udara masuk melalui saluran masuk udara di mana sumber cahaya (Laser) menerangi zarah-zarah dan cahaya yang tersebar diubah menjadi isyarat oleh fotodetektor. Isyarat-isyarat ini kemudiannya diperkuat dan diproses untuk mendapatkan kepekatan zarah PM2.5 dan PM10.
Spesifikasi Sensor SDS011:
- Keluaran: PM2.5, PM10
- Julat Pengukuran: 0.0-999.9μg / m3
- Voltan Input: 4.7V hingga 5.3V
- Arus Maksimum: 100mA
- Tidur Semasa: 2mA
- Masa Respons: 1 saat
- Kekerapan Output Data Bersiri: 1 masa / saat
- Resolusi Diameter Zarah: ≤ 0.3μm
- Ralat relatif: 10%
- Julat Suhu: -20 ~ 50 ° C
Modul Paparan OLED 0.96 '
OLED (Organic Light-Emitting Diodes) adalah teknologi pemancar cahaya diri, yang dibina dengan meletakkan serangkaian filem nipis organik di antara dua konduktor. Cahaya terang dihasilkan apabila arus elektrik digunakan pada filem-filem ini. OLED menggunakan teknologi yang sama dengan televisyen, tetapi mempunyai piksel lebih sedikit daripada di kebanyakan TV kami.
Untuk projek ini, kami menggunakan paparan OLED Monochrome 7-pin SSD1306 0.96 ”. Ia boleh berfungsi pada tiga protokol komunikasi yang berbeza: mod Wire SPI 3, mod empat wayar SPI, dan mod I2C. Pin dan fungsinya dijelaskan dalam jadual di bawah:
Nama Pin |
Nama lain |
Penerangan |
Gnd |
Tanah |
Pin bawah modul |
Vdd |
Vcc, 5V |
Pin kuasa (boleh tahan 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 |
Tetapkan semula modul (berguna semasa SPI) |
DC |
A0 |
Pin Perintah Data. Digunakan untuk protokol SPI |
CS |
Pilih Cip |
Berguna apabila lebih daripada satu modul digunakan di bawah protokol SPI |
Kami telah membahas Artikel lengkap mengenai paparan OLED dan jenisnya di sini.
Spesifikasi OLED:
- IC Pemandu OLED: SSD1306
- Resolusi: 128 x 64
- Sudut Visual:> 160 °
- Voltan Input: 3.3V ~ 6V
- Warna Pixel: Biru
- Suhu kerja: -30 ° C ~ 70 ° C
Ketahui lebih lanjut mengenai OLED dan hubungannya dengan pengawal mikro yang berbeza dengan mengikuti pautan tersebut.
Diagram Litar untuk Penganalisis Kualiti Udara
Gambarajah litar untuk mengukur zarah PM2.5 dan PM10 menggunakan Arduino sangat mudah dan diberikan di bawah.
Modul SDS011 Sensor dan OLED Display kedua-duanya dikuasakan dengan + 5V dan GND. Pin pemancar dan Penerima SDS011 disambungkan ke pin D3 dan D4 Arduino Nano. Oleh kerana modul OLED Display menggunakan komunikasi SPI, kami telah mewujudkan komunikasi SPI antara modul OLED dan Arduino Nano. Sambungan ditunjukkan dalam jadual di bawah:
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 |
Membina Litar di Perf Board
Saya juga telah menyolder semua komponen pada papan perf agar kelihatan lebih kemas. Tetapi anda juga boleh membuatnya di papan roti. Papan yang saya buat ada di bawah. Semasa menyolder, pastikan anda tidak menyusun wayar. Papan perf yang saya solder ditunjukkan di bawah:
Penjelasan Kod untuk Monitor Kualiti Udara
Kod lengkap untuk projek ini diberikan di akhir dokumen. Di sini kami menerangkan beberapa bahagian penting kod.
Kod menggunakan perpustakaan SDS011, Adafruit_GFX , dan Adafruit_SSD1306 . Perpustakaan ini boleh dimuat turun dari Pengurus Perpustakaan di Arduino IDE dan boleh dipasang dari sana. Untuk itu, buka Arduino IDE dan pergi ke Sketch> Include Library> Manage Libraries . Sekarang cari SDS011 dan pasang perpustakaan Sensor SDS oleh R. Zschiegner.
Begitu juga, pasang perpustakaan Adafruit GFX dan Adafruit SSD1306 oleh Adafruit.
Setelah memasang perpustakaan ke Arduino IDE, mulakan kod dengan memasukkan fail perpustakaan yang diperlukan.
#sertakan
Pada baris seterusnya, tentukan dua pemboleh ubah untuk menyimpan nilai PM10 dan PM2.5.
apungan p10, p25;
Kemudian, tentukan lebar dan tinggi OLED. Dalam projek ini, kami menggunakan paparan OLED 128 × 64 SPI. Anda boleh menukar yang SCREEN_WIDTH dan SCREEN_HEIGHT pembolehubah mengikut paparan anda.
#tentukan SCREEN_WIDTH 128 #tentukan SCREEN_HEIGHT 64
Kemudian tentukan pin komunikasi SPI di mana Paparan OLED disambungkan.
#tentukan OLED_MOSI 9 #tentukan OLED_CLK 10 #tentukan OLED_DC 11 #tentukan OLED_CS 12 #tentukan OLED_RESET 13
Kemudian, buat contoh paparan Adafruit dengan lebar dan ketinggian yang ditentukan sebelumnya dengan protokol komunikasi SPI.
Paparan Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Sekarang di dalam fungsi setup () , mulakan Monitor Serial pada kadar baud 9600 untuk tujuan penyahpepijatan. Juga, mulakan paparan OLED dan sensor SDS011 dengan fungsi mula () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Di dalam gelung void (), baca nilai PM10 dan PM2.5 dari sensor SDS011 dan cetak bacaan pada monitor bersiri.
gelung kosong () {error = my_sds.read (& p25, & p10); jika (! ralat) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + Rentetan (p10));
Selepas itu, tetapkan ukuran teks dan warna teks menggunakan setTextSize () dan setTextColor () .
display.setTextSize (2); display.setTextColor (PUTIH);
Kemudian pada baris seterusnya, tentukan kedudukan untuk memulakan teks menggunakan kaedah setCursor (x, y) . Di sini kita akan memaparkan nilai PM2.5 dan PM10 pada paparan OLED sehingga baris pertama bermula pada (0,15) sementara baris kedua bermula pada (0, 40) koordinat.
display.setCursor (0,15); display.println ("PM2.5"); display.setCursor (67,15); display.println (hlm25); display.setCursor (0,40); display.println ("PM10"); display.setCursor (67,40); display.println (hlm10);
Dan akhirnya, panggil kaedah paparan () untuk memaparkan teks pada Paparan OLED.
paparan.display (); display.clearDisplay ();
Ujian Monitor Kualiti Udara Arduino
Setelah perkakasan dan kod siap, sudah tiba masanya untuk menguji peranti. Untuk itu, sambungkan Arduino ke komputer riba, pilih Papan dan Pelabuhan, dan tekan butang muat naik. Seperti yang anda lihat pada gambar di bawah, ia akan memaparkan nilai PM2.5 dan PM10 pada Paparan OLED.
Video dan kod kerja lengkap diberikan di bawah. Semoga anda menikmati tutorial dan mempelajari sesuatu yang berguna. Sekiranya anda mempunyai sebarang pertanyaan, tinggalkan di bahagian komen atau gunakan forum kami untuk pertanyaan teknikal yang lain.