Daftar Isi:

Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4:15 Langkah (dengan Gambar)
Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4:15 Langkah (dengan Gambar)

Video: Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4:15 Langkah (dengan Gambar)

Video: Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4:15 Langkah (dengan Gambar)
Video: POSISI IDEAL AC DI KAMAR ! #video #shorts #posisiac #airconditioner 2024, Juli
Anonim
Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4
Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4
Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4
Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4
Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4
Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4
Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4
Monitor Kualitas Udara IoT Berbiaya Rendah Berdasarkan RaspberryPi 4

Santiago, Chili selama keadaan darurat lingkungan musim dingin memiliki hak istimewa untuk tinggal di salah satu negara terindah di dunia, tetapi sayangnya, tidak semua mawar. Chili selama musim dingin sangat menderita dengan kontaminasi udara, terutama karena bahan partikulat seperti debu dan kabut asap.

Karena cuaca dingin, di selatan, kontaminasi udara terutama disebabkan oleh calefactors berbasis kayu dan di Santiago (ibu kota utama di pusat negara) bercampur dari industri, mobil, dan situasi geografisnya yang unik antara 2 rantai pegunungan besar.

Saat ini, polusi udara adalah masalah besar di seluruh dunia dan dalam artikel ini kita akan mengeksplorasi bagaimana mengembangkan monitor Kualitas Udara buatan sendiri yang mahal, berdasarkan Raspberry Pi. Jika Anda tertarik untuk memahami lebih lanjut tentang kualitas udara, silakan kunjungi Proyek “Indeks Kualitas Udara Dunia”.

Perlengkapan

  • Raspberry Pi 4
  • 1SDS011 - Sensor deteksi kualitas udara laser pm2.5 presisi tinggi
  • Kotak plastik

Langkah 1: Partikulat Matter (PM): Apa Itu? Bagaimana Itu Bisa Mengudara?

Partikulat Matter (PM): Apa Itu? Bagaimana Itu Bisa Mengudara?
Partikulat Matter (PM): Apa Itu? Bagaimana Itu Bisa Mengudara?

Jadi, untuk memahami polusi atau pencemaran udara, kita harus mempelajari partikel-partikel yang terkait dengan itu, yang juga dikenal sebagai particulate matter. Melihat grafik pada bagian sebelumnya kita dapat mengamati bahwa mereka menyebutkan PM2.5 dan PM10. Mari kita berikan gambaran singkat tentang itu.

PM adalah singkatan dari partikulat (juga disebut polusi partikel): istilah untuk campuran partikel padat dan tetesan cairan yang ditemukan di udara. Beberapa partikel, seperti debu, kotoran, jelaga, atau asap, berukuran besar atau cukup gelap untuk dilihat dengan mata telanjang. Lainnya sangat kecil sehingga hanya dapat dideteksi menggunakan mikroskop elektron. Partikel datang dalam berbagai ukuran. Partikel yang berdiameter kurang dari atau sama dengan 10 mikrometer sangat kecil sehingga dapat masuk ke paru-paru, berpotensi menyebabkan masalah kesehatan yang serius. Sepuluh mikrometer kurang dari lebar sehelai rambut manusia.

Pencemaran partikel termasuk partikel debu Kasar (PM10): partikel yang dapat terhirup, dengan diameter yang umumnya 10 mikrometer dan lebih kecil. Sumbernya termasuk operasi penghancuran atau penggilingan dan debu yang ditimbulkan oleh kendaraan di jalan. Partikel halus (PM2.5): partikel halus yang dapat dihirup, dengan diameter yang umumnya 2,5 mikrometer dan lebih kecil. Partikel halus dihasilkan dari semua jenis pembakaran, termasuk kendaraan bermotor, pembangkit listrik, pembakaran kayu perumahan, kebakaran hutan, pembakaran pertanian, dan beberapa proses industri. Anda dapat menemukan lebih banyak tentang partikel di situs EPA: Badan Perlindungan Lingkungan Amerika Serikat

Langkah 2: Mengapa Penting untuk Memperhatikan Partikulat Itu?

Mengapa Penting untuk Peduli Tentang Partikulat Itu?
Mengapa Penting untuk Peduli Tentang Partikulat Itu?

Seperti yang dijelaskan oleh GERARDO ALVARADO Z. dalam karyanya di Universitas Chili, studi tentang episode polusi udara yang tinggi di Lembah Meuse (Belgia) pada tahun 1930, Donora (Pennsylvania) pada tahun 1948 dan London pada tahun 1952 telah menjadi sumber terdokumentasi pertama yang terkait dengan kematian. dengan kontaminasi partikel (Préndez, 1993). Kemajuan dalam penyelidikan efek polusi udara pada kesehatan masyarakat telah menentukan bahwa risiko kesehatan disebabkan oleh partikel yang dapat dihirup, tergantung pada penetrasi dan pengendapannya di berbagai bagian sistem pernapasan, dan respons biologis terhadap bahan yang disimpan.

Partikel yang paling tebal, sekitar 5 m, disaring oleh kerja bersama silia saluran hidung dan mukosa yang menutupi rongga hidung dan trakea. Partikel dengan diameter antara 0,5 dan 5 m dapat disimpan di bronkus dan bahkan di alveoli paru, namun partikel tersebut dihilangkan oleh silia bronkus dan bronkiolus setelah beberapa jam. Partikel yang lebih kecil dari 0,5 m dapat berpenetrasi dalam sampai terdeposit di alveoli paru, bertahan dari minggu hingga tahun, karena tidak ada mekanisme transpor mukosiliar yang memfasilitasi eliminasi. Gambar berikut menunjukkan penetrasi partikel dalam sistem pernapasan tergantung pada ukurannya.

Jadi, untuk mengenali kedua jenis partikel (PM2.5 dan PM10) sangat penting dan kabar baiknya adalah keduanya dapat dibaca oleh sensor sederhana dan tidak mahal, SDS011.

Langkah 3: Sensor Partikel - SDS011

Sensor Partikel - SDS011
Sensor Partikel - SDS011
Sensor Partikel - SDS011
Sensor Partikel - SDS011

Pemantauan Kualitas Udara adalah ilmu yang terkenal dan mapan yang dimulai pada tahun 80-an. Saat itu, teknologinya sangat terbatas, dan solusi yang digunakan untuk mengukur polusi udara kompleks, rumit dan sangat mahal.

Untungnya, saat ini, dengan teknologi terbaru dan modern, solusi yang digunakan untuk pemantauan Kualitas Udara tidak hanya menjadi lebih tepat tetapi juga lebih cepat dalam pengukuran. Perangkat menjadi lebih kecil, dan harganya jauh lebih terjangkau daripada sebelumnya.

Pada artikel ini kita akan fokus pada sensor partikel, yang dapat mendeteksi jumlah debu di udara. Sementara generasi pertama hanya mampu mendeteksi jumlah opacity, sensor terbaru seperti SDS011 dari INOVAFIT, spin-off dari University of Jinan (di Shandong), sekarang dapat mendeteksi PM2.5 dan PM10.

Dengan ukurannya, SDS011 mungkin merupakan salah satu sensor terbaik dalam hal akurasi dan harga (kurang dari USD40.00). Spesifikasi

  • Nilai terukur: PM2.5, PM10
  • Rentang: 0–999,9 g /m³
  • Tegangan suplai: 5V (4.7–5.3V)
  • Konsumsi daya (bekerja): 70mA±10mA
  • Konsumsi daya (laser & kipas mode tidur): <4mA
  • Suhu penyimpanan: -20 hingga +60C
  • Suhu kerja: -10 hingga +50C
  • Kelembaban (penyimpanan): Maks. 90%
  • Kelembaban (kerja): Maks. 70% (kondensasi uap air memalsukan pembacaan)
  • Akurasi: 70% untuk 0,3μm dan 98% untuk 0,5μm
  • Ukuran: 71x70x23 mm
  • Sertifikasi: CE, FCC, RoHS

SD011 menggunakan PCB sebagai satu sisi casing, memungkinkan untuk mengurangi biayanya. Dioda reseptor dipasang di sisi PCB (ini wajib karena kebisingan antara dioda dan LNA harus dihindari). Laser emitor dipasang pada kotak plastik dan terhubung ke PCB melalui kabel fleksibel.

Singkatnya, Nova Fitness SDS011 adalah sensor debu laser profesional. Kipas yang terpasang pada sensor secara otomatis menyedot udara. Sensor menggunakan prinsip hamburan sinar laser* untuk mengukur nilai partikel debu yang tersuspensi di udara. Sensor memberikan presisi tinggi dan pembacaan nilai PM2.5 dan PM10 yang andal. Setiap perubahan dalam lingkungan dapat diamati hampir seketika dengan waktu respons yang singkat di bawah 10 detik. Sensor dalam mode standar melaporkan pembacaan dengan interval 1 detik.

* Prinsip Hamburan Laser: Hamburan cahaya dapat diinduksi ketika partikel melewati area pendeteksian. Cahaya yang tersebar diubah menjadi sinyal listrik dan sinyal ini akan diperkuat dan diproses. Jumlah dan diameter partikel dapat diperoleh dengan analisis karena bentuk gelombang sinyal memiliki hubungan tertentu dengan diameter partikel.

Langkah 4: Tapi Bagaimana SDS011 Dapat Menangkap Partikel Itu?

Tapi Bagaimana SDS011 Dapat Menangkap Partikel Itu?
Tapi Bagaimana SDS011 Dapat Menangkap Partikel Itu?
Tapi Bagaimana SDS011 Dapat Menangkap Partikel Itu?
Tapi Bagaimana SDS011 Dapat Menangkap Partikel Itu?

Seperti yang telah dijelaskan sebelumnya, prinsip yang digunakan oleh SDS011 adalah hamburan cahaya atau lebih baik, Dynamic Light Scattering (DLS), yang merupakan teknik dalam fisika yang dapat digunakan untuk menentukan profil distribusi ukuran partikel kecil dalam suspensi atau polimer dalam larutan. Dalam lingkup DLS, fluktuasi temporal biasanya dianalisis dengan menggunakan intensitas atau fungsi auto-korelasi foton (juga dikenal sebagai spektroskopi korelasi foton atau hamburan cahaya kuasi-elastis). Dalam analisis domain waktu, fungsi autokorelasi (ACF) biasanya meluruh mulai dari waktu tunda nol, dan dinamika yang lebih cepat karena partikel yang lebih kecil menyebabkan dekorelasi yang lebih cepat dari jejak intensitas yang tersebar. Telah ditunjukkan bahwa intensitas ACF adalah transformasi Fourier dari spektrum daya, dan oleh karena itu pengukuran DLS dapat dilakukan dengan sama baiknya dalam domain spektral.

Di atas hamburan cahaya dinamis hipotetis dari dua sampel: Partikel yang lebih besar (seperti PM10) di bagian atas dan partikel yang lebih kecil (seperti PM2.5) di bagian bawah. Dan melihat ke dalam sensor kami, kami dapat melihat bagaimana prinsip hamburan cahaya diterapkan.

Sinyal listrik yang ditangkap pada dioda menuju ke Low Noise Amplifier dan dari itu diubah menjadi sinyal digital melalui ADC dan ke luar melalui UART.

Untuk mengetahui lebih banyak tentang SDS011 pada pengalaman ilmiah yang nyata, silakan lihat karya 2018 Konstantinos et al, Pengembangan dan Pengujian Di Lapangan Sistem Portabel Berbiaya Rendah untuk Memantau Konsentrasi PM2.5.

Langkah 5: Waktu Pertunjukan

Waktu pertunjukan!
Waktu pertunjukan!
Waktu pertunjukan!
Waktu pertunjukan!

Mari kita istirahat pada semua teori ini dan fokus pada bagaimana mengukur partikel menggunakan Raspberry Pi dan sensor SDS011

Koneksi HW sebenarnya sangat sederhana. Sensor dijual dengan adaptor USB untuk menghubungkan data output dari UART 7 pinnya dengan salah satu konektor USB standar RPi.

Pin keluar SDS011:

  • Pin 1 - tidak terhubung
  • Pin 2 - PM2.5: 0–999μg/m³; keluaran PWM
  • Pin 3-5V
  • Pin 4 - PM10: 0–999 g/m³; keluaran PWM
  • Pin 5 - GND
  • Pin 6 - RX UART (TTL) 3.3V
  • Pin 7 - TX UART (TTL) 3.3V

Untuk tutorial ini, saya pertama kali menggunakan Raspberry-Pi 4. Tapi tentu saja, model sebelumnya juga akan berfungsi dengan baik.

Segera setelah Anda menghubungkan sensor pada salah satu port USB RPi, Anda secara otomatis akan mulai mendengarkan suara kipasnya. Suaranya sedikit mengganggu, jadi mungkin Anda harus mencabutnya dan menunggu sampai Anda siap dengan SW.

Komunikasi antara sensor dan RPi akan melalui protokol serial. Detail tentang protokol ini dapat ditemukan di sini: Protokol Kontrol Sensor Debu Laser V1.3. Tetapi untuk proyek ini, yang terbaik adalah menggunakan antarmuka python untuk menyederhanakan kode yang akan dikembangkan. Anda dapat membuat antarmuka Anda sendiri atau menggunakan beberapa yang tersedia di internet, seperti antarmuka Frank Heuer atau Ivan Kalchev. Kami akan menggunakan yang terakhir, yang sangat sederhana dan berfungsi dengan baik (Anda dapat mengunduh skrip sds011.py dari GitHub atau milik saya).

File sds011.py harus berada di direktori yang sama tempat Anda membuat skrip.

Selama tahap pengembangan, saya akan menggunakan Notebook Jupyter, tetapi Anda dapat menggunakan IDE apa pun yang Anda suka (Thonny atau Geany, misalnya, yang merupakan bagian dari paket Raspberry Pi Debian keduanya sangat bagus).

Mulai mengimpor sds011, dan buat instance sensor Anda. SDS011 menyediakan metode untuk membaca dari sensor menggunakan UART.

dari sds011 impor *

sensor = SDS011("/dev/ttyUSB0")

Anda dapat mengaktifkan atau menonaktifkan sensor dengan perintah sleep:

pmt_2_5, pmt_10 = sensor.query()

Tunggu setidaknya 10 detik untuk stabilisasi sebelum pengukuran dan setidaknya 2 detik untuk memulai yang baru (lihat kode di atas).

Dan ini semua yang perlu Anda ketahui dalam hal SW untuk menggunakan sensor. Tapi mari kita bahas lebih dalam tentang Kontrol Kualitas Udara! Di awal artikel ini, jika Anda telah menjelajahi situs-situs yang memberikan informasi tentang seberapa baik atau buruknya udara, Anda harus menyadari bahwa warna dikaitkan dengan nilai-nilai tersebut. Setiap warna adalah Indeks. Yang paling terkenal adalah AQI (Air Quality Index), yang digunakan di AS dan beberapa negara lain.

Langkah 6: Indeks Kualitas Udara - AQI

Indeks Kualitas Udara - AQI
Indeks Kualitas Udara - AQI
Indeks Kualitas Udara - AQI
Indeks Kualitas Udara - AQI
Indeks Kualitas Udara - AQI
Indeks Kualitas Udara - AQI

AQI adalah indeks untuk melaporkan kualitas udara harian. Ini memberi tahu Anda seberapa bersih atau tercemarnya udara Anda, dan efek kesehatan terkait apa yang mungkin menjadi perhatian Anda. AQI berfokus pada efek kesehatan yang mungkin Anda alami dalam beberapa jam atau hari setelah menghirup udara yang tercemar.

EPA (Badan Perlindungan Lingkungan Amerika Serikat), misalnya, menghitung AQI tidak hanya untuk polusi partikel (PM2.5 dan PM10) tetapi juga untuk polutan udara utama lainnya yang diatur oleh Clean Air Act: ozon di permukaan tanah, karbon monoksida, sulfur dioksida, dan nitrogen dioksida. Untuk masing-masing polutan ini, EPA telah menetapkan standar kualitas udara nasional untuk melindungi kesehatan masyarakat. Lihat gambar di atas dengan nilai AQI, warna dan pesan kesehatan yang terkait.

Seperti yang telah dikomentari sebelumnya, nilai dan warna AQI tersebut terkait dengan masing-masing agen pencemar, tetapi bagaimana cara mengaitkan nilai yang dihasilkan oleh sensor dengannya? Tabel tambahan menghubungkan semuanya seperti yang ditunjukkan di atas.

Tapi tentu saja, tidak masuk akal untuk menggunakan tabel seperti itu. Pada akhirnya, ini adalah algoritma matematika sederhana yang membuat perhitungan. Untuk itu, kami akan mengimpor perpustakaan untuk mengkonversi antara nilai AQI dan konsentrasi polutan (µg/m³): python-aqi.

Instal perpustakaan menggunakan PIP dan lakukan tes (lihat kode di atas)

pip install python-aqi

Dan bagaimana dengan Chili?

Di Chili indeks serupa digunakan, ICAP: Indeks Kualitas Udara untuk Partikel Bernapas. Sebuah Keputusan Tertinggi 59 tanggal 16 Maret 1998, Sekretaris Jenderal Kementerian Kepresidenan Republik, menetapkan dalam pasal 1, huruf g) bahwa tingkat yang mendefinisikan ICA untuk Bahan Partikulat Bernapas, ICAP.

Nilai akan bervariasi secara linier antar bagian, nilai 500 akan sesuai dengan nilai batas di mana akan ada risiko bagi populasi bila terkena konsentrasi ini. Menurut nilai ICAP, kategori telah ditetapkan yang memenuhi syarat tingkat konsentrasi MP10 yang terpapar pada orang.

Langkah 7: Mencatat Data Secara Lokal

Mencatat Data Secara Lokal
Mencatat Data Secara Lokal
Mencatat Data Secara Lokal
Mencatat Data Secara Lokal
Mencatat Data Secara Lokal
Mencatat Data Secara Lokal

Pada titik ini, kami memiliki semua alat untuk menangkap data dari sensor dan juga mengubahnya menjadi “nilai yang lebih mudah dibaca”, yaitu indeks AQI.

Mari kita buat fungsi untuk menangkap nilai-nilai itu. Kami akan menangkap 3 nilai secara berurutan dengan mengambil rata-rata di antaranya:

def get_data(n=3):

sensor.sleep(sleep=False) pmt_2_5 = 0 pmt_10 = 0 waktu.sleep(10) untuk i dalam jangkauan (n): x = sensor.query() pmt_2_5 = pmt_2_5 + x[0] pmt_10 = pmt_10 + x[1] time.sleep(2) pmt_2_5 = round(pmt_2_5/n, 1) pmt_10 = round(pmt_10/n, 1) sensor.sleep(sleep=True) time.sleep(2) kembali pmt_2_5, pmt_10 Di atas Anda dapat melihat hasil tes. Mari kita juga melakukan fungsi untuk mengonversi nilai numerik PM dalam indeks AQI

def conv_aqi(pmt_2_5, pmt_10):

aqi_2_5 = aqi.to_iaqi(aqi. POLLUTANT_PM25, str(pmt_2_5)) aqi_10 = aqi.to_iaqi(aqi. POLLUTANT_PM10, str(pmt_10)) kembalikan aqi_2_5, aqi_10 di atas hasil tes dengan kedua fungsi. Tapi apa yang harus dilakukan dengan mereka? Jawaban paling sederhana adalah membuat fungsi untuk menyimpan data yang diambil, menyimpannya di file lokal

def save_log():

dengan open("YOUR PATH HERE/air_quality.csv", "a") sebagai log: dt = datetime.now() log.write("{}, {}, {}, {}, {}\n". format(dt, pmt_2_5, aqi_2_5, pmt_10, aqi_10)) log.close() Dengan satu putaran, Anda dapat mencatat data pada basis reguler di file lokal Anda, misalnya, setiap menit

sementara (Benar):

pmt_2_5, pmt_10 = get_data() aqi_2_5, aqi_10 = conv_aqi(pmt_2_5, pmt_10) coba: save_log() kecuali: print ("[INFO] Kegagalan dalam mencatat data") time.sleep(60) Setiap 60 detik, timestamp ditambah data akan "ditambahkan" ke file ini, seperti yang bisa kita lihat di atas.

Langkah 8: Mengirim Data ke Layanan Cloud

Mengirim Data ke Layanan Cloud
Mengirim Data ke Layanan Cloud

Pada titik ini, kita telah mempelajari cara menangkap data dari sensor, menyimpannya di file CSV lokal. Sekarang, saatnya untuk melihat cara mengirim data tersebut ke platform IoT. Pada tutorial ini, kita akan menggunakan ThingSpeak.com.

“ThingSpeak adalah aplikasi Internet of Things (IoT) open-source untuk menyimpan dan mengambil data dari berbagai hal, menggunakan REST dan MQTT API. ThingSpeak memungkinkan pembuatan aplikasi sensor logging, aplikasi pelacakan lokasi, dan jejaring sosial dengan pembaruan status.”

Pertama, Anda harus memiliki akun di ThinkSpeak.com. Selanjutnya, ikuti petunjuk untuk membuat Saluran, perhatikan ID Saluran dan Tulis Kunci API.

Saat membuat saluran, Anda juga harus menentukan info apa yang akan diunggah ke masing-masing dari 8 bidang, seperti yang ditunjukkan di atas (dalam kasus kami hanya 4 bidang yang akan digunakan).

Langkah 9: Protokol MQTT dan Koneksi ThingSpeak

Protokol MQTT dan Koneksi ThingSpeak
Protokol MQTT dan Koneksi ThingSpeak

MQTT adalah arsitektur publish/subscribe yang dikembangkan terutama untuk menghubungkan bandwidth dan perangkat yang dibatasi daya melalui jaringan nirkabel. Ini adalah protokol sederhana dan ringan yang berjalan di atas soket TCP/IP atau WebSockets. MQTT melalui WebSockets dapat diamankan dengan SSL. Arsitektur publish/subscribe memungkinkan pesan didorong ke perangkat klien tanpa perangkat perlu terus melakukan polling ke server.

Pialang MQTT adalah titik pusat komunikasi, dan bertanggung jawab untuk mengirimkan semua pesan antara pengirim dan penerima yang sah. Klien adalah perangkat apa pun yang terhubung ke broker dan dapat mempublikasikan atau berlangganan topik untuk mengakses informasi. Topik berisi informasi perutean untuk broker. Setiap klien yang ingin mengirim pesan memublikasikannya ke topik tertentu, dan setiap klien yang ingin menerima pesan berlangganan topik tertentu. Pialang mengirimkan semua pesan dengan topik yang cocok kepada klien yang sesuai.

ThingSpeak™ memiliki broker MQTT di URL mqtt.thingspeak.com dan port 1883. Broker ThingSpeak mendukung publikasi MQTT dan berlangganan MQTT.

Dalam kasus kami, kami akan menggunakan MQTT Publish.

Langkah 10: Publikasikan MQTT

Publikasi MQTT
Publikasi MQTT

Untuk memulai, mari instal pustaka klien Eclipse Paho MQTT Python, yang mengimplementasikan versi 3.1 dan 3.1.1 dari protokol MQTT

sudo pip install paho-mqtt

Selanjutnya, mari impor pustaka paho:

impor paho.mqtt.publish as publish

dan memulai saluran Thingspeak dan protokol MQTT. Metode koneksi ini adalah yang paling sederhana dan membutuhkan sumber daya sistem paling sedikit:

channelID = "ID CHANNEL ANDA"

apiKey = "KUNCI MENULIS ANDA" topik = "saluran/" + channelID + "/publish/" + apiKey mqttHost = "mqtt.thingspeak.com" Sekarang kita harus mendefinisikan “payload” kita

tPayload = "field1=" + str(pmt_2_5)+ "&field2=" + str(aqi_2_5)+ "&field3=" + str(pmt_10)+ "&field4=" + str(aqi_10)

Dan itu saja! kami siap untuk mulai mengirim data ke cloud! Mari kita tulis ulang fungsi loop sebelumnya untuk juga menyertakan bagian ThingSpeak di dalamnya.

# Mengirim semua data ke ThingSpeak setiap 1 menit

while(Benar): pmt_2_5, pmt_10 = get_data() aqi_2_5, aqi_10 = conv_aqi(pmt_2_5, pmt_10) tPayload = "field1=" + str(pmt_2_5)+ "&field2=" + str(aqi_2_5)+ "&field3=" + str (pmt_10)+ "&field4=" + str(aqi_10) coba: publish.single(topic, payload=tPayload, hostname=mqttHost, port=tPort, tls=tTLS, transport=tTransport) save_log() kecuali: print ("[INFO] Kegagalan dalam pengiriman data") time.sleep(60) Jika semuanya baik-baik saja, Anda harus melihat data juga muncul di saluran Anda di thingspeak.com seperti yang ditunjukkan di atas.

Langkah 11: Skrip Terakhir

Penting untuk menunjukkan bahwa Jupyter Notebook adalah alat yang sangat baik untuk pengembangan dan pelaporan, tetapi tidak untuk membuat kode untuk dimasukkan ke dalam produksi. Yang harus Anda lakukan sekarang adalah mengambil bagian kode yang relevan dan membuat skrip.py dan menjalankannya di terminal Anda.

Misalnya, “ts_air_quality_logger.py”, yang harus Anda jalankan dengan perintah:

python 3 ts_air_quality_logger.py

Skrip ini serta Notebook Jupyter dan sds011.py dapat ditemukan di repositori saya di RPi_Air_Quality_Sensor.

Perhatikan bahwa skrip ini hanya layak untuk pengujian. Yang terbaik adalah tidak menggunakan penundaan di dalam loop terakhir (yang menempatkan kode dalam "jeda"), alih-alih gunakan penghitung waktu. Atau untuk aplikasi nyata, yang terbaik adalah tidak menggunakan loop, memiliki Linux yang diprogram untuk mengeksekusi skrip secara teratur dengan crontab.

Langkah 12: Membawa Monitor ke Luar

Mengambil Monitor di Luar
Mengambil Monitor di Luar
Mengambil Monitor di Luar
Mengambil Monitor di Luar
Mengambil Monitor di Luar
Mengambil Monitor di Luar
Mengambil Monitor di Luar
Mengambil Monitor di Luar

Setelah monitor Kualitas Udara Raspberry Pi saya berfungsi, saya memasang RPi di dalam kotak plastik, menjaga sensor di luar dan meletakkannya di luar rumah saya.

Dua pengalaman dibuat.

Langkah 13: Pembakaran Motor Bensin

Pembakaran Motor Bensin
Pembakaran Motor Bensin
Pembakaran Motor Bensin
Pembakaran Motor Bensin

Sensor ditempatkan sekitar 1m dari lubang gas Lambretta, dan motornya dihidupkan. Motor berjalan selama beberapa menit dan dimatikan. Dari file log di atas, hasil yang saya dapatkan. Menarik untuk mengkonfirmasi bahwa PM2.5 adalah partikulat paling berbahaya yang dihasilkan dari motor.

Langkah 14: Pembakaran Kayu

Pembakaran kayu
Pembakaran kayu
Pembakaran kayu
Pembakaran kayu

Melihat file log, kami menyadari bahwa data sensor sesaat "di luar Jangkauan" dan tidak ditangkap dengan baik oleh Perpustakaan konversi AQI, jadi saya mengubah kode sebelumnya untuk menanganinya:

def conv_aqi(pmt_2_5, pmt_10):

coba: aqi_2_5 = aqi.to_iaqi(aqi. POLLUTANT_PM25, str(pmt_2_5)) aqi_10 = aqi.to_iaqi(aqi. POLLUTANT_PM10, str(pmt_10)) kembalikan aqi_2_5, aqi_10 kecuali: kembali 600, 600 Situasi ini bisa terjadi di lapangan, tidak apa-apa. Ingatlah bahwa sebenarnya, Anda harus menggunakan rata-rata bergerak untuk benar-benar mendapatkan AQI (setidaknya setiap jam, tetapi biasanya setiap hari).

Langkah 15: Kesimpulan

Kesimpulan
Kesimpulan

Seperti biasa, saya berharap proyek ini dapat membantu orang lain menemukan jalan mereka ke dunia Elektronik dan Ilmu Data yang menarik!

Untuk detail dan kode akhir, silakan kunjungi penyimpanan GitHub saya: RPi_Air_Quality_Sensor.

Saludos dari selatan dunia!

Sampai jumpa di instruksi saya berikutnya!

Terima kasih, Marcelo

Direkomendasikan: