Proyek ini menggunakan Raspberry Pi Zero W, Pimoroni Enviro+, dan sensor kualitas udara Plantower untuk memantau, menampilkan, dan melaporkan partikel udara, gas, suhu, kelembapan, tekanan udara, tingkat cahaya, dan tingkat kebisingan. Ada juga opsi untuk memantau tingkat eCO2 dan TVOC dengan menambahkan sensor SGP30. Kode ini didasarkan pada banyak contoh dan pustaka Python yang diterbitkan oleh Pimoroni, dengan serangkaian modifikasi dan penyempurnaan.
Fungsi prakiraan cuaca dasar telah ditambahkan, berdasarkan tingkat dan perubahan tekanan udara.
Tampilan tingkat cahaya dalam Cuaca dan Cahaya yang luar biasa telah diubah untuk menampilkan tingkat kualitas udara. Rona latar belakang kini mewakili tingkat kualitas udara dan posisi matahari kini ditampilkan melalui ikon matahari yang terlihat. Ini juga memberikan informasi ramalan cuaca, tingkat kebisingan (jika diaktifkan) dan beberapa perubahan kecil pada indikator kelembapan.
Fungsi Gabungan telah dimodifikasi untuk memberikan peningkatan visibilitas setiap grafik. Warna grafik didasarkan pada ambang batas level untuk setiap parameter dan hanya menampilkan parameter yang telah diukur. Metode 'display_everything' juga telah dimodifikasi untuk hanya menampilkan parameter kualitas udara, guna meningkatkan keterbacaan tampilan.
Fungsi All in One telah dimodifikasi untuk memungkinkan perputaran melalui semua fungsi Enviro Monitor.
Keakuratan pengukuran suhu dan kelembapan telah ditingkatkan dengan melakukan pengujian ekstensif dan analisis regresi (antara 0 dan 40 derajat Celsius) untuk mengembangkan algoritma kompensasi yang lebih efektif. Namun, bahkan algoritme yang ditingkatkan ini tidak memberikan akurasi yang memadai dan perlu menggunakan wadah cetak 3D untuk memisahkan Enviro+ dari Raspberry Pi Zero W dan menghubungkannya melalui kabel pita.
Selain meningkatkan pengukuran suhu dan kelembapan, pengujian dan analisis regresi dilakukan untuk memberikan kompensasi penyimpangan, suhu, kelembapan, dan tekanan udara berbasis waktu untuk sensor gas Enviro+. Algoritma dan kalibrasi udara bersih juga digunakan untuk memberikan pembacaan sensor gas dalam satuan ppm. Fungsi pencatatan data disediakan untuk mendukung analisis regresi. File log untuk analisis tersebut perlu diaktifkan dan dikonversi ke format json yang valid sebelum melakukan analisis regresi lebih lanjut.
Keakuratan pembacaan tekanan udara disampaikan melalui kompensasi ketinggian. Ketinggian diatur oleh parameter 'ketinggian' di file config.json.
Casingnya tidak tahan air dan perlu terlindung dari cuaca buruk. Basis hanya diperlukan jika unit tidak dipasang pada permukaan vertikal. Terdapat varian casing dan cover untuk model Indoor Plus yang memantau tingkat eCO2 dan TVOC. Varian casing ini memberikan ruang dan aliran udara tambahan untuk sensor SGP30.
Kasing ini juga memiliki opsi untuk menambahkan penutup cuaca untuk memberikan perlindungan tambahan dari berbagai elemen. Saat menggunakan sampul ini, "enable_display" di file config.json perlu disetel ke "false". Hal ini membatasi fungsionalitas tampilan hanya pada rona dan nomor seri berdasarkan kualitas udara, serta mengubah variabel kompensasi suhu dan kelembapan untuk mengurangi efek penutup pada sensor suhu dan kelembapan.
Perkiraan pengukuran tingkat kebisingan telah ditambahkan ke Versi 6, berdasarkan repositori ini. Fitur ini belum dikalibrasi dan tidak digunakan untuk pengukuran tingkat suara yang akurat. Versi 6.7 telah meningkatkan kompensasi frekuensi fungsi pengukuran tingkat kebisingan, dengan menggunakan ini, namun masih diperlukan pekerjaan dan kalibrasi lebih lanjut. Fungsi pengukuran tingkat kebisingan ini memerlukan pengaturan tambahan (dijelaskan di bawah) dan setelah pengaturan, perlu diaktifkan di file konfigurasi.
dukungan mqtt disediakan untuk memungkinkan penggunaan sensor suhu dan kelembaban eksternal (untuk pencatatan data dan analisis regresi), interworking antara Enviro Monitor dan sistem otomasi rumah dan untuk mendukung interworking antara Enviro Monitor luar ruangan dan dalam ruangan. Interaksi tersebut memungkinkan tampilan Monitor Enviro dalam ruangan berputar antara pembacaan dalam dan luar ruangan.
Alternatif untuk menggunakan Monitor Enviro dalam dan luar ruangan yang terhubung dengan mqtt untuk mendapatkan pembacaan luar ruangan pada Monitor Enviro dalam ruangan, adalah dengan mengonfigurasi Monitor Enviro dalam ruangan untuk menangkap pembacaan Luftdaten atau umpan IO Adafruit dari Monitor Enviro lain.
Interworking Luftdaten telah dimodifikasi untuk mendukung penambahan pembacaan tingkat kebisingan minimum, maksimum, dan rata-rata. Pembacaan tingkat kebisingan dapat dikirim ke Luftdaten dengan menyetel "enable_luftdaten_noise" ke true di file config.json. Perhatikan bahwa Luftdaten saat ini tidak dapat dikonfigurasi dengan tiga sensor per node, sehingga pembacaan tingkat kebisingan hanya dapat dikirim ke Luftdaten jika PM atau pembacaan iklim dinonaktifkan. Hal ini dapat dilakukan dengan menyetel "disable_luftdaten_sensor_upload" di file config.json ke "Iklim" atau "PM".
Pengaturan Enviro+ yang sama digunakan untuk mengatur Monitor Enviro dan parameter file config.json digunakan untuk menyesuaikan fungsinya. Deskripsi parameter file config.json ada di sini.
Menyiapkan pengukuran tingkat kebisingan memerlukan langkah-langkah tambahan berikut:
Eksekusi pengaturan ini yang berhasil diperlukan sebelum mengaktifkan pengukuran kebisingan di file konfigurasi.
sudo pembaruan apt-get
sudo peningkatan apt-get
curl -sSL https://get.pimoroni.com/enviroplus | pesta
sudo python -m pip uninstall perangkat suara
sudo pip3 instal perangkat suara==0.3.15
Untuk Versi 6.7 dan yang lebih baru, lakukan juga:
sudo apt-get install python3-scipy
sudo pip3 instal git+https://github.com/endolith/waveform_lysis.git@master
Kemudian ikuti petunjuk di: https://learn.adafruit.com/adafruit-i2s-mems-microphone-breakout/raspberry-pi-wiring-test termasuk “Menambahkan Kontrol Volume”
Gunakan yang berikut ini sebagai pengganti teks yang didokumentasikan untuk ~/.asoundrc:
Untuk versi sebelum Versi 6.7:
Gunakan alsamixer untuk mengatur level penangkapan adau7002 ke 50
Untuk Versi 6.7 dan yang lebih baru:
Gunakan alsamixer untuk mengatur level penangkapan adau7002 ke 10
Panduan Pengguna memberikan panduan tentang penggunaan Monitor Enviro.
Dukungan diberikan untuk streaming ramalan cuaca, kualitas udara, suhu, kelembaban, titik embun, tekanan udara, konsentrasi PM, konsentrasi gas, tingkat cahaya, tingkat kebisingan dan, dengan sensor SGP30 opsional, data eCO2 dan TVOC ke Adafruit IO. Ini dapat diaktifkan dan diatur sebagai berikut:
Bidang berikut dalam file config.json Monitor Enviro perlu diisi untuk memasok data ke umpan IO Adafruit.
"enable_adafruit_io": Setel ke true untuk mengaktifkan dan false untuk menonaktifkan feed IO Adafruit,
"aio_user_name": "Nama Pengguna IO Adafruit Anda",
"aio_key": "Kunci IO Adafruit Anda",
"aio_feed_window": Nilai antara 0 dan 9. Menyetel waktu mulai untuk jendela umpan satu menit (lihat Kontrol Pembatasan Adafruit). Setel ke 0 jika Anda hanya memiliki satu Monitor Enviro,
"aio_feed_sequence": Nilai antara 0 dan 3. Menetapkan waktu mulai pembaruan feed dalam jendela pembaruan feed satu menit (lihat Kontrol Pembatasan Adafruit). Setel ke 0 jika Anda hanya memiliki satu Monitor Enviro,
"aio_household_prefix": "Awalan Kunci IO Adafruit untuk rumah tangga yang Anda pantau (lihat Konvensi Penamaan IO Adafruit)",
"aio_location_prefix": "Awalan Kunci IO Adafruit untuk lokasi Monitor Enviro khusus ini. Gunakan 'dalam ruangan' untuk monitor dalam ruangan atau 'luar ruangan' untuk monitor luar ruangan. (lihat Konvensi Penamaan IO Adafruit)",
"aio_package": Setel ke "Premium Plus" atau "Premium Plus Noise" atau "Premium" atau "Premium Noise" atau "Basic Air" atau "Basic Combo"
Anda memerlukan akun Adafruit IO+ untuk menggunakan paket 'Premium Plus', 'Premium Plus Noise', 'Premium' atau 'Premium Noise' dan Enviro Monitor Indoor Plus (dilengkapi dengan sensor SGP30 eCO2/TVOC) untuk ' Paket Premium Plus' atau 'Premium Plus Noise' (lihat Paket Adafruit IO)",
Skrip ini mengatur feed, dashboard, dan blok IO Adafruit dari Enviro Monitor seperti contoh ini
Skrip ini dapat mengatur beberapa rumah tangga dan lokasi sekaligus, dengan mengisi kamus aio_feed_prefix dengan data yang diperlukan. Format untuk aio_feed_prefix adalah:
aio_feed_prefix = {'Nama Rumah Tangga 1': {'key': 'household1key', 'paket': 'aio_package', 'locations': {'Location1Name': 'location1key', 'Location2Name': 'location2key'}, 'visibilitas ': 'publik' atau 'pribadi'}, 'Nama Rumah Tangga 2': {'kunci': 'rumah tangga2kunci', 'paket': 'aio_package', 'lokasi': {'Location1Name': 'location1key'}, 'visibilitas': 'publik' atau 'pribadi'}}
Nama Rumah Tangga dan Kunci Rumah Tangga harus konsisten dengan yang ditentukan dalam file config.json Monitor Enviro yang relevan.
Misalnya, jika Anda hanya memiliki satu Monitor Enviro untuk rumah tangga Anda, dan jika Anda telah menyetel "aio_household_prefix" ke "home", "aio_location_prefix" ke "outdoor" dan "aio_package" ke "Premium" di file config.json Anda untuk Monitor Enviro itu, dan jika Anda ingin feed, dasbor, dan blok diatur dengan visibilitas pribadi:
aio_feed_prefix = {'Rumah': {'kunci': 'rumah', 'paket': Premium', 'lokasi': {'Luar Ruangan': 'luar ruangan'}, 'visibilitas': 'pribadi'}}
Jika Anda memiliki dua Monitor Enviro untuk rumah tangga Anda, dan jika Anda telah mengatur file config.json sebagai "aio_household_prefix" menjadi "home" untuk kedua Monitor Enviro, "aio_location_prefix" menjadi "outdoor" untuk monitor luar ruangan dan "indoor" untuk monitor dalam ruangan Anda, "aio_package" menjadi "Premium" untuk monitor luar ruangan dan "Premium Plus" untuk monitor dalam ruangan, dan jika Anda menginginkan feed, dasbor, dan blok diatur dengan visibilitas publik:
aio_feed_prefix = {'Rumah': {'kunci': 'rumah', 'paket': Premium Plus', 'lokasi': {'Luar Ruangan': 'luar ruangan', 'Dalam': 'dalam ruangan'}, 'visibilitas': 'publik'}}
Dua kamus buatan pengguna lainnya adalah aio_user_name dan aio_key. Ini harus diisi dengan nama pengguna dan kunci yang sama dengan yang Anda gunakan di file config.json Monitor Enviro Anda.
aio_user_name = "Nama Pengguna IO Adafruit Anda"
aio_key = "Kunci IO Adafruit Anda"
Jika diaktifkan, pembaruan feed IO Adafruit dibuat setiap 10 menit. Variabel aio_feed_window dan aio_feed_sequence pada file konfigurasi digunakan untuk meminimalkan kesalahan pembatasan IO Adafruit saat mengumpulkan feed dari beberapa Monitor Enviro. Variabel aio_feed_window dapat berupa nilai antara 0 dan 9 untuk mengatur waktu mulai jendela pembaruan feed satu menit. 0 membuka jendela pada 0, 10, 20, 30, 40 dan 50 menit lewat jam, 1 membuka jendela pada 1, 11, 21, 31, 41, dan 51 menit lewat jam, 2 membuka jendela pada 2, 12, 22, 32, 42 dan 52 menit melewati satu jam, dan seterusnya. Variabel aio_feed_sequence dapat berupa nilai antara 0 dan 3 untuk mengatur waktu mulai pembaruan feed dalam jendela pembaruan feed satu menit. 0 memulai pembaruan umpan segera setelah jendela terbuka, 1 menunda permulaan selama 15 detik, 2 kali 30 detik, dan 3 kali 45 detik.
Konvensi penamaan untuk setiap feed, dasbor, atau blok IO Adafruit Enviro Monitor adalah dengan menggunakan nama rumah tangga, diikuti dengan lokasi lokasi Enviro Monitor yang relevan dalam rumah tangga tersebut, sebagai awalan untuk setiap feed, dasbor, atau blok. Anda memilih nama yang sesuai untuk "aio_household_prefix", dan "aio_location_prefix" dapat berupa “indoor” atau “outdoor”. Misalnya, menyetel “aio_household_prefix" ke “home” dan “aio_location_prefix” ke “outdoor” akan menyetel awalan setiap nama feed sebagai “Home Outdoor “ dan awalan setiap kunci feed sebagai “home-outdoor-“. Jadi, Umpan Suhu akan memiliki nama "Suhu Luar Ruangan Rumah" dan kunci "suhu rumah-luar ruangan". Dasbor akan memiliki nama "Rumah" dan kunci "rumah" dan blok pengukur suhu di dalam dasbor tersebut akan memilikinya nama “Pengukur Suhu Luar Ruangan” dan kunci “pengukur suhu luar ruangan”.
Tersedia enam pilihan paket Adafruit IO: "Premium" dengan 14 data feed per Enviro, "Premium Noise" dengan 17 data feed per Enviro, "Premium Plus" dengan 16 data feed per Enviro (yaitu penambahan eCO2 dan TVOC melalui opsi opsional Sensor SGP30), "Premium Plus Noise" dengan 19 data feed per Enviro yang semuanya memerlukan akun Adafruit IO+; "Basic Air" dengan 5 aliran data kualitas udara (Tingkat Kualitas Udara, Teks Kualitas Udara, PM1, PM2.5 dan PM10) dan "Basic Combo" dengan 5 aliran kualitas/iklim udara (Tingkat Kualitas Udara, Ikon Prakiraan Cuaca, Suhu, Kelembaban dan Tekanan Udara).
Menggunakan paket IO Adafruit "Premium Noise" dan "Premium Plus Noise" memerlukan konfigurasi dan pengaktifan pengukuran Noise di Enviro, menggunakan instruksi pengaturan yang relevan. Versi 6.5 mengubah feed kebisingan dan dasbor untuk menampilkan tingkat kebisingan Maks, Min, dan Rata-rata di antara pembaruan feed, sedangkan versi sebelumnya hanya menampilkan tingkat kebisingan Maks di antara pembaruan feed.
Proyek ini dilisensikan di bawah Lisensi MIT - lihat file LICENSE.md untuk detailnya
Prakiraan Cuaca berdasarkan www.worldstormcentral.co/law_of_storms/secret_law_of_storms.html oleh RJ Ellis