Sistem ventilasi kamar berdasarkan "raspberry" dan "detektor CO2"

Mode untuk rumah pintar telah menyapu seluruh Internet, semua orang sekarang ingin membuat bola lampu yang dapat dimatikan melalui Internet atau melempar kipas angin di toilet. Pengalaman saya cukup sederhana: Saya ingin membuat sistem yang dapat secara otomatis membuat ventilasi ruangan, tidak lebih, tidak kurang.

Setelah mempertimbangkan prinsip sistem, saya sampai pada beberapa kesimpulan, yang saya putuskan untuk diimplementasikan. Seperti yang direncanakan, seluruh fungsionalitas sistem dibagi menjadi tiga komponen: "otak" yang mengendalikan segalanya, sistem ventilasi untuk membuka jendela / atau menyalakan kipas, dan sensor itu sendiri, yang memantau kualitas udara di dalam ruangan. Selanjutnya, saya akan berbicara tentang sensor kualitas udara, ditambah sedikit sentuhan pada topik mengintegrasikannya dengan "otak" rumah pintar.

Ikhtisar Perangkat


Saya memutuskan untuk mengontrol kualitas "kesegaran" udara dengan konsentrasi karbon dioksida. Rencana ke depan termasuk meluncurkan sensor untuk amonia, propana / butana (kebocoran gas), konsentrasi debu di udara, dll.

Diputuskan untuk menempatkan sistem ventilasi di ruang tamu di mana seseorang menghabiskan waktu sebanyak mungkin. Mungkin, ruangan seperti itu adalah kamar tidur, dan di situlah sistem ventilasi otomatis akan sangat berguna selama tidur malam.



Bukan rahasia lagi bahwa konsentrasi karbon dioksida di udara sangat memengaruhi tidak hanya produktivitas otak manusia, kinerja manusia, tetapi juga kemampuan untuk beristirahat dengan baik. Semakin tinggi konsentrasi CO2, semakin buruk.



Detektor karbon dioksida dari perusahaan Dadget digunakan sebagai alat untuk mengukur konsentrasi karbon dioksida.

Perangkat ini dapat menerima daya dari port USB komputer atau laptop. Di panel depan - Indikator LCD, yang menampilkan informasi tentang konsentrasi karbon dioksida dan suhu sekitar. Ada juga 3 LED yang memberi pengguna representasi visual dari konten. Semuanya cukup sederhana - nyalakan perangkat. Dan semuanya bekerja.

Saya tertarik pada kenyataan bahwa ada perangkat lunak yang berfungsi dengan perangkat ini. Ada perangkat lunak untuk Windows dan Linux. Kode sumber program untuk Linux ada di github dan sepertinya ditulis oleh rekan kami. Dan jika Anda memiliki kode sumber, Anda dapat memikirkan sesuatu, memodifikasinya, "mempertajam" program untuk Anda sendiri.

Ikhtisar Alur Kerja


Seperti yang ditunjukkan oleh praktik dan google, perangkat dilihat oleh komputer sebagai perangkat HID. Oleh karena itu, dalam program untuk Windows ada dll yang disebut HIDApi. Untuk bekerja dengan Linux, Anda memerlukan pustaka HIDApi dengan nama yang sama. Saya menyelesaikan kode sumber untuk perangkat lunak linux dan menulis mencicit sederhana.

Jelas bahwa menggunakan komputer Linux untuk membaca data dari sensor dan mentransfernya ke pengontrol rumah pintar di suatu tempat adalah penghujatan. Oleh karena itu, diputuskan untuk menggunakan Raspbery pi dengan Debian murni yang diinstal. Di masa depan, direncanakan untuk melakukan segalanya pada Arduino dan mengirimkan melalui saluran nirkabel.

Skema kompleks perangkat keras-perangkat lunak saya adalah sebagai berikut:



Pembaca yang berpengetahuan dan geek yang rajin mungkin berpikir bahwa tidak terlalu sporty untuk menggunakan HUB dalam skema ini. Itu benar, Anda dapat langsung menghubungkan monitor CO2 dan menikmati hidup. Dengan menggunakan skema seperti itu, saya memecahkan beberapa masalah sekaligus:
● paling sering otak rumah pintar tidak berada di tempat sensor;
● menggunakan raspberry pi memungkinkan untuk menghubungkan sensor tambahan;
● menempatkan sensor secara terpisah, kami mendapatkan dua metode indikasi, yang pertama di layar sensor, yang kedua di telepon atau melalui halaman web, karena data ditransmisikan ke controller.

Perangkat MicasaVerde digunakan sebagai pengontrol rumah pintar, perangkat dapat mengumpulkan data dari sensor dan membuat keputusan sesuai dengan program yang diberikan, yang disebut "adegan" dalam terminologinya.



Di perangkat, Anda dapat membuat sensor virtual dan memperbarui informasinya menggunakan permintaan http, yang saya lakukan dengan raspberry pi.
Contoh permintaan:
ip_address : 3480 / data_request? Id = variableet & DeviceNum = 6 & serviceId = urn: micasaverde-com: serviceId: DoorLock1 & Variable = Status & Nilai = 1
Artinya, Malinka membaca data dari detektor karbon dioksida, dan kemudian mengirimkan permintaan data http ke Vera. Skema ini sederhana tetapi berfungsi.

Revisi perangkat lunak



Jadi ada "raspberry", tidak peduli versi apa, yang utama adalah bahwa ia memiliki antarmuka jaringan.

Selanjutnya, Anda perlu menginstal dukungan untuk perangkat hid. Perpustakaan ini diambil dari git, jadi git harus diinstal pada "malink":

apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

Selanjutnya, unduh dan

instal perpustakaan mkdir hidapi
cd hidapi /
git init
git clit
itu sendiri github.com/signal11/hidapi.git

perpustakaan tambahan
sudo apt-get install libudev-dev libusb-1,0-0-dev autotools-dev libfox-1.6-dev autoconf automake libtool

Set
cd hidapi /
./bootstrap
./configure
make
sudo make instal


Setelah itu, unduh kode sumber program monitor CO2
mkdir co2monitor
cd co2monitor
git init
git klon github.com/dmage/co2mon.git


Selanjutnya, saya sedikit mengubah kode program, pada versi awal membaca dua parameter (suhu dan co2) dan mengirimkannya ke konsol dalam loop tanpa akhir. . Opsi ini tidak cocok untuk saya, tujuannya adalah menjalankannya sekali dan mendapatkan nilainya sekali, jadi saya mengubah dua baris di main.c.

Kami mencari baris

printf ("CntR \ t% s \ n", buf);
fflush (stdout);


Dan ubah ke

printf ("% s \ n", buf);
fflush (stdout);
keluar (1);


Baris pertama bertanggung jawab untuk menampilkan nilai, setelah perubahan hanya digit yang akan ditampilkan, dan setelah output, program akan ditutup, jalur keluar (1) akan merespons.

Kompilasi
cmake ...
make


Next, kami menulis sebuah skrip sederhana yang memulai program, memberikan nilai output dari program yang dikompilasi di atas ke sebuah variabel, dan kemudian meneruskan nilai ini menggunakan curl ke MicasaVerde. Setelah itu, tambahkan aturan udev sehingga sistem memiliki akses ke sensor tanpa root.

SUBSYSTEM == "usb", ATTR {idVendor} == "04d9", ATTR {idProduct} == "a052", MODE = "0666"

Dan tambahkan skrip polling dan transmisi ke cron, setiap menit.

crontab -e
Dan tambahkan baris
* * * * * /home/pi/co2sender.sh


Hasil dari skrip

Tentu saja Anda masih harus mengkonfigurasi file MicasaVerde sehingga ada catatan yang memadai di mana-mana. Tapi itu berhasil, cepat dan mudah.

Kesimpulan



Akibatnya, kami memiliki sistem berbasis pada Detektor CO2 , yang beroperasi seperti biasa, menganalisis dan melaporkan perubahan konsentrasi karbon dioksida. Pada saat yang sama, Malinka membaca data dari sensor satu menit sekali dan mentransfernya ke pengontrol rumah pintar, yang dapat menghidupkan sistem ventilasi jika perlu.

Source: https://habr.com/ru/post/id390859/


All Articles