Pernah terpikir untuk memantau kualitas udara di dalam atau di luar rumah Anda: di mana Anda tinggal dan bekerja? Proyek ini, yang kami namakan
balenaSense , adalah unit untuk
mengukur suhu, kelembaban, tekanan barometrik dan kualitas udara, serta dasbor yang dapat Anda akses dari mana saja untuk melihat statistik ringkasan dan melacak tren.

Isi
Pendahuluan
Untuk mengontrol kualitas udara dan stasiun cuaca, diperlukan banyak kabel dan berbagai sensor, tetapi situasinya menjadi lebih mudah setelah munculnya sensor yang menggabungkan semua bacaan pada papan kecil yang bagus, yang mudah untuk memulai.

Pertimbangkan pemantauan suhu, kelembaban, tekanan barometrik, dan kualitas udara menggunakan sensor all-in-one yang terhubung langsung ke Raspberry Pi tanpa komponen tambahan. Anda tidak perlu memiliki pengalaman dalam bidang elektronik, tetapi setrika solder akan diterima (meskipun juga opsional). Proyek ini mengimplementasikan database untuk menyimpan bacaan historis bersama dengan antarmuka grafis untuk melihat bacaan saat ini dan segera melihat tren.


Peralatan yang dibutuhkan
Inilah yang perlu Anda beli untuk proyek ini. Tergantung pada apakah Anda ingin menggunakan besi solder atau tidak, kami memilih papan sensor: beberapa bekerja segera, yang lain membutuhkan sedikit solder.

Saya tidak ingin solder
Jika Anda tidak ingin menyolder, Anda perlu:
Saya ingin menyolder - beri saya!
Jika Anda senang mengambil besi solder, maka Anda perlu:
Sensor lainnya
Jika Anda sudah memiliki semacam sensor, proyek ini mendukung
Sense HAT dengan bonus tambahan: smiley pada matriks LED (tergantung pada kualitas udara, tentu saja)!

Bosch BME680 with riser dapat dipesan dari berbagai pemasok dengan harga berbeda.
Catatan Dalam artikel yang kami gunakan Pimoroni: papan ini memiliki keuntungan tambahan bahwa kontak terputus dalam urutan yang benar untuk GPIO Raspberry Pi. Saat menggunakan kartu lain, Anda harus memverifikasi bahwa pin daya, ground, dan I2C bus (SDA dan SCL) cocok, seperti yang dijelaskan kemudian dalam manual.
Perangkat lunak
Kami membuka proyek
balena-sense di GitHub, yang berisi semua perangkat lunak, konfigurasi, dan kode yang Anda perlukan untuk sistem kerja. Kami akan menyebarkan proyek ini pada akun
balenaCloud gratis untuk mendistribusikan semua perangkat lunak untuk Raspberry Pi, serta menyediakan akses jarak jauh. Karena itu, Anda perlu:
Perakitan peralatan
Ada sedikit pekerjaan di bagian depan perangkat keras proyek ini. Tujuan kami adalah untuk menghubungkan papan sensor ke pin GPIO pada Raspberry Pi.
BME680 berkomunikasi dengan Raspberry Pi melalui bus yang disebut I2C (eye-squared-see), yang merupakan bus serial dengan dua kabel. Kedua kabel ini disebut jalur sinkronisasi (SCK) dan jalur data (SDA). Selain kedua kabel, perlu untuk memasok daya ke sensor (3.3V atau 3V3) dan mengardekannya.
Jika Anda memilih opsi tanpa menyolder dari Pimoroni atau Sparkfun atau menggunakan Sense HAT, cukup sambungkan komponen baru yang mengkilap ke Raspberry Pi dan semua koneksi akan dibuat untuk Anda: lanjutkan ke langkah berikutnya!
Jika Anda memutuskan untuk menghubungkan sensor secara langsung ke Raspberry Pi menggunakan Pimoroni atau riser lain, hal utama adalah memastikan koneksi yang benar dari kontak yang dijelaskan di atas (SDA, SCK, 3V3 dan GND).
Situs yang berguna untuk bekerja dengan GPIO di Raspberry Pi adalah
pinout.xyz ; itu jelas menunjukkan bahwa kita membutuhkan pin 1 (daya 3V3), 3 (SDA), 5 (SCL) dan 9 (ground). GPIO 40-pin adalah standar pada Pi 2 dan yang lebih baru. Jika Anda menggunakan papan Pimoroni, maka kontak berada dalam urutan yang benar untuk menghubungkan papan. Perhatikan bagaimana tulisan di papan cocok dengan diagram pinout di atas.

Tetapi jika Anda menghubungkan sensor dengan cara ini, maka panas dari prosesor Raspberry Pi akan mempengaruhi pembacaan. Untuk mengumpulkan pembacaan yang lebih akurat, Anda harus menghapus sensor dari papan: lakukan
dengan kabel ibu-ke-ibu (atau
Jumper Jerky )
DuPont , seperti yang ditunjukkan di bawah ini:

Demikian pula, jika Anda menggunakan sensor lain, di mana diagram pinout tidak sama persis, Anda dapat menghubungkan papan ini ke Pi menggunakan metode yang sama. Hal utama adalah memastikan kepatuhan dengan 3V3, SDA, SCL, dan GND. Jika papan memiliki kontak untuk SDI, SDO, CS - Anda dapat mengabaikannya, karena mereka digunakan untuk antarmuka SPI alternatif, yang tidak kami gunakan dalam proyek ini.
Dalam foto di atas, kami memiliki Raspberry Pi 3A +, tetapi Pi Zero juga cocok sebagai solusi yang lebih murah.
Konfigurasikan Raspberry Pi
Kami akan mem-flash kartu SD dengan sistem operasi balenaOS, melampirkan ke cloud balenaCloud, menambahkan perangkat kami di sana dan mengkonfigurasi proyek sehingga dapat dengan mudah diperbarui nanti.
Pertama, Anda perlu mengatur akun balenaCloud. Ini berarti mendaftar, menambahkan aplikasi, dan menambahkan perangkat.
Langkah 1. Mendaftar untuk balenaCloud
Jika Anda sudah memiliki akun GitHub atau Google, Anda dapat menggunakannya untuk masuk tanpa melalui proses
pendaftaran .
Langkah 2. Membuat aplikasi
Tambahkan aplikasi dengan memilih jenis perangkat yang tepat dan
Starter
sebagai jenis aplikasi, lalu klik
Create New Application
. Jenis ini mendukung semua layanan microser dan bebas hingga sepuluh perangkat.
Selanjutnya, Anda akan dibawa ke dasbor untuk aplikasi yang baru dibuat, di mana Anda dapat pergi ke langkah berikutnya dan menambahkan perangkat. Anda dapat memberikan aplikasi nama yang arbitrer, tetapi Anda akan membutuhkannya nanti di manual ketika kami menulis kode.
Langkah 3. Tambahkan perangkat dan boot OS
Setelah membuat aplikasi, Anda dapat menambahkan perangkat ke aplikasi ini dengan mengklik tombol
Add Device berwarna hijau. Saat menambahkan perangkat, tentukan jenis perangkat yang benar. Jika Anda terhubung ke jaringan nirkabel, Anda dapat mengatur WiFI SSID dan frasa sandi Anda.
Catatan: Raspberry Pi 3 ditunjukkan dalam animasi, jangan lupa untuk memilih jenis perangkat Anda yang benar!

Proses ini menciptakan gambar khusus untuk jenis aplikasi dan perangkat, yang mencakup pengaturan jaringan, jika ditentukan.
Catatan: sebagai permulaan, lebih baik memilih gambar dev untuk melakukan beberapa tes dan pemecahan masalah. Untuk informasi lebih lanjut tentang perbedaan antara gambar pengembangan dan produksi, lihat di
sini . Jika Anda yakin dapat mulai menyebarkan gambar produksi sekarang - silakan.
Langkah 4. Rekam kartu SD dan perangkat boot
Saat gambar OS dimuat, saatnya mem-flash kartu SD. Anda dapat menggunakan
balenaEtcher untuk ini.

Setelah proses selesai, masukkan kartu SD ke Raspberry Pi dan sambungkan sumber listrik.

Saat perangkat melakukan boot untuk pertama kali, perangkat terhubung ke dasbor balenaCloud, setelah itu Anda dapat melihatnya di daftar online dan pergi ke langkah berikutnya.
Pemecahan masalah: perangkat akan muncul di panel dalam beberapa menit. Jika tidak muncul, terjadi kesalahan. Dokumentasi ini memiliki
panduan pemecahan masalah yang luas dengan banyak informasi tentang mengapa ini bisa terjadi. Jika dokumentasi tidak membantu, silakan hubungi
forum .
Penerapan Perangkat Lunak
Ketika Raspberry Pi Anda disiapkan, diunduh, dan terhubung ke balenaCloud, Anda siap untuk menginstal kode aplikasi pada perangkat.
Instal alat CLI balena di workstation
BalenaCloud memungkinkan Anda mentransfer perangkat lunak / kode aplikasi dari jarak jauh ke Raspberry Pi dan perangkat lain. Untuk memungkinkan ini, workstation Anda (bukan Raspberry Pi) harus memenuhi beberapa persyaratan perangkat lunak minimum.
Catatan: Untuk berhasil menggunakan proyek ini, Anda tidak perlu menjalankan perintah apa pun pada perangkat itu sendiri, baik melalui SSH atau dari dasbor balenaCloud. Semuanya dilakukan dari jarak jauh!
Jika Anda sudah memiliki (atau Anda dapat mengkonfigurasi)
npm di komputer Anda, maka ini adalah cara tercepat untuk menjalankan alat CLI. Ada juga
binari untuk Windows, macOS dan Linux .
Catatan: jika Anda telah menginstal alat ini untuk proyek kami yang lain, Anda dapat melewati bagian ini dan langsung ke langkah berikutnya.
Dokumentasi untuk alat CLI menjelaskan instalasi dan konfigurasi paket npm, serta binari.
Ketika CLI diinstal dan dijalankan, langkah pertama adalah masuk ke balenaCloud dengan menjalankan perintah
balena login
:


Saat ada CLI yang berfungsi dan terdaftar di akun, Anda siap menginstal program di Raspberry Pi.
Mengunduh proyek dari GitHub
Langkah selanjutnya adalah
mengunduh kode untuk proyek ini dari GitHub .
Tombol biru akan memuat file zip proyek, tetapi jika Anda sudah terbiasa dengan Git, Anda dapat menggunakan
git clone
cara biasa.
Instal di Raspberry Pi
Karena CLI dan kode terbaru diinstal, Anda dapat menjalankan kode ini di balenaCloud dengan satu perintah. Di sana, gambar Docker dikumpulkan dan dikonfigurasikan, yang akan berjalan di perangkat Anda.
Dari direktori proyek setelah membongkar, jalankan perintah
balena push <appName>
, di mana appName adalah nama aplikasi yang ditentukan di awal manual. Misalnya,
balena push balenaSense
.
Jika semuanya dilakukan dengan benar, setelah beberapa menit layar informasi perangkat Anda pada panel kontrol akan menunjukkan layanan yang sedang berjalan, satu untuk setiap komponen perangkat lunak, sesuatu seperti ini:

Pertama kali unduhan dapat berlangsung beberapa menit (tergantung pada kecepatan koneksi internet Anda), tetapi hanya perubahan dalam wadah yang diunduh, sehingga semuanya terjadi jauh lebih cepat.
Catatan: ketika aplikasi dimulai untuk pertama kalinya (dan Anda menggunakan BME680, bukan Sense HAT), sensor melakukan 'burn-in' selama sekitar lima menit. Selama periode ini, bacaan
tidak akan diambil dan dimasukkan ke dalam database. Aplikasi akan merekam hitungan mundur, yang ditampilkan di panel balenaCloud:

Ketika hitungan mencapai nol, Anda akan melihat pesan 'Mulai loop ... `. Setelah itu, bacaan akan diambil dan dimasukkan ke dalam database setiap 10 detik.
Lihat dasbor
Saya harap Anda telah menginstal perangkat, terhubung ke jaringan dan mulai tanpa masalah. Salah satu manfaat hebat menggunakan akun balenaCloud gratis adalah fitur
Public Device URL
.

Aktifkan sakelar ini dan klik ikon panah biru untuk mengakses dasbor. Anda dapat membagikan tautan ini atau menandainya di ponsel atau perangkat lain. Saat perangkat balenaSense terhubung dan berfungsi, Anda dapat melihat dasbor dari mana saja!

Jika Anda tidak ingin mengaktifkan akses publik, Anda masih dapat melihat dasbor dari jaringan lokal Anda sendiri dengan alamat IP, seperti yang dapat dilihat pada tangkapan layar di atas. Anda akan berbeda, tetapi cukup masukkan
http://<ip->
di browser, dan Anda masih akan mendapatkan akses ke dasbor jika Anda berada di jaringan yang sama dengan perangkat. Misalnya, untuk mengakses perangkat saya, saya akan memasukkan
http://10.1.231.36
.
Jika Anda ingin masuk ke Grafana dan bermain-main dengan pengaturan, maka kredensial default adalah
admin
dan
admin
.
Bagaimana cara kerjanya?
Proyek ini memiliki tiga komponen utama, tiga layanan. Nama-nama ini ada di dasbor balenaCloud:
- InfluxDB - database yang digunakan untuk menyimpan pembacaan sensor
- Sensor - Python library dan kode untuk mengakses sensor, mengambil bacaan dan menyimpannya ke database
- Grafana - digunakan untuk membuat dasbor dengan grafik dan laporan
Sensor BME680 dari Bosch mendeteksi suhu, kelembaban, tekanan, dan hambatan gas. Sensor suhu, kelembaban dan tekanan bekerja langsung di luar kotak, tetapi pembacaan resistensi gas saja tidak terlalu berguna. Ini adalah indikator perubahan komposisi udara. Ketika sensor mulai, itu menetapkan dasar, dan kemudian memantau perubahan. Indikator indikatif kualitas udara diberikan dalam persen dan memperhitungkan pengaruh kelembaban dan ketahanan gas.
Jika Anda menggunakan Sense HAT, di mana tidak ada sensor resistansi gas, kami memperkirakan pembacaan kualitas udara berdasarkan suhu target dan nilai kelembaban.
Apa selanjutnya
Saya harap sekarang Anda telah sepenuhnya meluncurkan proyek, mendapatkan akses ke dasbor, membaca dan mulai mengisi database Anda. Sebutkan beberapa hal yang lebih penting.
Ubah kata sandi
Jika Anda membuka perangkat untuk akses publik, disarankan untuk mengubah kata sandi untuk Grafana.

Kami menyiapkan sistem dengan nama pengguna dan kata sandi
admin
default. Untuk mengubahnya, masuk ke Grafana menggunakan tombol di sudut kiri bawah panel. Anda akan diminta untuk mengubah kata sandi saat pertama kali Anda masuk.
Kustomisasi
Program Grafana untuk dasbor dan laporan memiliki banyak parameter dan pengaturan konfigurasi. Kami telah membuat panel dasar yang menunjukkan bagan dan grafik untuk masing-masing dari empat opsi pengukuran.

Anda dapat menyesuaikan setiap panel Grafana dengan mengarahkan kursor ke judul dan beralih ke pengeditan. Saya sarankan bermain-main dengan pengaturan - perubahan di dasbor tidak disimpan secara otomatis, jadi jika Anda membuat kesalahan, cukup muat ulang halaman, dan semuanya akan kembali ke bentuk aslinya. Jika Anda ingin menyimpan perubahan, klik
Simpan di bagian atas panel kontrol, dan semua pengaturan akan disimpan di perangkat Anda.

Anda juga dapat mengkonfigurasi sensor. Misalnya, pada diagram pengukur tekanan, kami menyiapkan beberapa rentang dasar dan nilai teks, bukan angka. Semua ini berubah sesuai selera Anda!
Perumahan
Sensor seperti itu ideal untuk penempatan di
bilik meteorologi , yang melindungi sensor dari sinar matahari dan panas yang terpancar. Jika Anda mengontrol lingkungan di dalam ruangan, ini tidak begitu penting, tetapi jika sensor dipasang di luar ruangan, posisi dan perlindungannya penting untuk mendapatkan pembacaan yang akurat.
Stan cuaca
sedang dijual , tetapi harganya bisa cukup mahal, jadi pertimbangkan
pilihan DIY .
Thingiverse memiliki beberapa
bangunan dan
stan cuaca BME680 .
Pikiran terakhir
Terima kasih sudah membaca! Jika Anda memutuskan untuk membangun stasiun meteorologi Anda sendiri dengan kontrol kualitas udara - beri tahu kami bagaimana semuanya berjalan, masalah apa yang muncul. Gagasan untuk pengembangan proyek kami dapat diungkapkan
di forum .