Awan Smart Imah. Bagian 1: Controller sareng sénsor

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Kiwari, hatur nuhun kana kamajuan gancang microelectronics, saluran komunikasi, téknologi Internét sareng Kecerdasan Buatan, topik imah pinter janten langkung relevan. Perumahan manusa parantos ngalaman parobihan anu signifikan ti Jaman Batu sareng dina jaman Revolusi Industri 4.0 sareng Internet of Things, éta janten nyaman, fungsional sareng aman. Solusi datang ka pasar anu ngajantenkeun apartemen atanapi bumi nagara janten sistem inpormasi kompleks anu dikontrol ti mana waé di dunya nganggo smartphone. Sumawona, interaksi manusa-mesin henteu peryogi deui pangaweruh ngeunaan basa pamrograman - hatur nuhun kana pangakuan ucapan sareng algoritma sintésis, jalma nyarios ka bumi pinter dina basa asli na.

Sababaraha sistem home pinter ayeuna dina pasaran mangrupakeun ngembangkeun logis tina sistem panjagaan video awan, pamekar nu sadar butuh solusi komprehensif teu ukur keur monitoring, tapi ogé pikeun ngatur objék jauh.

Urang nampilkeun ka perhatian Anjeun runtuyan tilu artikel, nu bakal ngabejaan Anjeun tentang sakabéh komponén utama sistem awan pinter home, pribadi dikembangkeun ku pangarang jeung nempatkeun kana operasi. Artikel kahiji dikhususkeun pikeun alat klien terminal anu dipasang di jero bumi pinter, anu kadua pikeun arsitéktur panyimpenan awan sareng sistem ngolah data, sareng tungtungna, anu katilu pikeun aplikasi klien pikeun ngatur sistem dina alat sélulér sareng stasioner.

parabot home pinter

Mimiti, hayu urang ngobrol ngeunaan kumaha carana ngadamel bumi pinter tina apartemen biasa, dacha atanapi pondok. Jang ngalampahkeun ieu, sakumaha aturan, perlu pikeun nempatkeun parabot handap di imah:

  1. sensor nu ngukur rupa parameter lingkungan;
  2. actuators nimpah objék éksternal;
  3. a controller nu ngalakukeun itungan luyu jeung ukuran sensor jeung logika embedded, sarta ngaluarkeun paréntah pikeun actuators.

Gambar di handap ieu nunjukkeun diagram bumi pinter, dimana aya sensor bocor cai (1) di kamar mandi, suhu (2) sareng cahaya (3) di pangkeng, stop kontak pinter (4) di dapur sareng a kaméra panjagaan video (5) di lorong.

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Ayeuna, sensor nirkabel anu dianggo nganggo protokol RF433, Z-Wave, ZigBee, Bluetooth sareng WiFi seueur dianggo. Kaunggulan utama maranéhanana nyaéta betah instalasi tur pamakéan, kitu ogé béaya rendah jeung reliabilitas, sabab Pabrikan narékahan pikeun nyangking alatna ka pasar massal sareng ngajantenkeun tiasa diaksés ku pangguna rata-rata.

Sénsor sareng aktuator, sakumaha aturan, dihubungkeun ku antarbeungeut nirkabel ka pangontrol bumi pinter (6) - mikrokomputer khusus anu ngagabungkeun sadaya alat ieu kana jaringan tunggal sareng ngontrolana.

Nanging, sababaraha solusi tiasa ngagabungkeun sénsor, aktuator sareng pengontrol dina waktos anu sami. Contona, colokan pinter bisa diprogram pikeun ngahurungkeun atawa mareuman nurutkeun jadwal, sarta kaméra panjagaan video awan bisa ngarekam video dumasar kana sinyal detektor gerak. Dina kasus pangbasajanna, Anjeun bisa ngalakukeun tanpa controller misah, tapi pikeun nyieun sistem fléksibel jeung loba skenario, perlu.

Pikeun nyambungkeun controller home pinter ka jaringan global, hiji router Internet biasa (7) bisa dipaké, nu geus lila jadi alat rumah tangga umum di imah wae. Di dieu aya argumen sejen dina kahadean a controller home pinter - lamun sambungan kana Internet leungit, home pinter bakal neruskeun beroperasi sakumaha normal berkat blok logika disimpen di jero controller, sarta teu di layanan awan.

Controller imah pinter

Controller pikeun sistem bumi pinter awan anu dibahas dina tulisan ieu dikembangkeun dumasar kana mikrokomputer papan tunggal Buah prambus Pi 3 modél B+, anu dirilis dina Maret 2018 sarta ngabogaan sumberdaya cukup jeung kinerja pikeun tugas home pinter. Éta kalebet prosésor quad-core Cortex-A53 dumasar kana arsitéktur 64-bit ARMv8-A, jam 1.4 GHz, ogé 1 GB RAM, Wi-Fi 802.11ac, Bluetooth 4.2 sareng adaptor Ethernet gigabit anu beroperasi liwat USB 2.0. .

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Assembling controller basajan pisan - microcomputer (1) dipasang dina kasus plastik (2), lajeng hiji 8 kartu memori GB dina format microSD kalawan software (3) sarta USB Z-Wave controller jaringan (4) dipasang dina. slot pakait. Controller home pinter disambungkeun ka catu daya via 5V, 2.1A adaptor kakuatan (5) jeung USB - kabel micro-USB (6). Unggal controller boga nomer idéntifikasi unik, nu ditulis dina file konfigurasi nalika munggaran dibuka sarta perlu berinteraksi sareng jasa awan pinter home.

Parangkat lunak pengontrol bumi pinter dikembangkeun ku panulis artikel ieu dumasar kana sistem operasi Linux Raspbian Stretch. Ieu ngawengku subsistem utama handap:

  • prosés server pikeun interaksi jeung parabot home pinter jeung awan;
  • antarbeungeut pamaké grafis pikeun netepkeun konfigurasi sarta operasi parameter controller nu;
  • database pikeun nyimpen konfigurasi controller.

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Basis data Controller home pinter dilaksanakeun dumasar kana DBMS anu dipasang SQLite tur mangrupakeun file dina kartu SD kalawan software sistem. Ieu boga fungsi minangka gudang pikeun konfigurasi controller - informasi ngeunaan alat disambungkeun tur kaayaan kiwari, blok aturan produksi logis, kitu ogé informasi anu merlukeun indexing (contona, ngaran file arsip video lokal). Nalika controller ieu rebooted, inpo ieu disimpen, sahingga mungkin mulangkeun controller dina acara gagalna kakuatan.

GUI controller home pinter dimekarkeun dina PHP 7 ngagunakeun microframework a ramping. Pangladén wéb tanggung jawab pikeun ngajalankeun aplikasi. lighttpd, mindeng dipaké dina alat embedded alatan kinerja alus sarta syarat sumberdaya low.

Awan Smart Imah. Bagian 1: Controller sareng sénsor
(klik dina gambar pikeun muka dina resolusi nu leuwih gede)

Fungsi utama antarbeungeut grafis nyaéta pikeun nyambungkeun alat-alat bumi pinter (kaméra panjagaan IP sareng sensor) ka controller. Aplikasi wéb maca konfigurasi sareng kaayaan ayeuna controller sareng alat-alat anu disambungkeun kana éta tina database SQLite. Pikeun ngarobah konfigurasi controller, éta ngirimkeun paréntah kontrol dina format JSON ngaliwatan panganteur API RESTful tina prosés server.

Prosés server

Prosés server - komponén konci anu ngalaksanakeun sagala pagawéan utama pikeun ngajadikeun otomatis prosés inpormasi anu janten dasar bumi pinter: nampi sareng ngolah data indrawi, ngaluarkeun tindakan kontrol gumantung kana logika anu dipasang. Tujuan tina prosés server nyaéta pikeun berinteraksi sareng alat bumi pinter, ngalaksanakeun aturan logis produksi, nampi sareng ngolah paréntah tina antarmuka grafis sareng awan. Prosés server dina controller home pinter dina tinimbangan dilaksanakeun salaku aplikasi multi-threaded dikembangkeun dina C ++ sarta dibuka salaku layanan misah. systemd sistem operasi Linux Raspbian.

Blok utama prosés server nyaéta:

  1. Manajer pesen;
  2. server kaméra IP;
  3. server alat Z-Wave;
  4. Server aturan logis produksi;
  5. Database tina konfigurasi controller jeung blok aturan logis;
  6. Server API RESTful pikeun interaksi sareng antarmuka grafis;
  7. MQTT klien pikeun interacting jeung awan.

Blok prosés server dilaksanakeun salaku benang anu misah, inpormasi antara anu ditransferkeun dina bentuk pesen dina format JSON (atanapi struktur data anu ngagambarkeun format ieu dina mémori prosés).

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Komponén utama prosés server nyaéta manajer pesen, nu ruteu pesen JSON ka sadaya blok prosés server. Jinis widang inpormasi pesen JSON sareng nilai anu aranjeunna tiasa nampi didaptarkeun dina tabél:

deviceType
protokol
messageType
kaayaan alat
parentah

kamera
onvif
sensorData
on
streaming (Hidup/Pareum)

sensor
zwave
parentah
off
ngarékam (Hidup/Pareum)

effector
mqtt
businessLogicRule
streaming (Hidup/Pareum)
evice (Tambahkeun / Pupus)

bisnisLogika
konfigurasiData
ngarékam (Hidup/Pareum)

Bluetooth
kaayaan alat
kasalahan

Wifi

rf

Contona, pesen ti detektor gerak kaméra siga kieu:

{
	"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

Pikeun nampi atanapi ngirim pesen ti dispatcher, blok prosés server ngalanggan pesen tina jinis anu tangtu. Langganan mangrupikeun aturan logis produksi tina jinisna “Lamun... tuluy...”, dibere dina format JSON, sarta tumbu ka pawang pesen di jero blok prosés server. Contona, pikeun ngidinan server kaméra IP narima paréntah ti GUI jeung awan, Anjeun kudu nambahkeun aturan ieu:

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

Lamun kaayaan dieusian dina antecedent (beulah kénca) aturanana bener, tuluy sugema akibatna (sisi katuhu) aturan, sarta Handler meunang aksés ka awak pesen JSON. Antecedent ngadukung operator logis anu ngabandingkeun pasangan konci-nilai JSON:

  1. sarua "sarua";
  2. teu sarua jeung "teu_sarua";
  3. kirang "kurang";
  4. leuwih "gede";
  5. kurang atawa sarua jeung "less_or_equal";
  6. leuwih gede atawa sarua jeung "greater_or_equal".

Hasil babandingan bisa saling patali ngagunakeun operator aljabar Boolean:

  1. Jeung "jeung"
  2. ATAWA "atanapi";
  3. NOT "henteu".

Ku kituna, ku cara nulis operator jeung operan dina notasi Polandia, anjeun bisa nyieun kaayaan rada kompleks jeung angka nu gede ngarupakeun parameter.

Mékanisme anu sami persis, dumasar kana pesen JSON sareng aturan produksi dina format JSON, dianggo dina blok server logika produksi pikeun ngagambarkeun pangaweruh sareng ngalaksanakeun inferensi logis nganggo data indrawi tina sénsor bumi pinter.

Nganggo aplikasi sélulér, pangguna nyiptakeun skénario numutkeun yén bumi pinter kedah dianggo. Salaku conto: "Upami sensor pikeun muka panto payun dipicu, teras hurungkeun lampu di lorong". Aplikasi maca identifiers tina sensor (sensor muka) jeung actuators (stop kontak pinter atawa lampu pinter) tina database jeung dibangkitkeun aturan logis dina format JSON, nu dikirim ka controller home pinter. Mékanisme ieu bakal dibahas langkung rinci dina tulisan katilu séri kami, dimana urang bakal ngobrol ngeunaan aplikasi klien pikeun ngatur bumi pinter.

Mékanisme logika produksi anu dibahas di luhur dilaksanakeun nganggo perpustakaan RapidJSON - parser SAX pikeun format JSON dina C ++. Bacaan sekuensial sareng parsing tina susunan aturan produksi ngamungkinkeun anjeun gampang nerapkeun fungsi ngabandingkeun data dina 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);
        }
    }
}

Ieu téh pFakta - struktur anu ngandung pasangan konci-nilai tina pesen JSON, m_Aturan - string Asép Sunandar Sunarya aturan produksi. Perbandingan pesen asup sareng aturan produksi dilaksanakeun dina fungsi reader.Parse(ruleStream, ruleHandler)dimana ruleHandler mangrupa obyék nu ngandung logika Boolean jeung operator ngabandingkeun. sRuleId - a identifier aturan unik, hatur nuhun nu kasebut nyaéta dimungkinkeun pikeun nyimpen jeung ngédit aturan jero database controller home pinter. m_pActions - hiji Asép Sunandar Sunarya kalawan hasil inferensi logis: pesen JSON ngandung konsékuansi tina dasar aturan jeung dikirim salajengna ka manajer pesen supados threads palanggan bisa ngolah aranjeunna.

kinerja RapidJSON nyaeta comparable kana fungsi strlen(), jeung sarat sumberdaya Sistim minimum ngidinan pamakéan perpustakaan ieu dina alat embedded. Pamakéan pesen jeung aturan logis dina format JSON ngidinan Anjeun pikeun nerapkeun sistem fléksibel bursa informasi antara sakabéh komponén controller home pinter.

Sénsor Z-Gelombang jeung Aktuator

Kauntungan utama bumi pinter nyaéta yén éta tiasa sacara mandiri ngukur rupa-rupa parameter lingkungan éksternal sareng ngalaksanakeun fungsi anu mangpaat gumantung kana kaayaan. Jang ngalampahkeun ieu, sénsor sareng aktuator disambungkeun ka pangontrol bumi pinter. Dina versi ayeuna, ieu mangrupikeun alat nirkabel anu nganggo protokol Gelombang Z dina frékuénsi husus disadiakeun 869 MHz Pikeun Rusia. Pikeun beroperasi, aranjeunna digabungkeun kana jaringan bolong, anu ngandung pengulangan sinyal pikeun ningkatkeun daérah sinyalna. Alat-alat ogé ngagaduhan mode hemat energi khusus - aranjeunna nyéépkeun waktos dina modeu bobo sareng ngirim inpormasi ngan ukur nalika kaayaanna robih, anu tiasa sacara signifikan manjangkeun umur batré anu diwangun.

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Anjeun ayeuna tiasa mendakan sajumlah anu cukup ageung alat Z-Wave anu béda dina pasaran. Hayu urang tingali sababaraha conto:

  1. Soket pinter Zipato PAN16 tiasa ngukur parameter di handap ieu: konsumsi listrik (kWh), kakuatan (W), tegangan (V) sareng arus (A) dina jaringan listrik. Éta ogé ngagaduhan saklar anu diwangun sareng anjeun tiasa ngontrol alat listrik anu disambungkeun;
  2. Sensor bocor Neo Coolcam ngadeteksi ayana cairan anu tumpah ku cara nutup kontak usik jauh;
  3. Sensor haseup Zipato PH-PSG01 dipicu nalika partikel haseup asup ka kamar analisa gas;
  4. Sensor gerak Neo Coolcam nganalisa radiasi infra red awak manusa. Sajaba aya sensor lampu (Lx);
  5. Multisensor Philio PST02-A ngukur suhu (°C), cahaya (%), lawang panto, ayana jalma di rohangan;
  6. Z-Wave USB Stick ZME E UZB1 controller jaringan, nu sensor disambungkeun.

Penting pisan yén alat sareng pangontrol beroperasi dina frékuénsi anu sami, upami henteu, aranjeunna ngan saukur moal ningali silih dina waktos sambungan. Nepi ka 232 alat bisa disambungkeun kana hiji controller jaringan Z-Wave, nu cukup pikeun hiji apartemen atawa imah nagara. Pikeun ngalegaan wewengkon cakupan jaringan di jero rohangan, stop kontak pinter bisa dipaké salaku repeater sinyal.

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Dina prosés server controller home pinter dibahas dina paragraf saméméhna, server Z-Wave jawab interacting jeung alat Z-Wave. Éta ngagunakeun perpustakaan pikeun nampi inpormasi tina sénsor OpenZWave dina C ++, nu nyadiakeun panganteur pikeun interacting jeung Z-Wave jaringan USB controller sarta gawéna kalayan rupa-rupa sensor na actuators. Nilai parameter lingkungan anu diukur ku sénsor dirékam ku server Z-Wave dina bentuk 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"
}

Teras diteruskeun ka manajer pesen prosés server supados benang palanggan tiasa nampi éta. Palanggan utama nyaéta server logika produksi, anu cocog sareng nilai médan pesen dina antecedents aturan logika. Hasil inferensi anu ngandung paréntah kontrol dikirim deui ka manajer pesen sareng ti dinya angkat ka server Z-Wave, anu nga-decode aranjeunna sareng ngirimkeunana ka jaringan USB controller Z-Wave. Teras aranjeunna asupkeun actuator, anu ngarobih kaayaan objék lingkungan, sareng bumi pinter sahingga ngalaksanakeun padamelan anu mangpaat.

Awan Smart Imah. Bagian 1: Controller sareng sénsor
(klik dina gambar pikeun muka dina resolusi nu leuwih gede)

Nyambungkeun alat Z-Wave dipigawé dina panganteur grafis tina controller home pinter. Jang ngalampahkeun ieu, buka kaca sareng daptar alat teras klik tombol "Tambahkeun". Paréntah tambah via panganteur API RESTful asup kana prosés server lajeng dikirim ku manajer pesen ka server Z-Wave, nu nempatkeun Z-Wave jaringan USB controller kana mode husus pikeun nambahkeun alat. Salajengna, dina alat Z-Wave anjeun kedah ngadamel séri pencét gancang (3 pencét dina 1,5 detik) tina tombol jasa. Controller USB nyambungkeun alat ka jaringan sareng ngirim inpormasi ngeunaan éta ka server Z-Wave. Éta, kahareupna nyiptakeun éntri énggal dina pangkalan data SQLite kalayan parameter alat énggal. Saatos interval waktu anu ditangtukeun, antarmuka grafis balik ka halaman daptar alat Z-Wave, maca inpormasi tina pangkalan data sareng ningalikeun alat anyar dina daptar. Unggal alat nampi identifier unik sorangan, anu dianggo dina aturan inferensi produksi sareng nalika damel di awan. Operasi algoritma ieu dipidangkeun dina diagram UML:

Awan Smart Imah. Bagian 1: Controller sareng sénsor
(klik dina gambar pikeun muka dina resolusi nu leuwih gede)

Nyambungkeun kaméra IP

Sistem awan pinter anu dibahas dina tulisan ieu mangrupikeun pamutahiran sistem panjagaan pidéo awan, ogé dikembangkeun ku panulis, anu parantos aya di pasar salami sababaraha taun sareng gaduh seueur pamasangan di Rusia.

Pikeun sistem panjagaan pidéo awan, salah sahiji masalah anu parah nyaéta pilihan kawates alat anu tiasa dilaksanakeun integrasi. Parangkat lunak anu tanggung jawab pikeun nyambungkeun kana méga dipasang di jero kaméra pidéo, anu langsung nempatkeun tungtutan anu serius dina hardwarena - prosésor sareng jumlah mémori gratis. Ieu utamana ngajelaskeun harga luhur kaméra CCTV awan dibandingkeun kaméra IP biasa. Salaku tambahan, tahap rundingan anu panjang sareng perusahaan manufaktur kaméra CCTV diperyogikeun pikeun kéngingkeun aksés kana sistem file kaméra sareng sadaya alat pangembangan anu diperyogikeun.

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Di sisi anu sanés, sadaya kaméra IP modern gaduh protokol standar pikeun interaksi sareng alat-alat sanés (khususna, pangrékam pidéo). Ku kituna, pamakéan controller misah nu nyambungkeun ngaliwatan protokol baku sarta siaran video stream ti kaméra IP ka awan nyadiakeun kaunggulan kalapa signifikan pikeun sistem panjagaan video awan. Sumawona, upami klien parantos dipasang sistem panjagaan pidéo dumasar kana kaméra IP saderhana, maka éta tiasa dilegakeun sareng janten bumi pinter awan anu pinuh.

Protokol anu paling populér pikeun sistem panjagaan pidéo IP, ayeuna dirojong ku sadaya produsén kaméra IP tanpa iwal, nyaéta Gambar ONVIF S, anu spésifikasina aya dina basa déskripsi jasa wéb wsdl. Ngagunakeun Utiliti ti toolkit nu gSOAP Kasebut nyaéta dimungkinkeun pikeun ngahasilkeun kode sumber pikeun jasa anu tiasa dianggo sareng kaméra 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

Hasilna, urang meunang susunan lulugu "*. h" jeung sumber "*. cpp" file dina C ++, nu bisa ditempatkeun langsung kana hiji aplikasi atawa perpustakaan misah tur disusun ngagunakeun GCC compiler. Kusabab seueur fungsi, kodena ageung sareng peryogi optimasi tambahan. Buah prambus Pi 3 modél B + mikrokomputer boga kinerja cukup pikeun ngaéksekusi kode ieu, tapi lamun aya anu peryogi pikeun port kode ka platform sejen, perlu pikeun milih arsitéktur processor bener jeung sumberdaya sistem.

Kaméra IP anu ngadukung standar ONVIF, nalika beroperasi dina jaringan lokal, disambungkeun ka grup multicast khusus kalayan alamatna. 239.255.255.250. Aya protokol WS-Papanggihan, anu ngamungkinkeun anjeun ngajadikeun otomatis milarian alat dina jaringan lokal.

Antarbeungeut grafis tina controller home pinter implements a fungsi pilarian pikeun kaméra IP dina PHP, nu pohara merenah nalika interacting jeung jasa web via seratan XML. Nalika milih item menu Alat > Kaméra IP > Nyeken Algoritma pikeun milarian kaméra IP diluncurkeun, nunjukkeun hasilna dina bentuk méja:

Awan Smart Imah. Bagian 1: Controller sareng sénsor
(klik dina gambar pikeun muka dina resolusi nu leuwih gede)

Nalika anjeun nambihan kaméra ka controller, anjeun tiasa netepkeun setélan anu mana éta bakal berinteraksi sareng méga. Ogé dina tahap ieu, sacara otomatis ditugaskeun idéntifikasi alat anu unik, anu engkéna tiasa gampang diidentifikasi dina méga.

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Salajengna, pesen dihasilkeun dina format JSON ngandung sakabéh parameter tina kaméra ditambahkeun jeung dikirim ka prosés server controller home pinter via paréntah RESTful API, dimana parameter kaméra anu decoded tur disimpen dina database SQLite internal, tur mangrupakeun. ogé dipaké pikeun ngajalankeun thread processing handap:

  1. ngadegkeun sambungan RTSP pikeun nampa aliran video jeung audio;
  2. transcoding audio tina G.711 mu-Law, G.711 A-Law, G.723, jsb format. kana format AAC;
  3. transcoding video stream dina format H.264 jeung audio dina format AAC kana wadah FLV sarta ngirimkeun ka awan ngaliwatan protokol RTMP;
  4. ngadegkeun sambungan jeung titik tungtung detektor gerak kaméra IP ngaliwatan protokol ONVIF sarta périodik polling eta;
  5. périodik ngahasilkeun gambar sawangan gambar leutik tur ngirim ka awan ngaliwatan protokol MQTT;
  6. ngarékam lokal tina video sareng aliran audio dina bentuk file anu misah dina format MP4 kana kartu SD atanapi Flash tina controller home pinter.

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Pikeun nyieun sambungan sareng kaméra, transcode, prosés sareng ngarékam aliran pidéo dina prosés server, fungsi ti perpustakaan dianggo. FFmpeg 4.1.0.

Dina percobaan nguji kinerja, 3 kaméra disambungkeun ka controller:

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

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Katiluna aliran sakaligus kaluaran ka awan, transcoding audio dilaksanakeun tina ngan ukur hiji kaméra, sareng ngarékam arsip lokal ditumpurkeun. beban CPU éta kira 5%, pamakéan RAM éta 32 MB (per prosés), 56 MB (total kaasup OS).

Ku kituna, kira-kira 20 - 30 kaméra bisa disambungkeun ka controller home pinter (gumantung resolusi sarta bitrate), nu cukup pikeun sistem panjagaan video pikeun pondok tilu-carita atawa gudang leutik. Pikeun tugas anu merlukeun kinerja gede, Anjeun bisa make nettop kalawan prosesor Intel multi-inti jeung Linux Ubuntu Debian Sarge OS. Controller ayeuna nuju ngajalanan operasi percobaan, sareng data ngeunaan kinerjana bakal diropéa.

Interaksi jeung awan

Imah pinter dumasar-awan nyimpen data pangguna (ukuran video sareng sensor) dina méga. Arsitéktur panyimpenan awan bakal dibahas langkung rinci dina tulisan salajengna dina séri kami. Ayeuna hayu urang ngobrol ngeunaan panganteur pikeun ngirimkeun pesen inpormasi ti controller home pinter ka awan.

Kaayaan alat anu disambungkeun sareng pangukuran sensor dikirimkeun ngaliwatan protokol MQTT, anu sering dianggo dina proyék Internet of Things kusabab kesederhanaan sareng efisiensi énergi. MQTT ngagunakeun modél klien-server, dimana klien ngalanggan topik husus dina calo jeung nyebarkeun pesen maranéhanana. Calo ngirim pesen ka sadaya palanggan numutkeun aturan anu ditangtukeun ku tingkat QoS (Quality of Service):

  • QoS 0 - maksimum sakali (teu aya jaminan pangiriman);
  • QoS 1 - sahenteuna sakali (kalayan konfirmasi pangiriman);
  • QoS 2 - persis sakali (kalawan konfirmasi pangiriman tambahan).

Dina kasus urang, urang ngagunakeun Reungit Kuwu. Ngaran topik nyaéta identifier unik tina controller home pinter. Klién MQTT di jero prosés server ngalanggan topik ieu sareng narjamahkeun pesen JSON anu asalna tina manajer pesen kana éta. Sabalikna, seratan ti calo MQTT diteruskeun ku éta ka manajer pesen, anu teras dikalikeun ka palangganna dina prosés server:

Awan Smart Imah. Bagian 1: Controller sareng sénsor

Pikeun ngirimkeun pesen ngeunaan status controller home pinter, mékanisme pesen disimpen dipaké pesen dipikagaduh Protokol MQTT. Ieu ngamungkinkeun anjeun leres-leres ngawas waktos sambungan deui nalika gagal listrik.

Klién MQTT dikembangkeun dumasar kana palaksanaan perpustakaan Eclipse Paho dina basa C++.

H.264 + AAC aliran média dikirim ka awan via protokol RTMP, dimana gugusan server média jawab ngolah jeung nyimpen aranjeunna. Pikeun optimal ngadistribusikaeun beban dina kluster tur pilih pangladén média pangsaeutikna dimuat, controller home pinter nyieun pamundut awal ka balancer beban awan sarta ngan sanggeus éta ngirimkeun aliran média.

kacindekan

Artikel nalungtik hiji palaksanaan husus controller home pinter dumasar kana Raspberry Pi 3 B + microcomputer, nu bisa nampa, ngolah informasi jeung alat kontrol via protokol Z-Wave, berinteraksi sareng kaméra IP via protokol ONVIF, sarta ogé tukeur data jeung paréntah sareng layanan awan via protokol MQTT sareng RTMP. Mesin logika produksi parantos dikembangkeun dumasar kana ngabandingkeun aturan logis sareng fakta anu dipidangkeun dina format JSON.

Controller home pinter ayeuna nuju operasi percobaan di sababaraha situs di Moscow jeung wewengkon Moscow.

Versi salajengna controller ngarencanakeun pikeun nyambungkeun tipe séjén alat (RF, Bluetooth, WiFi, kabel). Pikeun genah pangguna, prosedur pikeun nyambungkeun sensor sareng kaméra IP bakal dialihkeun kana aplikasi sélulér. Aya ogé ideu pikeun ngaoptimalkeun kode prosés server sareng porting parangkat lunak kana sistem operasi OpenWrt. Ieu bakal ngidinan Anjeun pikeun nyimpen dina controller misah tur mindahkeun pungsionalitas imah pinter ka router rumah tangga biasa.

sumber: www.habr.com

Tambahkeun komentar