Isi kandungan:

Sistem Pemantauan Iklim Dalaman Berasaskan Raspberry Pi: 6 Langkah
Sistem Pemantauan Iklim Dalaman Berasaskan Raspberry Pi: 6 Langkah

Video: Sistem Pemantauan Iklim Dalaman Berasaskan Raspberry Pi: 6 Langkah

Video: Sistem Pemantauan Iklim Dalaman Berasaskan Raspberry Pi: 6 Langkah
Video: Dibalik Proses Kreasi X70 | SUV Pertama PROTON Malaysia 2024, November
Anonim
Sistem Pemantauan Iklim Dalaman Berasaskan Raspberry
Sistem Pemantauan Iklim Dalaman Berasaskan Raspberry

Baca blog ini dan bina sistem anda sendiri supaya anda dapat menerima makluman apabila bilik anda terlalu kering atau lembap.

Apa itu sistem pemantauan iklim dalaman dan mengapa kita memerlukannya?

Sistem pemantauan iklim dalaman memberi gambaran ringkas mengenai statistik berkaitan iklim utama seperti suhu dan kelembapan relatif. Mampu melihat statistik ini dan menerima makluman di telefon anda apabila ruangan terlalu lembap atau kering boleh sangat membantu. Dengan menggunakan amaran, anda dapat mengambil tindakan cepat yang diperlukan untuk mencapai keselesaan maksimum di dalam ruangan dengan menghidupkan pemanas atau membuka tingkap. Dalam projek ini, kita akan melihat bagaimana menggunakan Simulink untuk:

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

2) paparan data yang diukur pada matriks LED 8x8 dari Sense HAT

3) reka algoritma untuk menentukan sama ada kelembapan dalaman adalah 'Baik', 'Buruk' atau 'Jelek'.

4) log data di awan dan hantarkan amaran jika data tersebut dikategorikan ‘Jelek’ (terlalu lembab atau kering).

Bekalan

Raspberry Pi 3 Model B

Raspberry Pi Sense HAT

Langkah 1: Perisian Diperlukan

Perisian Diperlukan
Perisian Diperlukan

Anda memerlukan MATLAB, Simulink dan pilih Add-On untuk mengikuti dan membina sistem pemantauan iklim dalaman anda sendiri.

Buka MATLAB dengan akses Pentadbir (Klik kanan pada ikon MATLAB dan pilih Jalankan sebagai pentadbir). Pilih Add-On dari MATLAB Toolstrip dan klik Get Add-On.

Cari di sini untuk pakej sokongan dengan nama mereka tertera di bawah dan 'Tambah' mereka.

a. Pakej Sokongan MATLAB untuk Perkakasan Raspberry Pi: Dapatkan input dan hantar output ke papan Raspberry Pi dan peranti yang disambungkan

b. Pakej Sokongan Simulink untuk Perkakasan Raspberry Pi: Jalankan model Simulink pada papan Raspberry Pi

c. RPi_Indoor_Climate_Monitoring_System: Contoh model yang diperlukan untuk projek ini

Catatan - Semasa pemasangan, ikuti arahan di skrin untuk mengatur Pi anda agar berfungsi 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 biasa dengan Simulink, ini adalah persekitaran pengaturcaraan grafik yang digunakan untuk memodelkan dan mensimulasikan sistem dinamik. Setelah anda merancang algoritma anda di Simulink, anda secara automatik dapat menghasilkan kod dan memasukkannya ke Raspberry Pi atau perkakasan lain.

Taipkan perkara berikut di MATLAB Command Window untuk membuka model contoh pertama. Kami akan menggunakan model ini untuk memasukkan data suhu, tekanan dan kelembapan relatif ke dalam Raspberry Pi.

> rpiSenseHatBringSensorData

Blok LPS25H Sensor Tekanan dan Sensor Kelembapan HTS221 berasal dari perpustakaan Sense HAT di bawah Pakej Sokongan Simulink untuk perpustakaan Perkakasan Raspberry Pi.

Blok skop adalah dari perpustakaan Sinks di bawah perpustakaan Simulink. Untuk memastikan model anda dikonfigurasi dengan betul, klik pada ikon roda gigi pada model Simulink anda. Navigasi ke Pelaksanaan Perkakasan> Tetapan papan perkakasan> Sasarkan sumber perkakasan.

Catatan - Anda tidak perlu mengkonfigurasi jika anda mengikuti arahan persediaan semasa memasang Pakej Sokongan Simulink untuk Raspberry Pi. Alamat peranti diisi secara automatik ke alamat Pi anda.

Pastikan alamat peranti di sini sepadan dengan alamat IP yang anda dengar semasa Pi anda boot. Anda mungkin perlu menghidupkan semula Pi anda dengan fon telinga yang disambungkan ke soket untuk mendengar alamat peranti.

Klik OK dan tekan butang Run seperti gambar di bawah. Pastikan Pi anda disambungkan secara fizikal ke PC melalui kabel USB atau berada di rangkaian Wi-Fi yang sama dengan PC anda.

Apabila anda menekan butang Jalankan dalam mod Luaran, Simulink secara automatik menghasilkan kod C yang setara dengan model anda dan memuat turun yang dapat dijalankan ke Raspberry Pi. Kedua-dua blok skop dikonfigurasi untuk dibuka sebaik sahaja model mula dijalankan. Apabila Simulink selesai menggunakan kod ke Raspberry Pi, anda akan melihat data tekanan, suhu dan kelembapan relatif pada ruang lingkup seperti yang ditunjukkan di bawah.

Catatan - Kod ini berjalan pada Raspberry Pi dan anda melihat isyarat sebenar melalui blok skop Simulink, seperti yang anda lakukan sekiranya anda mempunyai osiloskop yang disambungkan ke perkakasan itu sendiri. Nilai suhu dari dua sensor sedikit berbeza antara satu sama lain. Jangan ragu untuk memilih suhu yang menggambarkan suhu sebenar di bilik anda dengan lebih dekat dan menggunakannya di bahagian seterusnya. Dalam semua ujian dengan Sense HAT yang kami lalui, nilai suhu HTS221 Sensor Kelembapan lebih dekat dengan suhu sebenar di dalam bilik. Dengan itu kami telah melihat asas-asas bagaimana memasukkan data sensor dari Sense HAT ke dalam Raspberry Pi.

Langkah 3: Paparkan Data Sensor pada Matriks LED 8x8

Paparkan Data Sensor pada Matriks LED 8x8
Paparkan Data Sensor pada Matriks LED 8x8
Paparkan Data Sensor pada Matriks LED 8x8
Paparkan Data Sensor pada Matriks LED 8x8

Di bahagian ini, kita akan melihat bagaimana bahagian paparan visual projek ini ditambahkan ke model terakhir. Elemen Sense HAT yang digunakan dalam bahagian ini adalah sensor kelembapan (untuk mendapatkan kelembapan dan suhu relatif), sensor tekanan, matriks LED, dan joystick. Joystick digunakan untuk memilih sensor mana yang ingin kita paparkan.

Untuk membuka model contoh seterusnya, ketik yang berikut di Tetingkap Perintah MATLAB.

> rpiSenseHatDisplay

Blok Joystick adalah dari perpustakaan Sense HAT. Ini membantu kami membawa data kayu bedik ke Raspberry Pi, seperti halnya blok sensor tekanan dan kelembapan pada contoh sebelumnya. Buat masa ini, kami menggunakan blok Test Comfort untuk memaparkan 'baik' (ketika nilai blok adalah 1) pada matriks LED. Ia akan memaparkan 'buruk' apabila nilai blok 2 atau 'jelek' ketika nilainya sama ada 3 atau 4. Di bahagian seterusnya, kita akan melihat algoritma sebenar yang memutuskan sama ada kelembapan dalaman baik, buruk atau jelek. Mari kita terokai blok Pemilih dengan mengklik dua kali di atasnya. Blok fungsi MATLAB digunakan untuk mengintegrasikan kod MATLAB dalam model Simulink anda. Dalam kes ini, kami membawa SelectorFcn yang diberikan di bawah.

fungsi [value, State] = SelectorFcn (JoyStickIn, tekanan, kelembapan, suhu, ihval)

JoyStickCount berterusan

jika boleh (JoyStickCount)

JoyStickCount = 1;

akhir

jika JoyStickIn == 1

JoyStickCount = JoyStickCount + 1;

jika JoyStickCount == 6

JoyStickCount = 1;

akhir

akhir

tukar JoyStickCount

kes 1% Suhu paparan dalam C

nilai = temp;

Nyatakan = 1;

kes 2% Tekanan paparan di atm

nilai = tekanan / 1013.25;

Nyatakan = 2;

case 3% Paparkan kelembapan relatif dalam%

nilai = kelembapan;

Nyatakan = 3;

kes 4% Suhu paparan di F

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

Nyatakan = 4;

kes 5% Paparan Baik / Buruk / Jelek

nilai = ihval;

Nyatakan = 5;

jika tidak% Jangan paparkan / Paparkan 0

nilai = 0;

Nyatakan = 6;

akhir

Pernyataan case-case umumnya digunakan sebagai mekanisme kawalan pemilihan. Dalam kes kami, kami ingin input joystick menjadi kawalan pemilihan dan pilih data seterusnya untuk dipaparkan setiap kali butang joystick ditekan. Untuk ini, kami menyediakan gelung if yang menambah pemboleh ubah JoyStickCount dengan setiap penekanan butang (nilai JoyStickIn adalah 1 jika ada penekanan butang). Dalam gelung yang sama, untuk memastikan kami hanya berpusing di antara lima pilihan yang diberikan di atas, kami menambahkan syarat lain yang menetapkan semula nilai pemboleh ubah ke 1. Dengan menggunakan ini, kami memilih nilai mana yang akan dipaparkan pada matriks LED. Kes 1 akan menjadi lalai seperti yang kita tetapkan JoyStickCount bermula pada 1, dan ini bermaksud matriks LED akan memaparkan suhu dalam Celsius. Pemboleh ubah State digunakan oleh blok data Scroll untuk memahami nilai sensor mana yang sedang ditampilkan dan unit apa yang harus dipaparkan. Setelah mengetahui cara memilih sensor yang betul untuk dipaparkan, mari kita lihat bagaimana paparan sebenar berfungsi.

Memaparkan Watak dan Nombor

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

1) semua Nombor (0-9)

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

3) titik perpuluhan

4) abjad dari perkataan baik, buruk dan hodoh.

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

Menatal Teks

Blok data Skrol dalam model kami menatal rentetan yang boleh panjangnya hingga 6 aksara. Nilai 6 dipilih kerana rentetan terpanjang yang akan kami keluarkan dalam projek ini, contohnya 23.8 ° C atau 99.1 ° F. Perhatikan, di sini ° C dianggap satu watak. Idea yang sama dapat diperluas ke tatal tatal dengan panjang lain juga.

Berikut adalah-g.webp

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

Untuk memaparkan rentetan 6 aksara masing-masing pada matriks 8x8, kita memerlukan gambar berukuran 8x48 secara keseluruhan. Untuk memaparkan rentetan yang panjangnya maksimum 4 aksara, kita perlu membuat matriks 8x32. Sekarang mari kita lihat semuanya tidak aktif dengan menekan butang Run. Paparan lalai pada matriks LED adalah nilai suhu dalam ° C. Blok Skop akan menunjukkan Negeri dan nilai dari blok Pemilih. Tekan butang joystick pada Sense HAT dan tahan sebentar untuk mengesahkan bahawa nilainya berubah ke output sensor seterusnya dan ulangi proses ini sehingga mencapai nilai State of 5. Untuk memerhatikan algoritma beralih melalui semua kes pengkategorian kelembapan dalaman, ubah nilai blok Keselesaan Uji kepada nombor apa pun antara 1 hingga 4. Perhatikan bagaimana mengubah nilai blok pada model Simulink dengan serta-merta mengubah cara tingkah laku kod pada perkakasan. Ini boleh berguna dalam situasi di mana seseorang ingin mengubah bagaimana kod tersebut berkelakuan dari lokasi terpencil. Dengan itu kita telah melihat elemen-elemen utama di sebalik aspek visualisasi sistem pemantauan iklim. Pada bahagian seterusnya kita akan belajar bagaimana menyelesaikan sistem pemantauan iklim dalaman kita.

Langkah 4: Reka Algoritma dalam Simulink untuk Memastikan Sama ada Kelembapan Dalaman 'Baik', 'Buruk' atau 'Jelek'

Reka Algoritma dalam Simulink untuk Memutuskan Adakah Kelembapan Dalaman 'Baik', 'Buruk' atau 'Jelek'
Reka Algoritma dalam Simulink untuk Memutuskan Adakah Kelembapan Dalaman 'Baik', 'Buruk' atau 'Jelek'

Untuk mengetahui sama ada bilik anda terlalu lembap / kering atau mengetahui tahap kelembapan dalaman yang dianggap selesa, terdapat beberapa kaedah. Dengan menggunakan artikel ini, kami menetapkan kurva kawasan untuk menghubungkan kelembapan relatif dalaman dan suhu luar seperti yang ditunjukkan di atas.

Sebarang nilai kelembapan relatif di kawasan ini, bermaksud bilik anda berada dalam suasana yang selesa. Sebagai contoh, jika suhu luar adalah -30 ° F maka nilai kelembapan relatif di bawah 15% boleh diterima. Begitu juga, jika suhu luar 60 ° F maka kelembapan relatif di bawah 50% boleh diterima. Untuk mengkategorikan kelembapan dalaman menjadi keselesaan maksimum (baik), keselesaan rata-rata (buruk) atau terlalu lembap / kering (jelek), anda memerlukan suhu luar dan kelembapan relatif. Kami telah melihat bagaimana memasukkan kelembapan relatif ke dalam Raspberry Pi. Oleh itu, mari fokus untuk membawa suhu luar. Taipkan perkara berikut di MATLAB Command Window untuk membuka model:

> rpiOutdoorWeatherData

Blok WeatherData digunakan untuk membawa suhu luaran bandar anda (di K) menggunakan https://openweathermap.org/. Untuk mengkonfigurasi blok ini, anda memerlukan Kunci API dari laman web. Setelah membuat akaun percuma anda di laman web ini, pergi ke halaman akaun anda. Tab kunci API yang ditunjukkan di bawah memberi anda kunci.

Blok WeatherData memerlukan input nama bandar anda dalam format tertentu. Lawati halaman ini dan masukkan nama bandar anda kemudian simbol koma diikuti oleh 2 huruf untuk menunjukkan negara. Contoh - Natick, AS dan Chennai, IN. Sekiranya carian mengembalikan hasil untuk bandar anda, gunakannya di blok WeatherData dalam format tertentu. Sekiranya bandar anda tidak tersedia, gunakan bandar yang berdekatan dengan keadaan cuaca yang lebih dekat dengan bandar anda. Sekarang klik dua kali pada blok WeatherData dan masukkan nama bandar anda dan kunci API anda dari laman web.

Tekan Jalankan pada model Simulink ini untuk memastikan bahawa blok itu dapat membawa suhu bandar anda ke Raspberry Pi. Sekarang mari kita lihat algoritma yang menentukan sama ada kelembapan dalaman baik, buruk atau jelek. Taipkan yang berikut di MATLAB Command Window untuk membuka contoh seterusnya:

> rpisenseHatIHval

Anda mungkin menyedari bahawa blok Test Comfort dari model sebelumnya tidak ada dan blok baru bernama FindRoom Comfort menyediakan blok ihval ke Selector. Klik dua kali pada blok ini untuk membuka dan meneroka.

Kami menggunakan blok WeatherData untuk membawa suhu luar. Subsistem Had Kelembapan mewakili carta Kelembapan Relatif vs Suhu Luar yang kita lihat di atas. Bergantung pada suhu luar, ia akan menghasilkan berapa nilai had kelembapan maksimum. Mari buka blok fungsi DecideIH MATLAB dengan mengklik dua kali padanya.

Sekiranya nilai kelembapan relatif melebihi had kelembapan maksimum, maka tanda akan positif berdasarkan cara kita mengurangkan data, yang menyiratkan ruangan terlalu lembap. Kami mengeluarkan 3 (jelek) untuk senario ini. Sebab di sebalik penggunaan nombor dan bukan rentetan adalah mudah untuk dipaparkan pada grafik dan membuat amaran dari. Klasifikasi selebihnya dalam fungsi MATLAB berdasarkan kriteria sewenang-wenang yang kami buat. Apabila perbezaannya kurang dari 10, ia dikategorikan keselesaan maksimum dan ketika kurang dari 20, rata-rata keselesaan dan di atasnya terlalu kering. Jangan ragu untuk menjalankan model ini dan periksa tahap keselesaan bilik anda.

Langkah 5: Log Data Iklim Dalaman dan Data yang Dikategorikan di Awan

Log Data Iklim Dalaman dan Data yang Dikategorikan di Awan
Log Data Iklim Dalaman dan Data yang Dikategorikan di Awan

Di bahagian seterusnya ini kita akan melihat cara log data di cloud. Untuk membuka contoh ini, ketik berikut di MATLAB Command Window.

> rpiSenseHatLogData

Dalam model ini, bahagian paparan model contoh sebelumnya sengaja dikeluarkan kerana kami tidak memerlukan sistem pemantauan untuk menunjukkan statistik semasa log data dan menghantar makluman. Kami menggunakan ThingSpeak, platform IoT sumber terbuka percuma yang merangkumi analisis MATLAB, untuk aspek log data. Kami memilih ThingSpeak kerana ada cara langsung untuk memprogram Raspberry Pi dan papan perkakasan kos rendah lain untuk menghantar data ke ThingSpeak menggunakan Simulink. Blok Tulis ThingSpeak berasal dari Pakej Sokongan Simulink untuk perpustakaan Perkakasan Raspberry Pi, dan dapat dikonfigurasikan menggunakan Kunci API Tulis dari saluran ThingSpeak anda. Arahan terperinci mengenai cara membuat saluran disediakan di bawah. Untuk terus log masuk data ke awan, anda mahu Pi anda berfungsi bebas dari Simulink. Untuk ini, anda boleh menekan butang "Terapkan ke Perkakasan" dalam model Simulink anda.

Buat Saluran ThingSpeak Anda Sendiri

Mereka yang tidak mempunyai akaun boleh mendaftar di laman web ThingSpeak. Sekiranya anda mempunyai akaun MathWorks, maka secara automatik anda mempunyai akaun ThingSpeak.

  • Setelah log masuk, anda boleh membuat saluran dengan pergi ke Saluran> Saluran Saya dan mengklik Saluran Baru.
  • Yang anda perlukan hanyalah nama untuk saluran dan nama untuk bidang yang akan anda log seperti gambar di bawah.
  • Pilihan Tunjukkan Lokasi Saluran memerlukan garis lintang dan garis bujur kota anda sebagai input dan dapat menunjukkan lokasi di dalam saluran pada peta. (Contoh nilai yang digunakan di sini adalah untuk Natick, MA)
  • Kemudian tekan Simpan Saluran untuk selesai membuat saluran anda.

4a. Makluman jika Data Dikategorikan ‘Jelek’

Untuk melengkapkan sistem pemantauan iklim dalaman kita, kita mesti melihat cara menerima makluman berdasarkan data awan. Ini sangat mustahak kerana, tanpanya anda tidak akan dapat melakukan tindakan yang diperlukan untuk mengubah tahap keselesaan di dalam bilik. Di bahagian ini, kami akan melihat bagaimana menerima pemberitahuan di telefon anda setiap kali data awan menunjukkan bahawa ruangan itu terlalu lembab atau kering. Kami akan mencapainya dengan menggunakan dua perkhidmatan: IFTTT Webhooks dan ThingSpeak TimeControl. IFTTT (singkatan Jika ini, maka itu) adalah perkhidmatan dalam talian yang dapat menangani peristiwa dan mencetuskan tindakan berdasarkan peristiwa tersebut.

Langkah-langkah Menyiapkan WebTook IFTTT

Catatan: Cubalah ini di komputer untuk hasil terbaik.

1) Buat akaun di ifttt.com (jika anda tidak memilikinya) dan buat Applet Baru dari halaman My Applets.

2) Klik butang biru "ini" untuk memilih perkhidmatan pencetus anda.

3) Cari dan pilih Webhook sebagai perkhidmatan.

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

5) Pilih pencetus buat.

6) Pilih "itu" di halaman seterusnya dan cari pemberitahuan.

7) Pilih hantar pemberitahuan dari aplikasi IFTTT.

8) Masukkan nama acara yang anda buat dalam Langkah 2 IFTTT dan pilih buat tindakan.

9) Teruskan sehingga anda mencapai langkah terakhir, tinjau dan tekan selesai.

10) Pergi ke https://ifttt.com/maker_webhooks dan klik butang Tetapan di bahagian atas halaman.

11) Pergi ke URL di bahagian Maklumat Akaun.

12) Masukkan nama acara anda di sini dan klik ‘Test It’.

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

Langkah-langkah untuk Menyiapkan ThingSpeak TimeControl

1) Pilih Aplikasi> Analisis MATLAB

2) Klik Baru di halaman seterusnya dan pilih Trigger Email dari IFTTT dan klik Buat.

Potongan penting di sini dalam kod templat adalah:

ID Saluran - Masukkan saluran ThingSpeak anda yang mempunyai maklumat "kelembapan dalaman".

IFTTTURL - Masukkan URL yang disalin dari bahagian sebelumnya Langkah 13.

readAPIKey - Masukkan kunci ThingSpeak Channel. Bahagian tindakan - yang bertindak pada nilai terakhir. Ubah ke yang berikut untuk mencetuskan amaran.

3) Di laman web ThingSpeak, klik pada Aplikasi> TimeControl.

4) Pilih Berulang dan pilih kekerapan waktu.

5) Klik pada Save TimeControl.

Kini Analisis MATLAB berjalan secara automatik setiap setengah jam dan menghantar pencetus ke perkhidmatan IFTTT Webhooks jika nilainya lebih besar daripada atau sama dengan 3. Kemudian aplikasi telefon IFTTT akan memberi amaran kepada pengguna dengan pemberitahuan seperti yang ditunjukkan pada awal bahagian ini.

Langkah 6: Kesimpulannya

Dengan itu kami telah melihat semua aspek penting bagaimana membina sistem pemantauan iklim anda sendiri. Dalam projek ini, kami melihat bagaimana Simulink dapat digunakan untuk -

  • memprogramkan Raspberry Pi untuk membawa data dari Sense HAT. Sorotan - Visualisasikan data di Simulink kerana kodnya masih berjalan di Raspberry Pi.
  • membina paparan visual sistem pemantauan iklim dalaman. Sorotan - Ubah cara kod anda berkelakuan pada perkakasan dari Simulink.
  • merancang algoritma sistem pemantauan iklim dalaman.
  • log data dari Raspberry Pi ke awan dan buat makluman dari data yang dicatat.

Apa saja perubahan yang akan anda lakukan terhadap sistem pemantauan iklim dalaman ini? Sila kongsi cadangan anda melalui komen.

Disyorkan: