Buat Monitor Kualitas Udara DIY Anda: PM2.5, CO2, VOC, Ozon, Suhu & Kelembaban dengan Arduino
Apakah Anda pernah bertanya-tanya tentang kualitas udara yang Anda hirup, atau mungkin, mengapa Anda terkadang mengantuk di kantor atau lelah di pagi hari meski telah tidur semalaman? Kualitas udara yang buruk dapat menyebabkan banyak efek negatif pada kesehatan serta dapat menyebabkan kelelahan, sakit kepala, kehilangan konsentrasi, detak jantung meningkat dan lain sebagainya. Memantau kualitas udara sebenarnya mungkin lebih penting dari yang Anda sadari. Jadi, dalam tutorial ini kita akan mempelajari cara membangun Monitor Kualitas Udara sendiri yang mampu mengukur PM2.5, CO2, VOC, Ozon, serta suhu dan kelembaban.
Anda dapat menonton video berikut atau membaca tutorial tertulis di bawahnya.
Ringkasan
Saya akan menjelaskan bagaimana setiap parameter kualitas udara mempengaruhi kita dan bagaimana sensor bekerja. Otak dari proyek ini adalah papan Arduino Pro Mini yang dikombinasikan dengan layar sentuh Nextion 2,8 inci yang memberikan antarmuka pengguna yang cukup baik.
Kita dapat melihat pengukuran dari semua sensor secara real-time, dan jika kita mengklik sensor tertentu, kita akan mendapatkan nilai 24 jam terakhir dari sensor tersebut. Ada juga fungsi penurunan kecerahan melalui yang kita dapat menurunkan kecerahan layar atau bahkan mematikannya sepenuhnya. Ini nyaman, misalnya, jika kita ingin melacak kualitas udara di kamar tidur kita selama malam hari.
Kita dapat mematikan layar untuk malam hari, dan hari berikutnya kita dapat memeriksa nilai dari setiap sensor secara individual.
Meskipun demikian, sekarang saya akan memandu Anda melalui seluruh proses pembangunnya dan menjelaskan bagaimana semuanya bekerja. Akhir dari video ini, Anda akan dapat membuat satu sendiri. Jadi, mari kita mulai.
Sensor PM2.5 – PMS5003
Perangkat ini memiliki empat komponen utama atau sensor kualitas udara. Kita menggunakan sensor PMS5003 untuk mengukur PM2.5 atau partikel dalam udara dengan diameter sekitar 2,5 mikron. Partikel adalah bentuk pencemaran udara yang paling berbahaya karena mereka dapat menembus ke dalam paru-paru, aliran darah dan otak, menyebabkan banyak masalah kesehatan.
Sensor ini bekerja berdasarkan prinsip pencaran cahaya laser. Sensor memiliki kipas yang menghasilkan aliran udara yang terkendali sehingga partikel lingkungan melewati sinar laser yang difokuskan.
Partikel menyebabkan pencaran cahaya yang terdeteksi oleh fotodioda lalu dikonversi menjadi konsentrasi PM dengan bantuan mikroprosesornya. Saya menemukan hasil sensor ini cukup andal dan bersama PM2.5 itu juga dapat mengeluarkan nilai PM1 dan PM10.
Sensor CO2 – MH-Z19
Selanjutnya, kita menggunakan sensor MH-Z19 untuk mengukur CO2 atau karbon dioksida. Karena manusia menghasilkan karbon dioksida saat bernapas, konsentrasi CO2 di dalam ruangan dapat dengan mudah menjadi sangat tinggi. CO2 tidak hanya berbahaya pada konsentrasi tinggi, tetapi juga dapat menyebabkan mengantuk, kelelahan, menurunkan tingkat produktivitas dan lain sebagainya.
Sensor menggunakan prinsip inframerah non-dispersif untuk mengukur CO2 dalam udara. Sumber inframerah mengarahkan cahaya melalui tabung yang diisi dengan udara yang kita ukur. Di sisi lain sumber inframerah, ada filter optik dan detektor IR yang mengukur jumlah cahaya IR yang melewati.
Molekul gas CO2 yang ada dalam udara yang kita ukur menyerap pita cahaya IR tertentu sambil membiarkan beberapa panjang gelombang melewati. Jadi, tingkat CO2 dihitung berdasarkan perbedaan antara jumlah cahaya yang dipancarkan dan jumlah cahaya IR yang diterima oleh detektor. Hasil dari sensor ini juga cukup akurat.
Sensor VOC dan Ozon – MP503 dan MQ-131
Untuk mengukur VOC dan Ozon kita menggunakan sensor gas MP503 dan MQ131. Ini adalah sensor logam oksida yang dipanaskan dan prinsip kerjanya didasarkan pada mendeteksi perubahan resistansi saat gas target hadir.
Arus listrik tertentu melewati substrat logam dan resistansi berubah sesuai dengan jumlah gas yang ada.
Gas target dari sensor MQ131 hanyalah Ozon, yang di rumah tangga normal dapat dihasilkan oleh produk seperti beberapa pemurni udara, pemutih wajah, lampu pengkill kuman yang menghasilkan cahaya ultraviolet dan lain sebagainya.
Di sisi lain, sensor MP503 memiliki banyak gas target, termasuk alkohol, asap, iso-butana, metanal dan lainnya. VOC singkatan dari Volatile Organic Compounds dan ini adalah emisi organik dari produk yang kita gunakan sehari-hari seperti deterjen cuci, pembersih, pembalut udara, cat, kosmetik dan lain sebagainya. VOC dapat menyebabkan banyak efek negatif pada kesehatan termasuk sakit kepala, iritasi mata, reaksi kulit, pusing dan lain sebagainya.
Monitor Kualitas Udara Arduino DIY – Diagram Rangkaian
Meskipun demikian, mari kita lihat diagram rangkaian sekarang dan menjelaskan bagaimana semuanya perlu dihubungkan.
Anda dapat mendapatkan komponen yang diperlukan untuk monitor kualitas udara Arduino ini dari tautan di bawah ini:
Sensor PM PMS5003 …………………….
Sensor CO2 MH-Z19 ……………………..
Sensor Ozon MQ-131 …………………..
Sensor VOC MP503 ……………………….
Sensor Suhu & Kelembaban DHT22………….
Layar Nextion 2,8″ ……………………..
DS3231 RTC ………………………………….
Arduino Pro Mini………………..…….…..
Dadu / Penutup Jarak M3 ……………
Konektor Mini USB …………………….
Pin header ………………………………….
Saklar 2 Posisi …………………………
Nilai Resistor: 0,1uF keramik dan 10uF elektrolitik
Transistor – 2N3904
Saklar
Peringatan: Ini adalah tautan afiliasi. Sebagai Amazon Associate saya mendapatkan komisi dari pembelian yang memenuhi syarat.
Nilai resistor yang benar: R1 = 1K, R2 = 2K, R6=100K atau 1M, R7=1K
Sensor PM2.5 berkomunikasi dengan Arduino melalui antarmuka serial. Ini bekerja pada 5V, tetapi tingkat logika RX penerima bekerja pada 3,3V, oleh karena itu kita perlu pembagi tegangan untuk itu. Sensor CO2 dan layar Nextion juga menggunakan komunikasi serial. Untuk membaca sensor VOC dan Ozon kita menggunakan input analog Arduino, sementara sensor suhu dan kelembaban DHT22 menggunakan pin digital untuk tujuan itu.
Dua transistor digunakan untuk mengaktifkan pemanas sensor. Kita juga menggunakan modul Real Time Clock untuk melacak waktu saat menyimpan nilai sensor, dan menggunakan komunikasi I2C. Seluruh perangkat disuayi dengan 5V melalui konektor Mini USB.
Lihat juga: 8 Kit Starter Arduino Terbaik [Update 2021]
Sekarang jika kita mencoba menghubungkan semuanya bersama-sama, kita akan mendapat cukup banyak kabel karena banyaknya koneksi.
Jadi, kita pasti membutuhkan PCB untuk proyek ini.
Membuat PCB untuk Monitor Kualitas Udara Arduino
Untuk membuat PCB untuk proyek ini, saya akan menggunakan Altium Designer yang sebenarnya adalah sponsor video ini.
Altium Designer mewakili dekade inovasi dan pengembangan yang didedikasikan untuk menciptakan lingkungan desain yang benar-benar terpadu. Mencari keseimbangan sempurna antara kekuatan dan kemudahan penggunaan, Altium Designer telah mengamankan posisinya sebagai solusi desain PCB yang paling banyak digunakan di pasar.
Sekarang saya akan menunjukkan bagaimana saya merancang PCB untuk proyek ini menggunakan Altium Designer. Saya memulai dengan membuat skema untuk proyek. Altium Designer memiliki library bawaan dengan komponen elektronik dasar, tetapi lebih baik lagi Anda dapat mencari komponen langsung dari produsen yang membuat sourcing komponen untuk proyek Anda menjadi sangat nyaman.
Sebagai contoh, saya menemukan konektor Mini USB menggunakan fitur Manufacturer Part Search ini. Dari sini Anda juga dapat dengan mudah mendapatkan akses ke data terkait komponen, seperti model 3D, footprint, dimensi dan lain-lain.
Anda juga dapat membuat library komponen Anda sendiri. Saya membuat sebagian besar komponen untuk proyek ini sendiri, karena saya ingin membuat footprint 3D saya sendiri untuk setiap bagian sehingga pada akhirnya saya akan mendapatkan seluruh PCB dalam 3D. Untuk membuat model 3D untuk footprint PCB, Anda dapat menggunakan perangkat lunak CAD apa pun, menyimpan berkas sebagai .STEP dan mengimpornya ke Altium Designer.
Setelah selesai membuat skema, saya menghasilkan PCB. Saya menyusun komponen seperti yang saya inginkan, dan dengan satu klik sederhana menggunakan fitur Auto Route, perangkat lunak menghasilkan semua jejak secara otomatis.
Jika diperlukan, kita dapat secara manual membuat atau menyesuaikannya. Selain itu, kita dapat mengatur aturan desain bagaimana auto routing akan membuat jejak, menetapkan lebar yang berbeda untuk setiap jaring dan lain-lain. Pada titik ini kita juga melihat PCB dalam 3D dan mengekspor berkas 3D dari seluruh rangkaian PCB yang akan digunakan untuk merancang kotak untuknya nanti.
Meskipun demikian, saya ingin mengucapkan terima kasih kepada Altium atas sponsor konten edukasi seperti ini. Jika Anda ingin mengetahui lebih banyak tentang perangkat lunak ini dan juga mencobanya, Anda dapat memeriksa tautan di bawah ini. Anda juga dapat mencoba viewer web Altium 365 untuk pratinjau proyek dan berkas.
Berkas Altium Designer termasuk berkas proyek, library dan berkas .STEP dari model 3D komponen elektronik:
Berkas Gerber PCB:
Oke, jadi setelah selesai membuat PCB, saya menghasilkan berkas Gerber dan NC Drill, memasukkannya ke dalam satu berkas zip, dan jadi saya siap memesan PCB untuk diproduksi.
Saya memesan PCB dari JCLPCB. Di sini kita cukup menyeret dan melepas berkas zip dan setelah diunggah kita akan mendapatkan semua informasi visual tentang PCB kita.
Kemudian kita dapat memilih properti yang kita inginkan dan memesan PCB dengan harga yang wajar.
Merakit PCB
Setelah beberapa hari PCB telah tiba. Kualitas PCB sangat bagus dan semuanya sama persis dengan desain.
Jadi, sekarang kita siap untuk memulai merakit PCB. Saya memulai dengan memasukkan dan memasang komponen yang lebih kecil terlebih dahulu, resistor dan dua transistor.
Kemudian kita dapat memasang dan memasang papan Arduino Pro Mini ke tempatnya. Namun, pertama kita perlu memasang pin header padanya. Perhatikan bahwa kita tidak perlu semua pinnya, tetapi pastikan Anda tidak melewatkan pin yang kita butuhkan seperti A4, A5 dan pin DTR. Juga pastikan Anda memiliki papan Arduino Pro Mini yang sama persis dengan tata letak pin ini, karena terkadang bisa berbeda.
Selanjutnya, kita dapat memasukkan sensor DHT22 ke tempatnya. Untuk itu, pertama kita perlu membungkukkan pinnya 90 derajat. Kadang-kadang saya juga menggunakan lem Blu-tack untuk menjaga komponen tetap di tempat saat memasang.
Dua kapasitor yang digunakan dalam proyek ini untuk menstabilkan suplay daya. Daya ke papan akan datang dari konektor mini-USB yang dapat kita hubungkan ke 5V.
Tepat di atas konektor suplay daya kita perlu memasang dua saklar. Satu untuk menghidupkan dan mematikan perangkat, dan yang lain digunakan ketika kita ingin mengunggah sketsa ke papan Arduino. Kemudian kita dapat memasukkan pin header untuk antarmuka USB ke UART, layar dan sensor PM2.5, serta sensor VOC, Ozon dan CO2 ke tempatnya.
Selanjutnya, untuk memasang modul Real Time Clock DS3231 lagi, pertama kita perlu membungkukkan pinnya 90 derajat. Setelah dipasang kita dapat memasukkan baterai yang melacak waktu bahkan ketika PCB utama kehilangan daya. Dengan ini PCB sebenarnya selesai, dan yang tersisa dilakukan sekarang adalah menyiapkan kabel yang akan kita gunakan untuk menghubungkan sensor PM2.5 dan layar ke PCB. Saya memasang pin header jantan pada kabel yang datang dengan sensor, dan jadi saya dapat dengan mudah menghubungkannya ke PCB. Untuk menghubungkan layar ke PCB, saya memasang empat kabel di sisi belakang konektor layar lalu menghubungkannya ke PCB.
Dan itu saja, Monitor Kualitas Udara kita sebenarnya selesai. Tentu saja, yang perlu kita lakukan sekarang adalah membuat kotak atau casing untuknya. Karena kita memiliki model 3D dari seluruh rangkaian PCB dari Altium Designer, kita dapat mengimpornya ke perangkat lunak CAD dan merancang casing untuknya.
Saya menggunakan SOLIDWORKS untuk tujuan itu, dan membuat casing yang paling sederhana yang terdiri dari hanya dua bagian dan beberapa baut dan baut. Saya memutuskan untuk membuat casing menggunakan akrilik transparan karena saya suka bagaimana PCB dan komponen terlihat terbuka dan itu juga cara yang bagus untuk menunjukkan proyek DIY Anda.
Anda dapat mengunduh model 3D Monitor Kualitas Udara DIY ini, serta menjelajahlah di browser Anda di Thangs.
Unduh model 3D di Thangs.
Membuat Casing untuk Monitor Kualitas Udara
Akrilik yang akan saya gunakan tebal 4mm yang pas dengan layar. Karena saya saat ini tidak memiliki mesin CNC, saya memotong bentuk secara manual menggunakan gergaji logam sederhana.
Untuk membuat pembukaan untuk layar, pertama saya membuat dua lubang dengan bor. Kemudian saya melewati baling-baling dari gergaji mini melalui mereka dan dengan hati-hati memotong bentuknya. Menggunakan ras sederhana, saya memuluskan bentuknya. Kemudian menggunakan bor 3mm saya membuat semua lubang untuk memasang PCB dan menghubungkan dua papan akrilik bersama-sama.
Pada titik ini, saya melapisi pelindung dari akrilik yang, dan jujur, itu proses yang cukup memuaskan. Untuk memasang PCB ke papan dasar, saya menggunakan baut dan baut M3. Untuk memasang sensor PM2.5 ke papan kita memerlukan baut M2.
Selanjutnya, menggunakan beberapa dadu jarak kita dapat menggabungkan dua papan bersama-sama. Dengan menggunakan satu dadu jarak betina dan satu dadu jarak jantan saya dapat dengan mudah mendapatkan jarak yang diinginkan antara dua papan.
Saya pribadi sangat suka bagaimana casing ini berakhir, plus, itu fungsional karena udara dapat dengan mudah berkulit di sekitar sensor.
Pemrograman
Baiklah, jadi sekarang kita dapat menyala perangkat dan mengunggah program. Kita dapat menyuayi monitor kualitas udara melalui konektor Mini USB dan kita dapat mendapatkan 5 volt dari adapter USB 5V, charger telepon 5V atau power bank.
Untuk mengunggah program ke papan Arduino Pro Mini, kita memerlukan antarmuka serial USB ke UART yang dapat dihubungkan ke header pemrograman. Sebelum menghubungkannya ke USB komputer, pertama kita harus menyala daya utama perangkat, karena jika tidak daya yang datang dari USB komputer yang hanya 500mA mungkin tidak cukup untuk bekerja dengan benar. Saat mengunggah sketsa Arduino, kita juga perlu mengubah saklar upload pada PCB.
Di sini Anda dapat mengunduh Kode Arduino dan Program Layar Nextion:
Untuk mengunggah sketsa ke papan Arduino Pro Mini, di Arduino IDE pertama kita perlu memilih papan ini, memilih versi prosesor yang tepat, memilih port dan memilih metode pemrograman ke "USBasp".
Setelah kita mengunggah kode ke Arduino, kita juga perlu mengunggah kode ke layar Nextion. Layar Nextion memiliki kontroler ARM internal yang sebenarnya mengontrol layar sendiri.
Semua grafis seperti tombol, teks, gambar, variabel dan lain-lain, dihasilkan dan dikontrol oleh layar itu sendiri. Layar Nextion dan Arduino berkomunikasi dengan hanya dua kabel menggunakan komunikasi serial. Arduino cukup mengirim nilai dari sensor ke layar dan sebaliknya, layar mengirim data ke Arduino saat diperlukan.
Untuk mengunggah program layar, kita memerlukan kartu microSD tempat kita dapat menyimpan berkas output .TFT dari editor Nextion.
Layar memiliki pembaca kartu tempat kita dapat memasukkan kartu microSD saat daya mati. Kemudian kita dapat menyala perangkat dan program akan diunggah ke layar. Sekarang kita hanya perlu melepaskan kartu, menyala daya lagi, dan monitor kualitas udara kita akan mulai bekerja.
Penjelasan Kode
Jadi, kita menggunakan library untuk setiap sensor yang dapat ditemukan di tautan berikut, MHZ19, PMS, MQ131, DHT, DS3231. Untuk lebih memahami cara kita membaca data dari setiap sensor saya merekomendasikan membaca dokumentasi library dan mencoba contoh-contohnya.
Kita juga menggunakan library SoftwareSerial karena baik sensor MH-Z19 maupun PMS5003 menggunakan komunikasi serial. Arduino dan layar Nextion juga menggunakan port serial untuk komunikasi dan dalam hal ini kita menggunakan serial hardware default.
Jadi, Arduino membaca sensor dan mengirim data tersebut ke layar Nextion. Berikut adalah contohnya.
Jadi kita memiliki variabel di layar Nextion yang disebut "tempV" dan untuk memperbarui nilainya kita perlu mengirim perintah ke nextion sebagai berikut "tempV.val=22". Jadi nama variabel, lalu ".val", lalu nilai, katakanlah 22. Dua baris kode pertama melakukannya, dan agar layar Nextion menerima perintah ini atau sebenarnya perintah apa pun kita perlu mengirim tiga perintah "write" unik.
Dalam program layar Nextion, kita memiliki timer yang berjalan dalam loop, sama seperti loop kode Arduino, dan itu terus-menerus memperbarui angka di layar.
Dalam event timer ini kita juga memiliki kode untuk mengubah warna latar belakang untuk setiap sensor tergantung pada nilainya.
Di halaman kedua kita memiliki grafik garis, yang mendapatkan nilai dari nilai yang disimpan dari Arduino. Perhatikan bahwa Anda dapat menemukan lebih banyak info di kode Arduino itu sendiri karena ada penjelasan di komentar kode.
Nilai jam dan sumbu Y juga mendapatkan nilainya dari Arduino.
Di atas grafik garis, serta angka di layar utama, Anda dapat memperhatikan kita memiliki objek transparan, yang disebut "Hotstops" di editor Nextion, dan mereka bertindak sebagai tombol. Jika kita menekan hotstop pada grafik garis kita dapat melihat di bagian Event bahwa itu mengirim kita kembali ke "halaman 0".
Secara keseluruhan, itulah cara kerja program monitor kualitas udara Arduino ini. Tentu saja, untuk sepenuhnya memahami cara kerjanya Anda perlu belajar dan mengetahui cara setiap sensor bekerja dengan library-nya, serta cara kerja layar Nextion.
Perhatikan bahwa untuk sensor VOC kita hanya membaca data mentah dari sensor ini, bukan nilai ppm atau ppb. Hanya nilai analog dari 0 hingga 1024. Nilai yang lebih tinggi berarti ada kehadiran VOC.
Seperti yang diketahui, untuk sensor Ozon, untuk mendapatkan output yang lebih akurat kita harus mengatur nilai setTimeToRead() dan setR0() dengan benar sesuai contoh kalibrasi library. Namun, setTimeToRead yang lebih lama berarti program akan diblokir saat pemantauan dan semuanya akan membeku. Tentu saja, ada cara untuk mengatasi hal ini. Saya bahkan menyarankan untuk tidak menggunakan sensor ozon sama sekali kecuali Anda benar-benar membutuhkannya.
Saya harap Anda menikmati video ini dan mempelajari hal baru. Jika demikian, pertimbangkan untuk mendukung saya di Patreon. Jangan ragu untuk bertanya di bagian komentar di bawah dan cek Koleksi Proyek Arduino saya.