Daftar Isi:

Sistem Pemantauan Iklim Dalam Ruangan Berbasis Raspberry Pi: 6 Langkah
Sistem Pemantauan Iklim Dalam Ruangan Berbasis Raspberry Pi: 6 Langkah

Video: Sistem Pemantauan Iklim Dalam Ruangan Berbasis Raspberry Pi: 6 Langkah

Video: Sistem Pemantauan Iklim Dalam Ruangan Berbasis Raspberry Pi: 6 Langkah
Video: Sistem Monitoring Kualitas Udara Di Dalam Ruangan Menggunakan Raspberry Pi dan Telegram 2024, November
Anonim
Sistem Pemantauan Iklim Dalam Ruangan Berbasis Raspberry Pi
Sistem Pemantauan Iklim Dalam Ruangan Berbasis Raspberry Pi

Baca blog ini dan bangun sistem Anda sendiri sehingga Anda dapat menerima peringatan saat ruangan Anda terlalu kering atau lembab.

Apa itu sistem pemantauan iklim dalam ruangan dan mengapa kita membutuhkannya?

Sistem pemantauan iklim dalam ruangan memberikan pandangan sekilas tentang statistik utama terkait iklim seperti suhu dan kelembaban relatif. Mampu melihat statistik ini dan menerima peringatan di ponsel Anda saat ruangan terlalu lembab atau kering bisa sangat membantu. Dengan menggunakan peringatan, Anda dapat mengambil tindakan cepat yang diperlukan untuk mencapai kenyamanan maksimal di dalam ruangan dengan menyalakan pemanas atau membuka jendela. Dalam proyek ini, kita akan melihat bagaimana menggunakan Simulink untuk:

1) membawa statistik iklim (suhu, kelembaban relatif, dan tekanan) dari Sense HAT ke Raspberry Pi

2) menampilkan data terukur pada matriks LED 8x8 dari Sense HAT

3) merancang algoritma untuk memutuskan apakah kelembaban dalam ruangan 'Baik', 'Buruk' atau 'Jelek'.

4) log data di cloud dan kirim peringatan jika data dikategorikan 'Jelek' (terlalu lembab atau kering).

Perlengkapan

Raspberry Pi 3 Model B

Raspberry Pi Sense HAT

Langkah 1: Perangkat Lunak Dibutuhkan

Perangkat Lunak yang Dibutuhkan
Perangkat Lunak yang Dibutuhkan

Anda memerlukan MATLAB, Simulink dan pilih Add-Ons untuk mengikuti dan membangun sistem pemantauan iklim dalam ruangan Anda sendiri.

Buka MATLAB dengan akses Administrator (Klik kanan pada icon MATLAB dan pilih Run as administrator). Pilih Add-Ons dari MATLAB Toolstrip dan klik Get Add-Ons.

Cari di sini untuk paket dukungan dengan nama mereka tercantum di bawah dan 'Tambah' mereka.

A. Paket Dukungan MATLAB untuk Perangkat Keras Raspberry Pi: Memperoleh input dan mengirim output ke papan Raspberry Pi dan perangkat yang terhubung

B. Paket Dukungan Simulink untuk Perangkat Keras Raspberry Pi: Jalankan model Simulink di papan Raspberry Pi

C. RPi_Indoor_Climate_Monitoring_System: Contoh model yang diperlukan untuk proyek ini

Catatan - Selama instalasi, ikuti petunjuk di layar untuk mengatur Pi Anda agar bekerja dengan MATLAB dan Simulink.

Langkah 2: Bawa Data Sensor ke Raspberry Pi Menggunakan Simulink

Bawa Data Sensor ke Raspberry Pi Menggunakan Simulink
Bawa Data Sensor ke Raspberry Pi Menggunakan Simulink

Bagi mereka yang tidak akrab dengan Simulink, ini adalah lingkungan pemrograman grafis yang digunakan untuk memodelkan dan mensimulasikan sistem dinamis. Setelah Anda mendesain algoritme di Simulink, Anda dapat secara otomatis membuat kode dan menyematkannya ke Raspberry Pi atau perangkat keras lainnya.

Ketik perintah berikut pada MATLAB Command Window untuk membuka model contoh pertama. Kami akan menggunakan model ini untuk membawa data suhu, tekanan dan kelembaban relatif ke dalam Raspberry Pi.

>rpiSenseHatBringSensorData

Blok Sensor Tekanan LPS25H dan Sensor Kelembaban HTS221 berasal dari perpustakaan Sense HAT di bawah Paket Dukungan Simulink untuk perpustakaan Perangkat Keras Raspberry Pi.

Blok cakupan berasal dari pustaka Sinks di bawah pustaka Simulink. Untuk memastikan model Anda dikonfigurasi dengan benar, klik ikon roda gigi di model Simulink Anda. Arahkan ke Implementasi Perangkat Keras > Pengaturan papan perangkat keras > Targetkan sumber daya perangkat keras.

Catatan – Anda tidak perlu mengonfigurasi jika Anda mengikuti petunjuk penyiapan saat menginstal Paket Dukungan Simulink untuk Raspberry Pi. Alamat perangkat otomatis diisi ke Pi Anda.

Pastikan alamat perangkat di sini cocok dengan alamat IP yang Anda dengar saat Pi Anda boot. Anda mungkin harus menyalakan kembali Pi Anda dengan earphone yang terhubung ke jack untuk mendengar alamat perangkat.

Klik OK dan tekan tombol Run seperti gambar di bawah ini. Pastikan Pi Anda terhubung secara fisik ke PC melalui kabel USB atau berada di jaringan Wi-Fi yang sama dengan PC Anda.

Saat Anda menekan tombol Jalankan dalam mode Eksternal, Simulink secara otomatis menghasilkan kode C yang setara dengan model Anda dan mengunduh file yang dapat dieksekusi ke Raspberry Pi. Kedua blok cakupan dikonfigurasi untuk dibuka setelah model mulai berjalan. Ketika Simulink selesai menyebarkan kode ke Raspberry Pi, Anda akan melihat data tekanan, suhu dan kelembaban relatif pada lingkup seperti yang ditunjukkan di bawah ini.

Catatan - Kode berjalan pada Raspberry Pi dan Anda melihat sinyal sebenarnya melalui blok lingkup Simulink, seperti yang Anda lakukan jika Anda memiliki osiloskop yang terhubung ke perangkat keras itu sendiri. Nilai suhu dari kedua sensor sedikit berbeda satu sama lain. Jangan ragu untuk memilih salah satu yang mencerminkan suhu sebenarnya di kamar Anda lebih dekat dan gunakan itu di bagian selanjutnya. Dalam semua pengujian dengan Sense HAT yang kami miliki, nilai suhu Sensor Kelembaban HTS221 mendekati suhu sebenarnya di dalam ruangan. Dengan itu kita telah melihat dasar-dasar cara memasukkan data sensor dari Sense HAT ke dalam Raspberry Pi.

Langkah 3: Tampilkan Data Sensor pada Matriks LED 8x8

Tampilkan Data Sensor pada Matriks LED 8x8
Tampilkan Data Sensor pada Matriks LED 8x8
Tampilkan Data Sensor pada Matriks LED 8x8
Tampilkan Data Sensor pada Matriks LED 8x8

Di bagian ini, kita akan melihat bagaimana bagian tampilan visual dari proyek ini ditambahkan ke model terakhir. Elemen Sense HAT yang digunakan pada bagian ini adalah sensor kelembaban (untuk mendapatkan kelembaban dan suhu relatif), sensor tekanan, matriks LED, dan joystick. Joystick digunakan untuk memilih sensor mana yang ingin kita tampilkan.

Untuk membuka model contoh berikutnya, ketik berikut ini di Jendela Perintah MATLAB.

> rpiSenseHatDisplay

Blok Joystick berasal dari perpustakaan Sense HAT. Ini membantu kami membawa data joystick ke Raspberry Pi, seperti yang dilakukan blok sensor tekanan dan kelembaban pada contoh sebelumnya. Untuk saat ini, kami menggunakan blok Test Comfort untuk menampilkan 'baik' (bila nilai blok adalah 1) pada matriks LED. Ini akan menampilkan 'buruk' ketika nilai blok adalah 2 atau 'jelek' ketika nilainya 3 atau 4. Di bagian selanjutnya, kita akan melihat algoritma aktual yang memutuskan apakah kelembaban dalam ruangan baik, buruk atau jelek. Mari kita jelajahi blok Selector dengan mengklik dua kali di atasnya. Blok fungsi MATLAB digunakan untuk mengintegrasikan kode MATLAB dalam model Simulink Anda. Dalam hal ini kami membawa SelectorFcn yang diberikan di bawah ini.

function [nilai, Status]= SelectorFcn(JoyStickIn, tekanan, kelembaban, suhu, ihval)

JoyStickCount gigih

jika kosong(JoyStickCount)

JoyStickCount = 1;

akhir

jika JoyStickIn == 1

JoyStickCount = JoyStickCount + 1;

jika JoyStickCount == 6

JoyStickCount = 1;

akhir

akhir

beralih JoyStickCount

case 1% Tampilkan suhu dalam C

nilai = suhu;

Negara = 1;

case 2% Menampilkan tekanan dalam atm

nilai = tekanan/1013,25;

Negara = 2;

case 3% Menampilkan kelembaban relatif dalam %

nilai = kelembaban;

Negara = 3;

case 4% Menampilkan suhu dalam F

nilai = suhu*(9/5)+32;

Negara = 4;

case 5% Tampilan Baik/Buruk/Jelek

nilai = ihval;

Negara = 5;

jika tidak % Jangan tampilkan/Tampilkan 0

nilai = 0;

Negara = 6;

akhir

Pernyataan switch-case umumnya digunakan sebagai mekanisme kontrol pemilihan. Dalam kasus kami, kami ingin input joystick menjadi kontrol pemilihan dan memilih data berikutnya untuk ditampilkan setiap kali tombol joystick ditekan. Untuk ini, kami menyiapkan loop if yang menambah variabel JoyStickCount dengan setiap penekanan tombol (nilai JoyStickIn adalah 1 jika ada tombol yang ditekan). Dalam loop yang sama, untuk memastikan kita hanya bersepeda di antara lima opsi yang diberikan di atas, kita menambahkan kondisi lain yang mengatur ulang nilai variabel ke 1. Dengan menggunakan ini, kita memilih nilai mana yang akan ditampilkan pada matriks LED. Kasus 1 akan menjadi default saat kami mendefinisikan JoyStickCount untuk memulai dari 1, dan ini berarti bahwa matriks LED akan menampilkan suhu dalam Celcius. Variabel Status digunakan oleh blok data Gulir untuk memahami nilai sensor mana yang sedang ditampilkan dan unit apa yang harus ditampilkan. Sekarang kita tahu bagaimana memilih sensor yang tepat untuk ditampilkan, mari kita lihat bagaimana tampilan sebenarnya bekerja.

Menampilkan Karakter dan Angka

Untuk ditampilkan pada matriks LED Sense HAT, kami membuat matriks 8x8 untuk:

1) semua Angka (0-9)

2) semua unit (°C, A, % dan °F)

3) titik desimal

4) abjad dari kata baik, buruk dan jelek.

Matriks 8x8 ini digunakan sebagai input ke blok Matriks LED 8x8 RGB. Blok ini menyalakan LED yang sesuai dengan elemen-elemen pada matriks yang memiliki nilai 1 seperti yang ditunjukkan di bawah ini.

Menggulir Teks

Blok data Gulir dalam model kami menggulir string yang panjangnya dapat mencapai 6 karakter. Nilai 6 dipilih karena itu adalah string terpanjang yang akan kami keluarkan dalam proyek ini, contoh 23,8 °C atau 99,1 °F. Catatan, di sini °C dianggap sebagai satu karakter. Ide yang sama dapat diperluas untuk menggulir string dengan panjang lain juga.

Berikut adalah-g.webp

www.element14.com/community/videos/29400/l/gif

Untuk menampilkan string masing-masing 6 karakter pada matriks 8x8, kita membutuhkan gambar berukuran total 8x48. Untuk menampilkan string yang panjangnya maksimal 4 karakter, kita perlu membuat matriks 8x32. Sekarang mari kita lihat semuanya tanpa tindakan dengan menekan tombol Run. Tampilan default pada matriks LED adalah nilai suhu dalam °C. Blok Lingkup akan menampilkan Status dan nilai dari blok Selector. Tekan tombol joystick pada Sense HAT dan tahan selama satu detik untuk memverifikasi bahwa nilai berubah ke output sensor berikutnya dan ulangi proses ini hingga mencapai nilai Status 5. Untuk mengamati pergantian algoritma melalui semua kasus kategorisasi kelembaban dalam ruangan, ubah nilai blok Test Comfort ke angka antara 1 hingga 4. Perhatikan bagaimana mengubah nilai blok pada model Simulink segera mengubah cara kode berperilaku pada perangkat keras. Ini dapat berguna dalam situasi di mana seseorang ingin mengubah cara kode berperilaku dari lokasi yang jauh. Dengan itu kita telah melihat elemen kunci di balik aspek visualisasi sistem pemantauan iklim. Di bagian selanjutnya kita akan belajar bagaimana melengkapi sistem pemantauan iklim dalam ruangan kita.

Langkah 4: Rancang Algoritma di Simulink untuk Memutuskan Apakah Kelembaban Dalam Ruangan 'Baik', 'Buruk' atau 'Jelek'

Rancang Algoritma di Simulink untuk Memutuskan Apakah Kelembaban Dalam Ruangan 'Baik', 'Buruk' atau 'Jelek'
Rancang Algoritma di Simulink untuk Memutuskan Apakah Kelembaban Dalam Ruangan 'Baik', 'Buruk' atau 'Jelek'

Untuk memahami apakah ruangan Anda terlalu lembab/kering atau untuk mengetahui tingkat kelembapan dalam ruangan yang dianggap nyaman, ada beberapa metode. Dengan menggunakan artikel ini, kami membuat kurva area untuk menghubungkan kelembaban relatif dalam ruangan dan suhu luar ruangan seperti yang ditunjukkan di atas.

Setiap nilai kelembaban relatif di area ini, berarti kamar Anda berada dalam pengaturan yang nyaman. Misalnya, jika suhu di luar ruangan adalah -30 °F maka nilai kelembaban relatif di bawah 15% dapat diterima. Demikian juga, jika suhu luar ruangan adalah 60 °F maka kelembaban relatif di bawah 50% dapat diterima. Untuk mengkategorikan kelembaban dalam ruangan menjadi kenyamanan maksimal (baik), kenyamanan rata-rata (buruk) atau terlalu lembab/kering (jelek), Anda memerlukan suhu luar ruangan dan kelembaban relatif. Kami telah melihat bagaimana membawa kelembaban relatif ke dalam Raspberry Pi. Jadi, mari fokus membawa suhu luar ruangan. Ketik perintah berikut di Jendela Perintah MATLAB untuk membuka model:

> rpiOutdoorWeatherData

Blok WeatherData digunakan untuk memasukkan suhu eksternal kota Anda (dalam K) menggunakan https://openweathermap.org/. Untuk mengonfigurasi blok ini, Anda memerlukan Kunci API dari situs web. Setelah membuat akun gratis di situs web ini, buka halaman akun Anda. Tab kunci API yang ditunjukkan di bawah ini memberi Anda kuncinya.

Blok WeatherData memerlukan masukan nama kota Anda dalam format tertentu. Kunjungi halaman ini dan masukkan nama kota Anda kemudian simbol koma diikuti dengan 2 huruf untuk menunjukkan negara. Contoh – Natick, AS dan Chennai, IN. Jika penelusuran mengembalikan hasil untuk kota Anda, gunakan itu di blok WeatherData dalam format khusus itu. Jika kota Anda tidak tersedia, gunakan kota tetangga yang kondisi cuacanya lebih dekat dengan Anda. Sekarang klik dua kali pada blok WeatherData dan masukkan nama kota dan kunci API Anda dari situs web.

Tekan Jalankan pada model Simulink ini untuk memeriksa apakah blok tersebut dapat membawa suhu kota Anda ke dalam Raspberry Pi. Sekarang mari kita lihat algoritma yang memutuskan apakah kelembaban dalam ruangan baik, buruk atau jelek. Ketik berikut ini di Jendela Perintah MATLAB untuk membuka contoh berikutnya:

>rpisenseHatIHval

Anda mungkin telah memperhatikan bahwa blok Test Comfort dari model sebelumnya tidak ada dan blok baru yang disebut FindRoom Comfort menyediakan blok ihval ke Selector. Klik dua kali pada blok ini untuk membuka dan menjelajah.

Kami menggunakan blok WeatherData untuk memasukkan suhu luar ruangan. Subsistem Batas Kelembaban mewakili bagan Kelembaban Relatif vs Suhu Luar Ruangan yang kita lihat di atas. Bergantung pada suhu di luar ruangan, ia akan menampilkan nilai batas kelembaban maksimum yang seharusnya. Mari kita buka blok fungsi Putuskan MATLAB dengan mengklik dua kali di atasnya.

Jika nilai kelembaban relatif melebihi batas kelembaban maksimum, maka tandanya akan positif berdasarkan cara kita mengurangkan data, menyiratkan ruangan terlalu lembab. Kami mengeluarkan 3 (jelek) untuk skenario ini. Alasan di balik penggunaan angka dan bukan string adalah mudah untuk ditampilkan pada grafik dan membuat peringatan. Klasifikasi lainnya dalam fungsi MATLAB didasarkan pada kriteria arbitrer yang kami buat. Bila selisih kurang dari 10 dikategorikan kenyamanan maksimal dan bila kurang dari 20 tergolong kenyamanan rata-rata ke atas yang terlalu kering. Jangan ragu untuk menjalankan model ini dan periksa tingkat kenyamanan kamar Anda.

Langkah 5: Catat Data Iklim Dalam Ruangan dan Data yang Dikategorikan di Cloud

Catat Data Iklim Dalam Ruangan dan Data yang Dikategorikan di Cloud
Catat Data Iklim Dalam Ruangan dan Data yang Dikategorikan di Cloud

Di bagian selanjutnya ini kita akan melihat cara mencatat data di cloud. Untuk membuka contoh ini, ketik perintah berikut di Jendela Perintah MATLAB.

> rpiSenseHatLogData

Dalam model ini, bagian tampilan dari model contoh sebelumnya sengaja dihapus karena kami tidak memerlukan sistem pemantauan untuk menampilkan statistik saat mencatat data dan mengirimkan peringatan. Kami menggunakan ThingSpeak, platform IoT open-source gratis yang menyertakan analitik MATLAB, untuk aspek pencatatan data. Kami memilih ThingSpeak karena ada cara langsung untuk memprogram Raspberry Pi dan papan perangkat keras murah lainnya untuk mengirim data ke ThingSpeak menggunakan Simulink. Blok ThingSpeak Write berasal dari Paket Dukungan Simulink untuk perpustakaan Perangkat Keras Raspberry Pi, dan dapat dikonfigurasi menggunakan Write API Key dari saluran ThingSpeak Anda. Petunjuk terperinci tentang cara membuat saluran disediakan di bawah ini. Untuk terus mencatat data ke cloud, Anda ingin Pi Anda bekerja secara independen dari Simulink. Untuk ini, Anda dapat menekan tombol “Deploy to Hardware” di model Simulink Anda.

Buat Saluran ThingSpeak Anda Sendiri

Mereka yang tidak memiliki akun dapat mendaftar di situs web ThingSpeak. Jika Anda memiliki akun MathWorks, maka Anda secara otomatis memiliki akun ThingSpeak.

  • Setelah Anda masuk, Anda dapat membuat saluran dengan membuka Saluran > Saluran Saya dan mengeklik Saluran Baru.
  • Yang Anda butuhkan hanyalah nama untuk saluran dan nama untuk bidang yang akan Anda log seperti yang ditunjukkan di bawah ini.
  • Opsi Tampilkan Lokasi Saluran memerlukan garis lintang dan garis bujur kota Anda sebagai masukan dan dapat menunjukkan lokasi di dalam saluran pada peta. (Contoh nilai yang digunakan di sini adalah untuk Natick, MA)
  • Kemudian tekan Simpan Saluran untuk menyelesaikan pembuatan saluran Anda.

4a. Waspada jika Data Dikategorikan 'Jelek'

Untuk melengkapi sistem pemantauan iklim dalam ruangan kami, kami harus melihat cara menerima peringatan berdasarkan data cloud. Ini penting karena, tanpanya Anda tidak akan dapat mengambil tindakan yang diperlukan untuk mengubah tingkat kenyamanan di dalam ruangan. Di bagian ini, kita akan melihat cara menerima notifikasi di ponsel Anda setiap kali data cloud menunjukkan bahwa ruangan terlalu lembab atau kering. Kami akan mencapai ini dengan menggunakan dua layanan: IFTTT Webhooks dan ThingSpeak TimeControl. IFTTT (singkatan dari If this, then that) adalah layanan online yang dapat menangani peristiwa dan memicu tindakan berdasarkan peristiwa tersebut.

Langkah-langkah untuk Mengatur Webhooks IFTTT

Catatan: Coba ini di komputer untuk hasil terbaik.

1) Buat akun di ifttt.com (jika Anda belum memilikinya) dan buat Applet Baru dari halaman Applet Saya.

2) Klik tombol biru "ini" untuk memilih layanan pemicu Anda.

3) Cari dan pilih Webhooks sebagai layanan.

4) Pilih Terima Permintaan Web dan berikan nama untuk acara tersebut.

5) Pilih buat pemicu.

6) Pilih "itu" di halaman berikutnya dan cari notifikasi.

7) Pilih kirim pemberitahuan dari aplikasi IFTTT.

8) Masukkan nama acara yang Anda buat di Langkah 2 IFTTT dan pilih buat tindakan.

9) Lanjutkan sampai Anda mencapai langkah terakhir, tinjau dan tekan selesai.

10) Buka https://ifttt.com/maker_webhooks dan klik tombol Pengaturan di bagian atas halaman.

11) Buka URL di bagian Info Akun.

12) Masukkan nama acara Anda di sini dan klik 'Uji Ini'.

13) Salin URL pada baris terakhir untuk penggunaan di masa mendatang (dengan kunci).

Langkah-langkah untuk Mengatur ThingSpeak TimeControl

1) Pilih Aplikasi> Analisis MATLAB

2) Klik Baru di halaman berikutnya dan pilih Trigger Email from IFTTT dan klik Create.

Bagian penting di sini dalam kode template adalah:

ID Saluran – Masukkan saluran ThingSpeak Anda yang memiliki informasi “nilai kelembaban dalam ruangan”.

IFTTTURL – Masukkan URL yang disalin dari bagian sebelumnya Langkah 13.

readAPIKey – Masukkan kunci dari bagian ThingSpeak Channel. Action – yang bekerja pada nilai terakhir. Ubah ke berikut untuk memicu peringatan.

3) Di situs web ThingSpeak, klik Aplikasi > TimeControl.

4) Pilih Berulang dan pilih frekuensi waktu.

5) Klik Simpan Kontrol Waktu.

Sekarang Analisis MATLAB berjalan secara otomatis setiap setengah jam dan mengirimkan pemicu ke layanan IFTTT Webhooks jika nilainya lebih besar dari atau sama dengan 3. Kemudian aplikasi telepon IFTTT akan mengingatkan pengguna dengan pemberitahuan seperti yang ditunjukkan di awal bagian ini.

Langkah 6: Kesimpulan

Dengan itu kita telah melihat semua aspek penting tentang bagaimana membangun sistem pemantauan iklim Anda sendiri. Dalam proyek ini, kami melihat bagaimana Simulink dapat digunakan untuk –

  • memprogram Raspberry Pi untuk memasukkan data dari Sense HAT. Sorot - Visualisasikan data di Simulink karena kode masih berjalan di Raspberry Pi.
  • membangun tampilan visual sistem pemantauan iklim dalam ruangan. Sorot - Ubah cara kode Anda berperilaku pada perangkat keras dari Simulink.
  • merancang algoritma sistem pemantauan iklim dalam ruangan.
  • mencatat data dari Raspberry Pi ke cloud dan membuat peringatan dari data yang dicatat.

Apa saja perubahan yang akan Anda lakukan pada sistem pemantauan iklim dalam ruangan ini? Silakan bagikan saran Anda melalui komentar.

Direkomendasikan: