Omah Smart Cloud. Part 1: Controller lan sensor

Omah Smart Cloud. Part 1: Controller lan sensor

Dina iki, amarga pangembangan mikroelektronik, saluran komunikasi, teknologi Internet lan Kecerdasan Buatan kanthi cepet, topik omah cerdas dadi luwih relevan. Omah manungsa wis ngalami owah-owahan sing signifikan wiwit Zaman Batu lan ing jaman Revolusi Industri 4.0 lan Internet of Things, dadi nyaman, fungsional lan aman. Solusi teka ing pasar sing ngowahi apartemen utawa omah negara dadi sistem informasi kompleks sing dikontrol saka ngendi wae ing donya nggunakake smartphone. Kajaba iku, interaksi manungsa-mesin ora mbutuhake kawruh babagan basa pemrograman - amarga pangenalan wicara lan algoritma sintesis, wong bisa ngomong karo omah sing pinter ing basa asline.

Sawetara sistem omah cerdas sing saiki ana ing pasar minangka pangembangan logis sistem pengawasan video maya, pangembang sing nyadari kebutuhan kanggo solusi lengkap ora mung kanggo ngawasi, nanging uga kanggo ngatur obyek sing adoh.

Kita menehi perhatian marang seri telung artikel, sing bakal ngandhani kabeh komponen utama sistem omah cerdas awan, sing dikembangake dening penulis lan dioperasikake. Artikel pisanan dikhususake kanggo peralatan klien terminal sing dipasang ing omah sing cerdas, sing nomer loro kanggo arsitektur panyimpenan maya lan sistem pangolahan data, lan pungkasane, sing katelu kanggo aplikasi klien kanggo ngatur sistem ing piranti seluler lan stasioner.

Peralatan omah sing cerdas

Pisanan, ayo ngomong babagan carane nggawe omah sing cerdas saka apartemen biasa, dacha utawa pondhok. Kanggo nindakake iki, minangka aturan, perlu kanggo nyelehake peralatan ing ngisor iki ing omah:

  1. sensor sing ngukur macem-macem parameter lingkungan;
  2. aktuator tumindak ing obyek njaba;
  3. controller sing performs petungan ing sesuai karo pangukuran sensor lan logika ditempelake, lan ngetokake printah kanggo aktuator.

Gambar ing ngisor iki nuduhake diagram omah sing cerdas, sing ana sensor bocor banyu (1) ing jedhing, suhu (2) lan cahya (3) ing kamar turu, soket cerdas (4) ing pawon lan a kamera ndjogo video (5) ing lorong.

Omah Smart Cloud. Part 1: Controller lan sensor

Saiki, sensor nirkabel sing digunakake kanthi nggunakake protokol RF433, Z-Wave, ZigBee, Bluetooth lan WiFi. Kauntungan utama yaiku gampang instalasi lan panggunaan, uga biaya sing murah lan linuwih, amarga Produsen ngupayakake nggawa piranti menyang pasar massal lan supaya bisa diakses pangguna rata-rata.

Sensor lan aktuator, minangka aturan, disambungake liwat antarmuka nirkabel menyang pengontrol omah sing cerdas (6) - mikrokomputer khusus sing nggabungake kabeh piranti kasebut dadi jaringan siji lan ngontrol.

Nanging, sawetara solusi bisa nggabungake sensor, aktuator lan pengontrol ing wektu sing padha. Contone, plug pinter bisa diprogram kanggo nguripake utawa mateni miturut jadwal, lan kamera ndjogo video maya bisa ngrekam video adhedhasar sinyal detektor gerakan. Ing kasus sing paling gampang, sampeyan bisa nindakake tanpa pengontrol sing kapisah, nanging kanggo nggawe sistem fleksibel kanthi akeh skenario, perlu.

Kanggo nyambungake pengontrol omah sing cerdas menyang jaringan global, router Internet biasa (7) bisa digunakake, sing wis suwe dadi piranti rumah tangga umum ing omah apa wae. Kene ana bantahan liyane ing sih saka controller ngarep pinter - yen sambungan menyang Internet ilang, ngarep pinter bakal terus kanggo operate normal thanks kanggo pemblokiran logika disimpen nang controller, lan ora ing layanan maya.

Kontrol omah sing cerdas

Kontroler kanggo sistem omah cerdas awan sing dibahas ing artikel iki dikembangake adhedhasar mikrokomputer papan siji Raspberry Pi 3 model B+, sing dirilis ing Maret 2018 lan nduweni sumber daya lan kinerja sing cukup kanggo tugas omah sing cerdas. Iki kalebu prosesor quad-core Cortex-A53 adhedhasar arsitektur ARMv64-A 8-bit, jam ing 1.4 GHz, uga 1 GB RAM, Wi-Fi 802.11ac, Bluetooth 4.2 lan adaptor Ethernet gigabit sing beroperasi liwat USB 2.0. .

Omah Smart Cloud. Part 1: Controller lan sensor

Nglumpukake pengontrol gampang banget - mikrokomputer (1) dipasang ing kasus plastik (2), banjur kertu memori 8 GB ing format microSD kanthi piranti lunak (3) lan pengontrol jaringan USB Z-Wave (4) dipasang ing slot cocog. Kontroler omah sing cerdas disambungake menyang sumber daya liwat adaptor daya 5V, 2.1A (5) lan kabel USB - micro-USB (6). Saben pengontrol duwe nomer identifikasi unik, sing ditulis ing file konfigurasi nalika pisanan diluncurake lan kudu sesambungan karo layanan omah cerdas awan.

Piranti lunak pengontrol omah sing cerdas dikembangake dening penulis artikel iki adhedhasar sistem operasi Linux Raspbian Stretch. Iku kasusun saka subsistem utama ing ngisor iki:

  • proses server kanggo interaksi karo peralatan ngarep pinter lan maya;
  • antarmuka panganggo grafis kanggo nyetel paramèter konfigurasi lan operasi controller;
  • database kanggo nyimpen konfigurasi controller.

Omah Smart Cloud. Part 1: Controller lan sensor

Database controller ngarep pinter dipun ginakaken adhedhasar DBMS ditempelake SQLite lan file ing kertu SD karo piranti lunak sistem. Iki minangka panyimpenan kanggo konfigurasi controller - informasi babagan peralatan sing disambungake lan negara saiki, blok aturan produksi logis, uga informasi sing mbutuhake indeksasi (contone, jeneng file arsip video lokal). Nalika controller rebooted, informasi iki disimpen, nggawe iku bisa kanggo mulihake controller ing acara saka Gagal daya.

GUI controller ngarep pinter dikembangaké ing PHP 7 nggunakake microframework a Slim. Server web tanggung jawab kanggo mbukak aplikasi kasebut. lighttpd, asring digunakake ing piranti sing dipasang amarga kinerja sing apik lan syarat sumber daya sing sithik.

Omah Smart Cloud. Part 1: Controller lan sensor
(klik ing gambar kanggo mbukak ing resolusi luwih gedhe)

Fungsi utama antarmuka grafis yaiku nyambungake peralatan omah sing cerdas (kamera lan sensor pengawasan IP) menyang pengontrol. Aplikasi web maca konfigurasi lan kahanan saiki pengontrol lan piranti sing disambungake saka database SQLite. Kanggo ngganti konfigurasi controller, ngirim printah kontrol ing format JSON liwat antarmuka RESTful API saka proses server.

Proses server

Proses server - komponen kunci sing nindakake kabeh karya utama kanggo ngotomatisasi proses informasi sing dadi basis saka omah sing cerdas: nampa lan ngolah data sensori, nerbitake tumindak kontrol gumantung saka logika sing dipasang. Tujuan saka proses server yaiku kanggo sesambungan karo peralatan omah sing cerdas, nglakokake aturan logis produksi, nampa lan ngolah perintah saka antarmuka grafis lan awan. Proses server ing pengontrol omah cerdas sing dianggep ditindakake minangka aplikasi multi-thread sing dikembangake ing C ++ lan diluncurake minangka layanan sing kapisah sistem sistem operasi Linux Raspbian.

Blok utama proses server yaiku:

  1. Manajer Pesen;
  2. server IP kamera;
  3. Server piranti Z-Wave;
  4. Server aturan logis produksi;
  5. Database konfigurasi controller lan blok aturan logis;
  6. Server API RESTful kanggo interaksi karo antarmuka grafis;
  7. Klien MQTT kanggo sesambungan karo awan.

Blok proses server dileksanakake minangka utas sing kapisah, informasi ing antarane sing ditransfer ing wangun pesen ing format JSON (utawa struktur data sing makili format iki ing memori proses).

Omah Smart Cloud. Part 1: Controller lan sensor

Komponen utama proses server yaiku manajer pesen, sing nuntun pesen JSON menyang kabeh blok proses server. Jinis kolom informasi pesen JSON lan nilai sing bisa ditampa kadhaptar ing tabel:

jinis piranti
protokol
jinis pesen
negara piranti
printah

kamera
onvif
sensorData
on
streaming (Aktif/Mati)

sensor
zwave
printah
mati
ngrekam (Aktif/Mati)

effector
mqtt
businessLogicRule
streaming (Aktif/Mati)
evice (Tambah / Copot)

bisnisLogika
konfigurasiData
ngrekam (Aktif/Mati)

bluetooth
negara piranti
kesalahan

wifi

rf

Contone, pesen saka detektor gerakan kamera katon kaya iki:

{
	"vendor": "*****",
	"version": "3.0.0",
	"timestampMs": "1566293475475",
	"clientType": "gateway",
	"deviceId": "1616453d-30cd-44b7-9bf0-************",
	"deviceType": "camera",
	"protocol": "onvif",
	"messageType": "sensorData",
	"sensorType": "camera",
	"label": "motionDetector",
	"sensorData": "on"
}

Logika produksi

Kanggo nampa utawa ngirim pesen saka dispatcher, blok proses server langganan pesen saka jinis tartamtu. Langganan minangka aturan logis produksi saka jinis kasebut “Yen... banjur...”, ditampilake ing format JSON, lan link menyang pawang pesen ing blok proses server. Contone, kanggo ngidini server kamera IP nampa prentah saka GUI lan awan, sampeyan kudu nambah aturan ing ngisor iki:

{
	"if": {
	    "and": [{
		"equal": {
		    "deviceId": "1616453d-30cd-44b7-9bf0-************"
		}
	    },
	    {
		"equal": {
		    "messageType": "command"
		}
	    }
	    ]
	},
	"then": {
	    "result": "true"
	}
}

Yen kondisi kasebut ing antesedent (sisih kiwa) aturane bener, banjur marem akibate (sisih tengen) aturan, lan pawang entuk akses menyang awak pesen JSON. Anteseden ndhukung operator logis sing mbandhingake pasangan nilai kunci JSON:

  1. padha "padha";
  2. ora padha karo "ora_padha";
  3. kurang "kurang";
  4. luwih "luwih gedhe";
  5. kurang saka utawa padha karo "kurang_utawa_padha";
  6. luwih gedhe tinimbang utawa padha karo "greater_or_equal".

Asil perbandingan bisa digandhengake karo siji liyane nggunakake operator aljabar Boolean:

  1. Lan "lan"
  2. UTAWA "utawa";
  3. dudu "ora".

Mangkono, kanthi nulis operator lan operan ing notasi Polandia, sampeyan bisa nggawe kahanan sing cukup rumit kanthi paramèter sing akeh.

Mekanisme sing padha, adhedhasar pesen JSON lan aturan produksi ing format JSON, digunakake ing blok server logika produksi kanggo makili kawruh lan nindakake inferensi logis nggunakake data sensori saka sensor omah cerdas.

Nggunakake aplikasi seluler, pangguna nggawe skenario miturut omah sing pinter kudu dienggo. Tuladhane: "Yen sensor kanggo mbukak lawang ngarep dipicu, banjur nguripake lampu ing lorong". Aplikasi kasebut maca pengenal sensor (sensor pambuka) lan aktuator (soket cerdas utawa lampu cerdas) saka database lan ngasilake aturan logis ing format JSON, sing dikirim menyang pengontrol omah sing cerdas. Mekanisme iki bakal dibahas kanthi luwih rinci ing artikel katelu saka seri kita, ing ngendi kita bakal ngomong babagan aplikasi klien kanggo ngatur omah sing cerdas.

Mekanisme logika produksi sing dibahas ing ndhuwur ditindakake nggunakake perpustakaan RapidJSON - parser SAX kanggo format JSON ing C++. Maca lan parsing urutan aturan produksi ngidini sampeyan kanthi gampang ngetrapake fungsi perbandingan data ing antecedents:

void CRuleEngine::Process(PProperties pFact)
{
    m_pActions->clear();

    rapidjson::Reader   reader;
    for(TStringMap::value_type& rRule : m_Rules)
    {
        std::string sRuleId   = rRule.first;
        std::string sRuleBody = rRule.second;

        CRuleHandler            ruleHandler(pFact);
        rapidjson::StringStream ruleStream(sRuleBody.c_str());
        rapidjson::ParseResult  parseResult = reader.Parse(ruleStream, ruleHandler);
        if(!parseResult)
        {
            m_Logger.LogMessage(
                        NLogger2::ePriorityLevelError,
                        std::string("JSON parse error"),
                        "CRuleEngine::Process()",
                        std::string("RuleId: ") + sRuleId);
        }

        PProperties pAction = ruleHandler.GetAction();
        if(pAction)
        {
            pAction->Set("ruleId", sRuleId);
            m_pActions->push_back(pAction);
        }
    }
}

iku pFakta - struktur sing ngemot pasangan kunci-nilai saka pesen JSON, m_Aturan - string array aturan produksi. Perbandingan pesen sing mlebu lan aturan produksi ditindakake ing fungsi kasebut reader.Parse(ruleStream, ruleHandler)ngendi ruleHandler minangka obyek sing ngemot logika Boolean lan operator perbandingan. sRuleId - pengenal aturan unik, thanks kanggo bisa nyimpen lan ngowahi aturan nang database controller ngarep pinter. m_pActions - larik kanthi asil inferensi logis: pesen JSON sing ngemot akibat saka basis aturan lan dikirim menyang manajer pesen supaya benang pelanggan bisa ngolah.

Kinerja RapidJSON sebanding karo fungsi kasebut strlen(), lan syarat sumber daya sistem minimal ngidini panggunaan perpustakaan iki ing piranti sing dipasang. Panggunaan pesen lan aturan logis ing format JSON ngidini sampeyan ngetrapake sistem ijol-ijolan informasi sing fleksibel ing antarane kabeh komponen pengontrol omah sing cerdas.

Sensor lan Aktuator Gelombang Z

Kauntungan utama saka omah sing cerdas yaiku bisa ngukur macem-macem parameter lingkungan njaba lan nindakake fungsi sing migunani gumantung saka kahanan kasebut. Kanggo nindakake iki, sensor lan aktuator disambungake menyang pengontrol omah sing cerdas. Ing versi saiki, iki minangka piranti nirkabel sing nggunakake protokol kasebut Gelombang Z ing frekuensi khusus diparengake 869 MHz Kanggo Rusia. Kanggo operate, digabungake menyang jaringan bolong, sing ngemot pengulangan sinyal kanggo nambah area jangkoan. Piranti kasebut uga duwe mode hemat energi khusus - akeh wektu ing mode turu lan ngirim informasi mung nalika owah-owahan negara, sing bisa nambah umur baterei sing dibangun.

Omah Smart Cloud. Part 1: Controller lan sensor

Sampeyan saiki bisa nemokake sawetara piranti Z-Wave sing cukup akeh ing pasar. Ayo deleng sawetara conto:

  1. Soket cerdas Zipato PAN16 bisa ngukur paramèter ing ngisor iki: konsumsi listrik (kWh), daya (W), voltase (V) lan arus (A) ing jaringan listrik. Uga nduweni saklar sing dibangun ing ngendi sampeyan bisa ngontrol piranti listrik sing disambungake;
  2. Sensor bocor Neo Coolcam ndeteksi anané cairan tumpah kanthi nutup kontak probe remot;
  3. Sensor kumelun Zipato PH-PSG01 dipicu nalika partikel kumelun mlebu kamar analisa gas;
  4. Sensor gerak Neo Coolcam nganalisa radiasi infra merah ing awak manungsa. Kajaba iku, ana sensor cahya (Lx);
  5. Multisensor Philio PST02-A ngukur suhu (°C), cahya (%), mbukak lawang, anané wong ing kamar;
  6. Z-Wave USB Stick ZME E UZB1 pengontrol jaringan, sing sensor disambungake.

Penting banget yen piranti lan pengontrol beroperasi kanthi frekuensi sing padha, yen ora, mung ora bakal bisa ndeleng nalika nyambungake. Nganti 232 piranti bisa disambungake menyang siji pengontrol jaringan Z-Wave, sing cukup kanggo apartemen utawa omah negara. Kanggo nggedhekake area jangkoan jaringan ing jero ruangan, soket cerdas bisa digunakake minangka repeater sinyal.

Omah Smart Cloud. Part 1: Controller lan sensor

Ing proses server pengontrol omah cerdas sing dibahas ing paragraf sadurunge, server Z-Wave tanggung jawab kanggo sesambungan karo piranti Z-Wave. Iku nggunakake perpustakaan kanggo nampa informasi saka sensor OpenZWave ing C ++, kang menehi antarmuka kanggo sesambungan karo Z-Wave jaringan USB controller lan dianggo karo macem-macem sensor lan aktuator. Nilai parameter lingkungan sing diukur dening sensor direkam dening server Z-Wave ing wangun pesen JSON:

{
	"vendor": "*****",
	"version": "3.0.0",
	"timestampMs": "1566479791290",
	"clientType": "gateway",
	"deviceId": "20873eb0-dd5e-4213-a175-************",
	"deviceType": "sensor",
	"protocol": "zwave",
	"messageType": "sensorData",
	"homeId": "0xefa0cfa7",
	"nodeId": "20",
	"sensorType": "METER",
	"label": "Voltage",
	"sensorData": "229.3",
	"units": "V"
}

Banjur diterusake menyang manajer pesen proses server supaya benang pelanggan bisa nampa. Pelanggan utama yaiku server logika produksi, sing cocog karo nilai kolom pesen ing anteseden aturan logika. Asil inferensi sing ngemot perintah kontrol dikirim maneh menyang manajer pesen lan saka ing kono pindhah menyang server Z-Wave, sing decode lan dikirim menyang pengontrol USB jaringan Z-Wave. Banjur dheweke mlebu aktuator, sing ngganti kahanan obyek lingkungan, lan omah sing cerdas nindakake pakaryan sing migunani.

Omah Smart Cloud. Part 1: Controller lan sensor
(klik ing gambar kanggo mbukak ing resolusi luwih gedhe)

Nyambungake piranti Z-Wave rampung ing antarmuka grafis saka controller ngarep pinter. Kanggo nindakake iki, pindhah menyang kaca kanthi dhaptar piranti lan klik tombol "Tambah". Printah nambah liwat antarmuka API RESTful lumebu ing proses server lan banjur dikirim dening manager pesen menyang server Z-Wave, kang nempatno Z-Wave jaringan USB controller menyang mode khusus kanggo nambah piranti. Sabanjure, ing piranti Z-Wave sampeyan kudu nggawe seri penet cepet (3 pencet ing 1,5 detik) saka tombol layanan. Pengontrol USB nyambungake piranti menyang jaringan lan ngirim informasi babagan menyang server Z-Wave. Sing, ing siji, nggawe entri anyar ing database SQLite karo paramèter saka piranti anyar. Sawise interval wektu sing ditemtokake, antarmuka grafis bali menyang kaca dhaptar piranti Z-Wave, maca informasi saka database lan nampilake piranti anyar ing dhaptar. Saben piranti nampa pengenal unik dhewe, sing digunakake ing aturan inferensi produksi lan nalika digunakake ing méga. Operasi algoritma iki ditampilake ing diagram UML:

Omah Smart Cloud. Part 1: Controller lan sensor
(klik ing gambar kanggo mbukak ing resolusi luwih gedhe)

Nyambungake kamera IP

Sistem omah cerdas awan sing dibahas ing artikel iki minangka upgrade saka sistem pengawasan video awan, uga dikembangake dening penulis, sing wis ana ing pasar pirang-pirang taun lan duwe akeh instalasi ing Rusia.

Kanggo sistem ndjogo video awan, salah sawijining masalah akut yaiku pilihan peralatan sing winates sing bisa integrasi. Piranti lunak sing tanggung jawab kanggo nyambungake menyang awan dipasang ing kamera video, sing langsung nggawe panjaluk serius ing hardware - prosesor lan jumlah memori gratis. Iki utamane nerangake rega kamera CCTV awan sing luwih dhuwur tinimbang kamera IP biasa. Kajaba iku, tahap rembugan sing dawa karo perusahaan manufaktur kamera CCTV dibutuhake kanggo entuk akses menyang sistem file kamera lan kabeh alat pangembangan sing dibutuhake.

Omah Smart Cloud. Part 1: Controller lan sensor

Ing sisih liya, kabeh kamera IP modern duwe protokol standar kanggo interaksi karo peralatan liyane (utamane, perekam video). Mangkono, panggunaan pengontrol sing kapisah sing nyambung liwat protokol standar lan nyebarake aliran video saka kamera IP menyang awan menehi kaluwihan kompetitif sing signifikan kanggo sistem pengawasan video awan. Kajaba iku, yen klien wis nginstal sistem pengawasan video adhedhasar kamera IP sing prasaja, mula bisa digedhekake lan diowahi dadi omah cerdas awan sing lengkap.

Protokol paling populer kanggo sistem pengawasan video IP, saiki didhukung dening kabeh produsen kamera IP tanpa istiméwa, yaiku Gambar ONVIF S, sing spesifikasi ana ing basa deskripsi layanan web wsdl. Nggunakake utilitas saka toolkit gSOAP Sampeyan bisa nggawe kode sumber kanggo layanan sing bisa digunakake karo kamera IP:

$ wsdl2h -o onvif.h 
	https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl 
	https://www.onvif.org/ver10/events/wsdl/event.wsdl 
	https://www.onvif.org/ver10/media/wsdl/media.wsdl 
	https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl

$ soapcpp2 -Cwvbj -c++11 -d cpp_files/onvif -i onvif.h

Akibaté, kita njaluk pesawat saka header "*. h" lan sumber "*. cpp" file ing C ++, kang bisa diselehake langsung menyang aplikasi utawa perpustakaan kapisah lan nyawiji nggunakake GCC compiler. Amarga akeh fungsi, kode kasebut gedhe lan mbutuhake optimasi tambahan. Raspberry Pi 3 model B + mikrokomputer wis kinerja cekap kanggo nglakokaké kode iki, nanging yen ana perlu kanggo port kode kanggo platform liyane, iku perlu kanggo milih arsitektur prosesor bener lan sumber daya sistem.

Kamera IP sing ndhukung standar ONVIF, nalika operasi ing jaringan lokal, disambungake menyang grup multicast khusus kanthi alamat 239.255.255.250. Ana protokol WS-Panemuan, sing ngidini sampeyan ngotomatisasi telusuran piranti ing jaringan lokal.

Antarmuka grafis pengontrol omah sing cerdas ngetrapake fungsi telusuran kanggo kamera IP ing PHP, sing trep banget nalika sesambungan karo layanan web liwat pesen XML. Nalika milih item menu Piranti > Kamera IP > Pindai Algoritma kanggo nggoleki kamera IP diluncurake, nampilake asil ing wangun tabel:

Omah Smart Cloud. Part 1: Controller lan sensor
(klik ing gambar kanggo mbukak ing resolusi luwih gedhe)

Nalika sampeyan nambahake kamera menyang controller, sampeyan bisa nemtokake setelan sing bakal sesambungan karo maya. Uga ing tahap iki, kanthi otomatis diwenehi pengenal piranti sing unik, sing mengko bisa gampang dingerteni ing awan.

Omah Smart Cloud. Part 1: Controller lan sensor

Sabanjure, pesen digawe ing format JSON sing ngemot kabeh parameter kamera sing ditambahake lan dikirim menyang proses server pengontrol omah cerdas liwat perintah RESTful API, ing ngendi paramèter kamera didekode lan disimpen ing database SQLite internal, lan uga digunakake kanggo miwiti thread pangolahan ing ngisor iki:

  1. nggawe sambungan RTSP kanggo nampa stream video lan audio;
  2. transcoding audio saka G.711 mu-Law, G.711 A-Law, G.723, etc.. format. menyang format AAC;
  3. transcoding video stream ing format H.264 lan audio ing format AAC menyang wadhah FLV lan ngirim menyang maya liwat protokol RTMP;
  4. nggawe sambungan karo titik mburi detektor gerakan kamera IP liwat protokol ONVIF lan polling sacara periodik;
  5. kanthi periodik ngasilake gambar pratinjau gambar cilik lan ngirim menyang awan liwat protokol MQTT;
  6. ngrekam video lan audio stream lokal ing wangun file kapisah ing format MP4 menyang SD utawa kertu Flash controller ngarep pinter.

Omah Smart Cloud. Part 1: Controller lan sensor

Kanggo nggawe sambungan karo kamera, transcode, proses lan ngrekam video stream ing proses server, fungsi saka perpustakaan digunakake. FFmpeg 4.1.0.

Ing eksperimen pengujian kinerja, 3 kamera disambungake menyang pengontrol:

  1. HiWatch DS-I114W (resolusi - 720p, format komprèsi - H.264, bitrate - 1 Mb / s, swara G.711 mu-Law);
  2. Microdigital MDC-M6290FTD-1 (resolusi - 1080p, format kompresi - H.264, bitrate - 1 Mb / s, ora ana swara);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (resolusi - 1080p, format kompresi - H.264, bitrate - 1.5 Mb/s, audio AAC).

Omah Smart Cloud. Part 1: Controller lan sensor

Kabeh telung lepen padha metu ing awan, transcoding audio ditindakake mung saka siji kamera, lan rekaman arsip lokal dipateni. Beban CPU kira-kira 5%, panggunaan RAM 32 MB (saben proses), 56 MB (total kalebu OS).

Mangkono, kira-kira 20 - 30 kamera bisa disambungake menyang pengontrol omah sing cerdas (gumantung resolusi lan bitrate), sing cukup kanggo sistem pengawasan video kanggo pondokan telung lantai utawa gudang cilik. Kanggo tugas sing mbutuhake kinerja sing luwih gedhe, sampeyan bisa nggunakake nettop kanthi prosesor Intel multi-inti lan Linux Debian Sarge OS. Pengontrol saiki lagi nglakoni operasi nyoba, lan data babagan kinerja bakal dianyari.

Interaksi karo awan

Omah cerdas berbasis awan nyimpen data pangguna (ukuran video lan sensor) ing méga. Arsitektur panyimpenan maya bakal dibahas kanthi luwih rinci ing artikel sabanjure ing seri kita. Saiki ayo ngomong babagan antarmuka kanggo ngirim pesen informasi saka pengontrol omah cerdas menyang awan.

Negara piranti sing disambungake lan pangukuran sensor dikirim liwat protokol MQTT, sing asring digunakake ing proyek Internet of Things amarga kesederhanaan lan efisiensi energi. MQTT nggunakake model klien-server, ing ngendi klien langganan topik tartamtu ing broker lan nerbitake pesen. Broker ngirim pesen menyang kabeh pelanggan miturut aturan sing ditemtokake dening tingkat QoS (Kualitas Layanan):

  • QoS 0 - maksimal sapisan (ora ana jaminan pangiriman);
  • QoS 1 - paling ora sapisan (kanthi konfirmasi pangiriman);
  • QoS 2 - persis sapisan (karo konfirmasi pangiriman tambahan).

Ing kasus kita, kita nggunakake Nyamuk Gerhana. Jeneng topik minangka pengenal unik saka pengontrol omah sing cerdas. Klien MQTT ing proses server langganan topik iki lan nerjemahake pesen JSON sing teka saka manajer pesen kasebut. Kosok baline, pesen saka makelar MQTT diterusake menyang manajer pesen, sing banjur ditransfer menyang pelanggan ing proses server:

Omah Smart Cloud. Part 1: Controller lan sensor

Kanggo ngirim pesen babagan status pengontrol omah cerdas, mekanisme pesen sing disimpen digunakake pesen sing disimpen Protokol MQTT. Iki ngidini sampeyan ngawasi kanthi bener wektu panyambungan maneh nalika gagal listrik.

Klien MQTT dikembangake adhedhasar implementasine perpustakaan Eclipse Paho ing basa C++.

H.264 + AAC media stream dikirim menyang maya liwat protokol RTMP, ngendi klompok server media tanggung jawab kanggo Processing lan nyimpen. Kanggo nyebarake beban ing kluster kanthi optimal lan milih server media sing paling ora dimuat, pengontrol omah sing cerdas nggawe panjaluk awal menyang penyeimbang muatan awan lan mung sawise ngirim aliran media.

kesimpulan

Artikel kasebut nyinaoni siji implementasi khusus saka pengontrol omah sing cerdas adhedhasar mikrokomputer Raspberry Pi 3 B+, ​​sing bisa nampa, ngolah informasi lan peralatan kontrol liwat protokol Z-Wave, sesambungan karo kamera IP liwat protokol ONVIF, lan uga ngganti data lan printah karo maya. layanan liwat protokol MQTT lan RTMP. Mesin logika produksi wis dikembangake adhedhasar perbandingan aturan logis lan fakta sing ditampilake ing format JSON.

Pengontrol omah sing cerdas saiki lagi ditindakake ing sawetara situs ing Moskow lan wilayah Moskow.

Versi controller sabanjure rencana kanggo nyambungake jinis piranti liyane (RF, Bluetooth, WiFi, kabel). Kanggo penak pangguna, prosedur kanggo nyambungake sensor lan kamera IP bakal ditransfer menyang aplikasi seluler. Ana uga gagasan kanggo ngoptimalake kode proses server lan porting piranti lunak menyang sistem operasi OpenWrt. Iki bakal ngidini sampeyan ngirit pengontrol sing kapisah lan nransfer fungsi omah sing cerdas menyang router rumah tangga biasa.

Source: www.habr.com

Add a comment