Sistem Pemantauan dan Pengendalian Iklim Dalaman Raspberry Pi: 6 Langkah
Sistem Pemantauan dan Pengendalian Iklim Dalaman Raspberry Pi: 6 Langkah
Anonim
Sistem Pemantauan dan Pengendalian Iklim Dalaman Raspberry Pi
Sistem Pemantauan dan Pengendalian Iklim Dalaman Raspberry Pi
Sistem Pemantauan dan Pengendalian Iklim Dalaman Raspberry Pi
Sistem Pemantauan dan Pengendalian Iklim Dalaman Raspberry Pi

Orang mahu selesa di dalam rumah mereka. Oleh kerana iklim di kawasan kita mungkin tidak sesuai dengan diri kita sendiri, kita menggunakan banyak peralatan untuk menjaga persekitaran dalaman yang sihat: pemanas, penyejuk udara, pelembap, penyahhidratan, pembersih, dan lain-lain. Pada masa ini, adalah biasa untuk menemui beberapa peranti yang dilengkapi mod untuk merasakan persekitaran dan mengawal diri mereka sendiri. Walau bagaimanapun:

  • Sebilangan besar daripadanya terlalu mahal / tidak berbaloi.
  • Litar elektrik mereka lebih mudah patah dan sukar diganti daripada bahagian mekanikal konvensional
  • Peralatan mesti diuruskan oleh aplikasi pengeluar. Biasa mempunyai beberapa peralatan pintar di rumah anda dan masing-masing mempunyai aplikasinya sendiri. Penyelesaian mereka adalah mengintegrasikan aplikasi ke dalam platform seperti Alexa, Google Assistant, dan IFTTT sehingga kita mempunyai pengawal "terpusat"
  • Yang paling penting, pengeluar mempunyai data kami, dan Google / Amazon / IFTTT / dll mempunyai data kami. Kami tidak. Anda mungkin tidak mementingkan privasi, tetapi kadang-kadang kita semua mungkin ingin melihat corak kelembapan bilik tidur anda, misalnya, untuk memutuskan pada masa untuk membuka tingkap.

Dalam tutorial ini, saya membina prototaip Pengawal Iklim Dalaman berasaskan Raspberry Pi yang agak murah. RPi berkomunikasi dengan periferal melalui antara muka SPI / I2C / USB:

  • Sensor atmosfera digunakan untuk mengumpulkan suhu, kelembapan, dan tekanan udara.
  • Sensor Kualiti Udara berketepatan tinggi menyediakan data bahan zarah atmosfera (PM2.5 dan PM10) yang digunakan untuk mengira Indeks Kualiti Udara (AQI)

Pengawal memproses data yang diperoleh dan mencetuskan tindakan peranti dengan menghantar permintaan ke perkhidmatan automasi IFTTT Webhook yang mengawal palam Pintar WiFi yang disokong.

Prototaip dibina sedemikian rupa sehingga seseorang dapat menambahkan sensor, perkakas, dan perkhidmatan automasi lain dengan mudah.

Langkah 1: Perkakasan

Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan

Perkakasan yang disyorkan untuk membina ini:

  1. Raspberry Pi (versi apa pun) dengan WiFi. Saya membina ini menggunakan RPi B +. RPi ZeroW boleh dilakukan dengan baik dan berharga ~ 15 $
  2. Sensor BME280 untuk suhu, kelembapan, tekanan udara ~ 5 $
  3. Modul Sensor Pengesanan Kualiti udara Nova SDS011 Laser Precision Tinggi PM2.5 / PM10 ~ 25 $
  4. Paparan LED / LCD. Saya menggunakan skrin OLED SSD1305 2.23 inci ~ 15 $
  5. Beberapa soket pintar WiFi / ZigBee / Z-Wave. 10-20 $ setiap satu
  6. Pembersih udara, humidifier, dehumidifier, pemanas, penyejuk, dan lain-lain dengan suis mekanikal. Sebagai contoh, saya menggunakan pembersih udara yang murah untuk membuat tutorial ini

Jumlah kos di atas adalah <100 $, jauh lebih rendah daripada, katakanlah, pembersih pintar yang boleh berharga 200 $ dengan mudah.

Langkah 2: Menyusun Pi Raspbery

Menyusun Pi Raspbery
Menyusun Pi Raspbery

Gambarajah litar menunjukkan cara menyambungkan RPi dengan sensor BME280 menggunakan antara muka I2C dan paparan OLED HAT menggunakan antara muka SPI.

Waveshare OLED HAT boleh dipasang di bahagian atas GPIO, tetapi anda memerlukan splitter GPIO untuk membaginya dengan periferal lain. Ia boleh dikonfigurasi untuk menggunakan I2C dengan menyolder perintang di bahagian belakang.

Maklumat lebih lanjut mengenai SSD1305 OLED HAT boleh didapati di sini.

Kedua-dua antara muka I2C dan SPI perlu diaktifkan dalam RPi dengan:

sudo raspi-config

Sensor Debu Nova SDS011 disambungkan ke RPi melalui port USB (dengan penyesuai Serial-USB).

Langkah 3: Mengumpulkan Data Dari Sensor

Data atmosfera, yang kelihatan cukup mudah, dikumpulkan dari sensor BME280 dari skrip python.

21-Nov-20 19:19:25 - INFO - compensated_reading (id = 6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, cap waktu = 2020-11-21 19: 19: 25.604317, suhu = 20.956 ° C, tekanan = 1019.08 hPa, kelembapan = 49.23% rH)

Data sensor Dust memerlukan sedikit pemprosesan. Modul sensor menghisap beberapa sampel udara untuk mengesan bahan partikulat, jadi ia harus berjalan sebentar (30-an) untuk mendapatkan hasil yang dapat dipercayai. Dari pemerhatian saya, saya hanya mempertimbangkan purata 3 sampel terakhir. Prosesnya terdapat dalam skrip ini.

21-Nov-20 19:21:07 - DEBUG - 0 PM2,5: 2,8, PM10: 5,9

21-Nov-20 19:21:09 - DEBUG - 1. PM2.5: 2.9, PM10: 6.0 21-Nov-20 19:21:11 - DEBUG - 2. PM2.5: 2.9, PM10: 6.0 21- 20 Nov 19:21:13 - DEBUG - 3. PM2.5: 2.9, PM10: 6.3 21-Nov-20 19:21:15 - DEBUG - 4. PM2.5: 3.0, PM10: 6.2 21-Nov- 20 19:21:17 - DEBUG - 5. PM2.5: 2.9, PM10: 6.4 21-Nov-20 19:21:19 - DEBUG - 6. PM2.5: 3.0, PM10: 6.6 21-Nov-20 19: 21: 21 - DEBUG - 7. PM2.5: 3.0, PM10: 6.8 21-Nov-20 19:21:23 - DEBUG - 8. PM2.5: 3.1, PM10: 7.0 21-Nov-20 19:21: 25 - DEBUG - 9. PM2.5: 3.2, PM10: 7.0 21-Nov-20 19:21:28 - DEBUG - 10. PM2.5: 3.2, PM10: 7.1 21-Nov-20 19:21:30 - DEBUG - 11. PM2.5: 3.2, PM10: 6.9 21-Nov-20 19:21:32 - DEBUG - 12. PM2.5: 3.3, PM10: 7.0 21-Nov-20 19:21:34 - DEBUG - 13. PM2.5: 3.3, PM10: 7.1 21-Nov-20 19:21:36 - DEBUG - 14. PM2.5: 3.3, PM10: 7.1

Sensor habuk hanya menyediakan indeks PM2.5 dan PM10. Untuk mengira AQI, kami memerlukan modul python-aqi:

aqi_index = aqi.to_aqi ([(aqi. POLLUTANT_PM25, dust_data [0]), (aqi. POLLUTANT_PM10, dust_data [1])])

Pengumpulan data, paparan, dan pengendalian alat dilaksanakan secara serentak dan tidak segerak. Data disimpan dalam pangkalan data tempatan. Kami tidak perlu menjalankannya dengan kerap jika persekitaran tidak berubah terlalu cepat. Bagi saya, masa selang 15 min sudah cukup. Selanjutnya, modul sensor debu mengumpulkan habuk di dalam, jadi kita tidak boleh menggunakannya terlalu banyak untuk mengelakkan tugas pembersihan.

Langkah 4: Menyiapkan Perkhidmatan Automasi Rumah

Menetapkan Perkhidmatan Automasi Rumah
Menetapkan Perkhidmatan Automasi Rumah
Menetapkan Perkhidmatan Automasi Rumah
Menetapkan Perkhidmatan Automasi Rumah

Terdapat banyak platform automasi Rumah di luar sana dan harus memasang platform yang disokong oleh soket pintar yang anda miliki. Sekiranya anda mementingkan privasi, anda harus menyediakan sistem anda sendiri. Jika tidak, anda boleh menggunakan platform popular yang disokong oleh kebanyakan soket pintar WiFi: Pembantu Google, Alexa, atau IFTTT. Cuba pilih platform soket dengan API untuk berinteraksi (Webhook sangat sesuai untuk tujuan ini)

Saya menggunakan IFTTT dalam tutorial ini kerana sangat mudah digunakan walaupun untuk pemula. Tetapi ketahuilah bahawa: 1. ada banyak soket pintar yang tidak menyokong IFTTT, dan 2. Pada masa saya menulis ini, IFTTT hanya membolehkan anda membuat 3 applet (tugas automasi) secara percuma, yang hanya cukup untuk 1 perkakas.

Ini adalah langkah-langkahnya:

1. Buat dua applet dalam IFTTT, untuk menghidupkan dan mematikan perkakas, menggunakan perkhidmatan Webhook. Maklumatnya boleh didapati di sini.

2. Salin kunci API dan salin ke skrip python. Saya cadangkan menyimpannya dalam fail yang berasingan untuk keselamatan.

3. Tentukan logik / parameter kawalan dalam skrip utama.

Langkah 5: Hasil

Keputusan
Keputusan
Keputusan
Keputusan
Keputusan
Keputusan
Keputusan
Keputusan

OK, sekarang kita menguji sistem.

Paparan OLED menunjukkan Temp, Kelembapan, dan Indeks Kualiti Udara (AQI) yang dikira. Ia juga memaparkan nilai minimum dan maksimum dalam 12 jam terakhir.

Data siri masa AQI dalam beberapa hari menunjukkan sesuatu yang menarik. Perhatikan lonjakan corak AQI? Ia berlaku dua kali sehari, puncak kecil sekitar pukul 12:00 dan puncak tinggi sekitar jam 19:00. Nah, anda dapat menebaknya, ketika kita memasak, menyebarkan banyak zarah. Sangat menarik untuk melihat bagaimana aktiviti harian kita mempengaruhi persekitaran dalaman.

Juga, lonjakan terakhir dalam angka berlangsung lebih pendek daripada yang sebelumnya. ketika itulah kita menambah pembersih udara dalam sistem. Pengawal iklim RPi menghantar permintaan PURIFIER_ON ketika AQI> 50 dan PURIFIER_OFF ketika AQI <20. Anda dapat melihat pencetus IFTTT Webhook pada masa itu.

Langkah 6: Kesimpulannya

Itu sahaja!

Data yang dikumpulkan juga dapat digunakan untuk mengawal pemanas udara, pendingin, (de) pelembap, dan lain-lain. Anda hanya perlu membeli lebih banyak soket pintar dan setiap alat lama akan menjadi "pintar".

Sekiranya anda ingin mengawal banyak peralatan, anda mungkin perlu mempertimbangkan dengan teliti perkhidmatan automasi rumah yang ingin anda gunakan. Saya sangat menyarankan untuk menyediakan platform automasi rumah sumber terbuka, tetapi jika terlalu rumit, ada penyelesaian yang lebih mudah seperti Pembantu Google dan IFTTT Webhook, atau menggunakan soket pintar Zigbee.

Pelaksanaan penuh prototaip ini boleh didapati di repositori Github:

github.com/vuva/IndoorClimateControl

Berseronok !!!

Disyorkan: