Cloud Smart Home. Parti 1: Kontrollur u sensuri

Cloud Smart Home. Parti 1: Kontrollur u sensuri

Illum, grazzi għall-iżvilupp mgħaġġel tal-mikroelettronika, il-kanali tal-komunikazzjoni, it-teknoloġiji tal-Internet u l-Intelliġenza Artifiċjali, is-suġġett tad-djar intelliġenti qed isir aktar u aktar rilevanti. L-akkomodazzjoni tal-bniedem għaddiet minn bidliet sinifikanti mill-Età tal-Ġebel u fl-era tar-Rivoluzzjoni Industrijali 4.0 u l-Internet tal-Oġġetti, saret komda, funzjonali u sigura. Qed jidħlu fis-suq soluzzjonijiet li jbiddlu appartament jew dar tal-pajjiż f’sistemi ta’ informazzjoni kumplessi kkontrollati minn kullimkien fid-dinja bl-użu ta’ smartphone. Barra minn hekk, l-interazzjoni bejn il-bniedem u l-magna m'għadhiex teħtieġ għarfien tal-lingwi tal-ipprogrammar - grazzi għar-rikonoxximent tad-diskors u algoritmi ta 'sinteżi, persuna titkellem ma' dar intelliġenti fil-lingwa nattiva tagħha.

Xi sistemi tad-dar intelliġenti bħalissa fis-suq huma żvilupp loġiku ta 'sistemi ta' sorveljanza bil-vidjo tas-sħab, li l-iżviluppaturi tagħhom indunaw il-ħtieġa għal soluzzjoni komprensiva mhux biss għall-monitoraġġ, iżda wkoll għall-ġestjoni ta 'oġġetti remoti.

Aħna nippreżentaw għall-attenzjoni tiegħek serje ta 'tliet artikoli, li jgħidulek dwar il-komponenti ewlenin kollha ta' sistema ta 'dar intelliġenti sħaba, żviluppata personalment mill-awtur u mħaddma. L-ewwel artikolu huwa ddedikat għat-tagħmir tal-klijent terminali installat ġewwa dar intelliġenti, it-tieni għall-arkitettura tas-sistema tal-ħażna u l-ipproċessar tad-dejta tas-sħab, u finalment, it-tielet għall-applikazzjoni tal-klijent għall-ġestjoni tas-sistema fuq apparat mobbli u stazzjonarju.

Tagħmir tad-dar intelliġenti

L-ewwel, ejja nitkellmu dwar kif tagħmel dar intelliġenti minn appartament ordinarju, dacha jew cottage. Biex tagħmel dan, bħala regola, huwa meħtieġ li t-tagħmir li ġej jitqiegħed fid-dar:

  1. sensuri li jkejlu diversi parametri ambjentali;
  2. Attwaturi li jaġixxu fuq oġġetti esterni;
  3. kontrollur li jwettaq kalkoli skont il-kejl tas-sensuri u l-loġika inkorporata, u joħroġ kmandi lill-attwaturi.

Il-figura li ġejja turi dijagramma ta 'dar intelliġenti, li fuqha hemm sensuri għal tnixxija ta' ilma (1) fil-kamra tal-banju, temperatura (2) u dawl (3) fil-kamra tas-sodda, socket intelliġenti (4) fil-kċina u kamera tas-sorveljanza bil-vidjo (5) fil-hallway.

Cloud Smart Home. Parti 1: Kontrollur u sensuri

Bħalissa, sensuri bla fili li joperaw bl-użu tal-protokolli RF433, Z-Wave, ZigBee, Bluetooth u WiFi jintużaw ħafna. Il-vantaġġi ewlenin tagħhom huma l-faċilità ta 'installazzjoni u użu, kif ukoll spiża baxxa u affidabbiltà, minħabba li Il-manifatturi qed jistinkaw biex iġibu l-apparati tagħhom fis-suq tal-massa u jagħmluhom aċċessibbli għall-utent medju.

Sensuri u attwaturi, bħala regola, huma konnessi permezz ta 'interface mingħajr fili ma' kontrollur tad-dar intelliġenti (6) - mikrokompjuter speċjalizzat li jgħaqqad dawn l-apparati kollha f'netwerk wieħed u jikkontrollahom.

Madankollu, xi soluzzjonijiet jistgħu jgħaqqdu sensor, attwatur u kontrollur fl-istess ħin. Pereżempju, plagg intelliġenti jista 'jiġi pprogrammat biex jinxtegħel jew jitfi skond skeda, u kamera ta' sorveljanza bil-vidjo tas-sħaba tista 'tirreġistra vidjow ibbażat fuq sinjal ta' rilevatur tal-moviment. Fl-aktar każijiet sempliċi, tista 'tagħmel mingħajr kontrollur separat, iżda biex toħloq sistema flessibbli b'ħafna xenarji, huwa meħtieġ.

Biex tgħaqqad il-kontrollur tad-dar intelliġenti man-netwerk globali, jista 'jintuża router tal-Internet regolari (7), li ilu jsir apparat domestiku komuni fi kwalunkwe dar. Hawnhekk hemm argument ieħor favur kontrollur tad-dar intelliġenti - jekk tintilef il-konnessjoni mal-Internet, id-dar intelliġenti se tkompli topera b'mod normali grazzi għall-blokka loġika maħżuna ġewwa l-kontrollur, u mhux fis-servizz tal-cloud.

Kontrollur tad-dar intelliġenti

Il-kontrollur għas-sistema tad-dar intelliġenti sħaba diskussa f'dan l-artikolu huwa żviluppat ibbażat fuq mikrokompjuter b'bord wieħed Raspberry Pi 3 mudell B+, li ġiet rilaxxata f'Marzu 2018 u għandha biżżejjed riżorsi u prestazzjoni għall-kompiti tad-dar intelliġenti. Jinkludi proċessur quad-core Cortex-A53 ibbażat fuq arkitettura ARMv64-A ta' 8-bit, imqabbad f'1.4 GHz, kif ukoll 1 GB ta' RAM, Wi-Fi 802.11ac, Bluetooth 4.2 u adapter gigabit Ethernet li jaħdem permezz ta' USB 2.0 .

Cloud Smart Home. Parti 1: Kontrollur u sensuri

L-immuntar tal-kontrollur huwa sempliċi ħafna - il-mikrokompjuter (1) huwa installat f'kaxxa tal-plastik (2), imbagħad karta tal-memorja ta '8 GB f'format microSD b'softwer (3) u kontrollur tan-netwerk USB Z-Wave (4) huma installati f' is-slots korrispondenti. Il-kontrollur tad-dar intelliġenti huwa konness mal-provvista tal-enerġija permezz ta 'adapter tal-enerġija 5V, 2.1A (5) u USB - kejbil mikro-USB (6). Kull kontrollur għandu numru ta 'identifikazzjoni uniku, li huwa miktub fil-fajl tal-konfigurazzjoni meta jitnieda l-ewwel darba u huwa meħtieġ biex jinteraġixxi mas-servizzi tad-dar intelliġenti tas-sħab.

Is-softwer tal-kontrollur tad-dar intelliġenti ġie żviluppat mill-awtur ta 'dan l-artikolu bbażat fuq is-sistema operattiva Linux Raspbian Stretch. Tikkonsisti fis-sottosistemi ewlenin li ġejjin:

  • proċess ta 'server għall-interazzjoni ma' tagħmir tad-dar intelliġenti u l-cloud;
  • interface tal-utent grafiku għall-issettjar tal-konfigurazzjoni u l-parametri operattivi tal-kontrollur;
  • database għall-ħażna tal-konfigurazzjoni tal-kontrollur.

Cloud Smart Home. Parti 1: Kontrollur u sensuri

Database kontrollur tad-dar intelliġenti huwa implimentat ibbażat fuq DBMS inkorporat SQLite u huwa fajl fuq karta SD b'softwer tas-sistema. Iservi bħala ħażna għall-konfigurazzjoni tal-kontrollur - informazzjoni dwar it-tagħmir konness u l-istat attwali tiegħu, blokk ta 'regoli ta' produzzjoni loġika, kif ukoll informazzjoni li teħtieġ indiċjar (per eżempju, ismijiet ta 'fajls ta' arkivju tal-vidjo lokali). Meta l-kontrollur jerġa 'jibda, din l-informazzjoni tiġi ssejvjata, li jagħmilha possibbli li l-kontrollur jiġi restawrat f'każ ta' nuqqas ta 'enerġija.

Interfaċċja grafika kontrollur tad-dar intelliġenti żviluppat f'PHP 7 bl-użu ta 'microframework SLIM. Is-server tal-web huwa responsabbli għat-tmexxija tal-applikazzjoni. lighttpd, spiss użat f'apparati inkorporati minħabba l-prestazzjoni tajba tiegħu u r-rekwiżiti ta 'riżorsi baxxi.

Cloud Smart Home. Parti 1: Kontrollur u sensuri
(ikklikkja fuq l-istampa biex tiftaħha b'riżoluzzjoni ogħla)

Il-funzjoni ewlenija tal-interface grafika hija li tikkonnettja tagħmir tad-dar intelliġenti (kameras ta 'sorveljanza IP u sensuri) mal-kontrollur. L-applikazzjoni tal-web taqra l-konfigurazzjoni u l-istat attwali tal-kontrollur u l-apparati konnessi miegħu mid-database SQLite. Biex tibdel il-konfigurazzjoni tal-kontrollur, tibgħat kmandi ta 'kontroll f'format JSON permezz tal-interface API RESTful tal-proċess tas-server.

Proċess tas-server

Proċess tas-server - komponent ewlieni li jwettaq ix-xogħol ewlieni kollu dwar l-awtomatizzazzjoni tal-proċessi ta 'informazzjoni li jiffurmaw il-bażi ta' dar intelliġenti: jirċievi u jipproċessa data sensorja, joħroġ azzjonijiet ta 'kontroll skont il-loġika inkorporata. L-għan tal-proċess tas-server huwa li jinteraġixxi ma 'tagħmir tad-dar intelliġenti, tesegwixxi regoli loġiċi ta' produzzjoni, tirċievi u tipproċessa kmandi mill-interface grafika u l-cloud. Il-proċess tas-server fil-kontrollur tad-dar intelliġenti li qed jiġi kkunsidrat huwa implimentat bħala applikazzjoni b'ħafna ħajt żviluppata f'C++ u mnedija bħala servizz separat systemd sistema operattiva Linux Raspbian.

Il-blokki ewlenin tal-proċess tas-server huma:

  1. Maniġer tal-Messaġġ;
  2. Server tal-kamera IP;
  3. Server tat-tagħmir Z-Wave;
  4. Server ta' regoli loġiċi ta' produzzjoni;
  5. Database tal-konfigurazzjoni tal-kontrollur u blokk tar-regoli loġiċi;
  6. Server API RESTful għall-interazzjoni mal-interface grafika;
  7. Klijent MQTT għall-interazzjoni mal-cloud.

Il-blokok tal-proċess tas-server huma implimentati bħala ħjut separati, li l-informazzjoni bejniethom tiġi trasferita fil-forma ta 'messaġġi fil-format JSON (jew strutturi tad-dejta li jirrappreżentaw dan il-format fil-memorja tal-proċess).

Cloud Smart Home. Parti 1: Kontrollur u sensuri

Il-komponent ewlieni tal-proċess tas-server huwa maniġer tal-messaġġi, li jmur messaġġi JSON lejn il-blokki kollha tal-proċess tas-server. It-tipi ta’ oqsma ta’ informazzjoni tal-messaġġi JSON u l-valuri li jistgħu jaċċettaw huma elenkati fit-tabella:

deviceType
protokoll
MessageType
deviceState
kmand

kamera
onvif
sensorData
on
streaming (Mixgħel/Mitfi)

senser
zwave
kmand
off
reġistrazzjoni (Mixgħul/Mitfi)

effettur
mqtt
businessLogicRule
streaming (Mixgħel/Mitfi)
apparat (Żid/Neħħi)

businessLogic
configurationData
reġistrazzjoni (Mixgħul/Mitfi)

Bluetooth
deviceState
żball

Wifi

rf

Pereżempju, messaġġ minn kamera motion detector jidher bħal dan:

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

Loġika tal-produzzjoni

Biex tirċievi jew tibgħat messaġġ mid-dispatcher, il-blokk tal-proċess tas-server jissottoskrivi għal messaġġi ta 'ċertu tip. L-abbonament huwa regola loġika tal-produzzjoni tat-tip “Jekk... allura...”, ippreżentat f'format JSON, u link għall-immaniġġjar tal-messaġġi ġewwa l-blokk tal-proċess tas-server. Pereżempju, biex tippermetti lis-server tal-kamera IP jirċievi kmandi mill-GUI u mill-sħaba, trid iżżid ir-regola li ġejja:

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

Jekk il-kundizzjonijiet speċifikati fi preċedent (naħa tax-xellug) ir-regoli huma veri, allura huwa sodisfatt konsegwenti (in-naħa tal-lemin), u l-handler ikollu aċċess għall-korp tal-messaġġ JSON. L-anteċedent jappoġġja operaturi loġiċi li jqabblu pari ta’ valuri-ċavetta JSON:

  1. ugwali "ugwali";
  2. mhux ugwali għal "mhux_ugwali";
  3. inqas "inqas";
  4. aktar "akbar";
  5. inqas minn jew ugwali għal "less_or_equal";
  6. akbar minn jew ugwali għal "greater_or_equal".

Ir-riżultati tat-tqabbil jistgħu jkunu relatati ma' xulxin bl-użu ta' operaturi tal-alġebra Boolean:

  1. U "u"
  2. JEW "jew";
  3. MHUX "le".

Għalhekk, billi tikteb operaturi u operandi f'notazzjoni Pollakka, tista 'toħloq kundizzjonijiet pjuttost kumplessi b'numru kbir ta' parametri.

Eżattament l-istess mekkaniżmu, ibbażat fuq messaġġi JSON u regoli ta 'produzzjoni f'format JSON, jintuża fil-blokk tas-server tal-loġika tal-produzzjoni biex jirrappreżenta l-għarfien u jwettaq inferenza loġika bl-użu ta' data sensorja minn sensuri tad-dar intelliġenti.

Bl-użu ta 'applikazzjoni mobbli, l-utent joħloq xenarji li skonthom id-dar intelliġenti għandha tiffunzjona. Pereżempju: "Jekk is-sensor għall-ftuħ tal-bieb ta 'quddiem jinxtegħel, imbagħad ixgħel id-dawl fil-hallway". L-applikazzjoni taqra l-identifikaturi tas-sensuri (sensor tal-ftuħ) u attwaturi (sokit intelliġenti jew fanal intelliġenti) mid-database u tiġġenera regola loġika f'format JSON, li tintbagħat lill-kontrollur tad-dar intelliġenti. Dan il-mekkaniżmu se jiġi diskuss f'aktar dettall fit-tielet artiklu tas-serje tagħna, fejn se nitkellmu dwar l-applikazzjoni tal-klijent għall-ġestjoni ta 'dar intelliġenti.

Il-mekkaniżmu tal-loġika tal-produzzjoni diskuss hawn fuq huwa implimentat bl-użu tal-librerija RapidJSON — SAX parser għall-format JSON f'C++. Il-qari u l-parsing sekwenzjali ta’ firxa ta’ regoli ta’ produzzjoni jagħmluha faċli biex tiġi implimentata l-funzjoni ta’ tqabbil tad-dejta fi ħdan l-anteċedenti:

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);
        }
    }
}

Hawnhekk pFact — struttura li fiha pari ta’ valuri ewlenin minn messaġġ JSON, m_Regoli — firxa ta' strings ta' regoli ta' produzzjoni. It-tqabbil tal-messaġġ li jkun dieħel u r-regola tal-produzzjoni jitwettaq fil-funzjoni reader.Parse(ruleStream, ruleHandler)fejn ruleHandler huwa oġġett li fih il-loġika ta' operaturi Boolean u ta' tqabbil. sRuleId — identifikatur tar-regoli uniku, li bis-saħħa tiegħu huwa possibbli li jinħażnu u jeditjaw regoli ġewwa d-database tal-kontrollur tad-dar intelliġenti. m_pActions — firxa bir-riżultati tal-inferenza loġika: messaġġi JSON li fihom konsegwenzi mill-bażi tar-regoli u mibgħuta aktar lill-maniġer tal-messaġġi sabiex il-fili tal-abbonati jkunu jistgħu jipproċessawhom.

Il-prestazzjoni RapidJSON hija komparabbli mal-funzjoni strlen(), u r-rekwiżiti minimi tar-riżorsi tas-sistema jippermettu l-użu ta 'din il-librerija f'apparati inkorporati. L-użu ta 'messaġġi u regoli loġiċi fil-format JSON jippermettilek li timplimenta sistema flessibbli ta' skambju ta 'informazzjoni bejn il-komponenti kollha tal-kontrollur tad-dar intelliġenti.

Sensuri u Attwaturi Z-Wave

Il-vantaġġ ewlieni ta 'dar intelliġenti huwa li tista' tkejjel b'mod indipendenti diversi parametri tal-ambjent estern u twettaq funzjonijiet utli skont is-sitwazzjoni. Biex tagħmel dan, sensuri u attwaturi huma konnessi mal-kontrollur tad-dar intelliġenti. Fil-verżjoni attwali, dawn huma apparati mingħajr fili li joperaw bl-użu tal-protokoll Z-Wave fuq frekwenza allokata apposta 869 MHz Għar-Russja. Biex joperaw, huma kkombinati f'netwerk tal-malji, li fih ripetituri tas-sinjali biex tiżdied iż-żona ta 'kopertura. L-apparati għandhom ukoll mod speċjali li jiffrankaw l-enerġija - huma jqattgħu ħafna mill-ħin fil-modalità sleep u jibagħtu informazzjoni biss meta l-istat tagħhom jinbidel, li jista 'jestendi b'mod sinifikanti l-ħajja tal-batterija integrata.

Cloud Smart Home. Parti 1: Kontrollur u sensuri

Issa tista 'ssib numru pjuttost kbir ta' apparati Z-Wave differenti fis-suq. Ejja nagħtu ħarsa lejn ftit eżempji:

  1. Is-sokit intelliġenti Zipato PAN16 jista 'jkejjel il-parametri li ġejjin: konsum tal-elettriku (kWh), enerġija (W), vultaġġ (V) u kurrent (A) fin-netwerk elettriku. Għandu wkoll swiċċ mibni li bih tista 'tikkontrolla l-apparat elettriku konness;
  2. Is-sensor tat-tnixxija Neo Coolcam jiskopri l-preżenza ta 'likwidu mxerred billi jagħlaq il-kuntatti tas-sonda remota;
  3. Is-sensorju tad-duħħan Zipato PH-PSG01 jiġi attivat meta partiċelli tad-duħħan jidħlu fil-kamra tal-analizzatur tal-gass;
  4. Is-sensorju tal-moviment Neo Coolcam janalizza r-radjazzjoni infra-aħmar tal-ġisem tal-bniedem. Barra minn hekk hemm sensor tad-dawl (Lx);
  5. Multisensor Philio PST02-A jkejjel it-temperatura (°C), id-dawl (%), il-ftuħ tal-bieb, il-preżenza ta 'persuna fil-kamra;
  6. Kontrollur tan-netwerk Z-Wave USB Stick ZME E UZB1, li miegħu huma konnessi s-sensuri.

Huwa importanti ħafna li l-apparati u l-kontrollur joperaw bl-istess frekwenza, inkella sempliċement ma jarawx lil xulxin fil-mument tal-konnessjoni. Sa 232 apparat jista 'jiġi konness ma' kontrollur wieħed tan-netwerk Z-Wave, li huwa pjuttost biżżejjed għal appartament jew dar tal-pajjiż. Biex tespandi ż-żona tal-kopertura tan-netwerk ġewwa, sokit intelliġenti jista 'jintuża bħala ripetitur tas-sinjal.

Cloud Smart Home. Parti 1: Kontrollur u sensuri

Fil-proċess tas-server tal-kontrollur tad-dar intelliġenti diskuss fil-paragrafu preċedenti, is-server Z-Wave huwa responsabbli għall-interazzjoni ma 'apparati Z-Wave. Juża librerija biex jirċievi informazzjoni minn sensuri OpenZWave f'C++, li jipprovdi interface għall-interazzjoni mal-kontrollur USB tan-netwerk Z-Wave u jaħdem ma 'varjetà ta' sensuri u attwaturi. Il-valur tal-parametru ambjentali mkejjel mis-sensor huwa rreġistrat mis-server Z-Wave fil-forma ta' messaġġ 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"
}

Imbagħad jintbagħat lill-maniġer tal-messaġġi tal-proċess tas-server sabiex il-ħjut tal-abbonat ikunu jistgħu jirċievuh. L-abbonat ewlieni huwa s-server tal-loġika tal-produzzjoni, li jaqbel mal-valuri tal-kamp tal-messaġġi fl-anteċedenti tar-regoli tal-loġika. Ir-riżultati tal-inferenza li fihom il-kmandi tal-kontroll jintbagħtu lura lill-maniġer tal-messaġġi u minn hemm imorru għas-server Z-Wave, li jiddekowdjahom u jibgħathom lill-kontrollur USB tan-netwerk Z-Wave. Imbagħad jidħlu fl-attwatur, li jibdel l-istat ta 'oġġetti ambjentali, u d-dar intelliġenti b'hekk twettaq xogħol utli.

Cloud Smart Home. Parti 1: Kontrollur u sensuri
(ikklikkja fuq l-istampa biex tiftaħha b'riżoluzzjoni ogħla)

Il-konnessjoni ta 'tagħmir Z-Wave isir fl-interface grafika tal-kontrollur tad-dar intelliġenti. Biex tagħmel dan, mur fil-paġna b'lista ta 'apparati u kklikkja l-buttuna "Żid". Il-kmand żid permezz tal-interface tal-API RESTful jidħol fil-proċess tas-server u mbagħad jintbagħat mill-maniġer tal-messaġġi lis-server Z-Wave, li jpoġġi l-kontrollur USB tan-netwerk Z-Wave f'mod speċjali għaż-żieda ta 'apparati. Sussegwentement, fuq l-apparat Z-Wave għandek bżonn tagħmel serje ta 'presses malajr (3 presses fi żmien 1,5 sekondi) tal-buttuna tas-servizz. Il-kontrollur USB jgħaqqad l-apparat man-netwerk u jibgħat informazzjoni dwaru lis-server Z-Wave. Dan, imbagħad, joħloq dħul ġdid fid-database SQLite bil-parametri tal-apparat il-ġdid. Wara intervall ta 'żmien speċifikat, l-interface grafika terġa' lura għall-paġna tal-lista tal-apparat Z-Wave, jaqra informazzjoni mid-database u turi l-apparat il-ġdid fil-lista. Kull apparat jirċievi l-identifikatur uniku tiegħu stess, li jintuża fir-regoli tal-inferenza tal-produzzjoni u meta jaħdem fil-cloud. It-tħaddim ta' dan l-algoritmu jidher fid-dijagramma UML:

Cloud Smart Home. Parti 1: Kontrollur u sensuri
(ikklikkja fuq l-istampa biex tiftaħha b'riżoluzzjoni ogħla)

Konnessjoni tal-kameras IP

Is-sistema tad-dar intelliġenti tas-sħab diskussa f'dan l-artikolu hija aġġornament tas-sistema ta 'sorveljanza bil-vidjo tas-sħab, żviluppata wkoll mill-awtur, li ilha fis-suq għal bosta snin u għandha ħafna installazzjonijiet fir-Russja.

Għal sistemi ta 'sorveljanza bil-vidjo tas-sħab, waħda mill-problemi akuti hija l-għażla limitata ta' tagħmir li bih tista 'titwettaq l-integrazzjoni. Is-softwer responsabbli għall-konnessjoni mal-sħab huwa installat ġewwa l-kamera tal-vidjo, li immedjatament tpoġġi talbiet serji fuq il-ħardwer tagħha - il-proċessur u l-ammont ta 'memorja ħielsa. Dan jispjega prinċipalment il-prezz ogħla tal-kameras CCTV tas-sħab meta mqabbla ma 'kameras IP regolari. Barra minn hekk, huwa meħtieġ stadju twil ta 'negozjati ma' kumpaniji tal-manifattura tal-kameras CCTV biex jinkiseb aċċess għas-sistema tal-fajl tal-kameras u l-għodod ta 'żvilupp kollha meħtieġa.

Cloud Smart Home. Parti 1: Kontrollur u sensuri

Min-naħa l-oħra, il-kameras IP moderni kollha għandhom protokolli standard għall-interazzjoni ma 'tagħmir ieħor (b'mod partikolari, video recorders). Għalhekk, l-użu ta 'kontrollur separat li jgħaqqad permezz ta' protokoll standard u jxandar streams tal-vidjo mill-kameras IP għas-sħaba jipprovdi vantaġġi kompetittivi sinifikanti għas-sistemi ta 'sorveljanza bil-vidjo tas-sħab. Barra minn hekk, jekk il-klijent diġà installat sistema ta 'sorveljanza bil-vidjo bbażata fuq kameras IP sempliċi, allura jsir possibbli li tespandiha u tinbidel f'dar intelliġenti sħaba sħiħa.

L-aktar protokoll popolari għal sistemi ta 'sorveljanza bil-vidjo IP, issa appoġġjat mill-manifatturi kollha tal-kameras IP mingħajr eċċezzjoni, huwa Profil S ONVIF, li l-ispeċifikazzjonijiet tiegħu jeżistu f'lingwa ta' deskrizzjoni tas-servizzi tal-web wsdl. Uża utilitajiet mill-għodda gSOAP Huwa possibbli li jiġi ġġenerat kodiċi sors għal servizzi li jaħdmu ma' kameras 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

Bħala riżultat, aħna jkollna sett ta 'header "*.h" u sors "*.cpp" fajls f'C++, li jistgħu jitqiegħdu direttament f'applikazzjoni jew librerija separata u kkompilati bl-użu tal-kompilatur GCC. Minħabba l-ħafna funzjonijiet, il-kodiċi huwa kbir u jeħtieġ ottimizzazzjoni addizzjonali. Il-mikrokompjuter tal-mudell B + Raspberry Pi 3 għandu prestazzjoni suffiċjenti biex jesegwixxi dan il-kodiċi, iżda jekk ikun hemm bżonn li l-kodiċi jiġi portat għal pjattaforma oħra, huwa meħtieġ li tagħżel l-arkitettura tal-proċessur korretta u r-riżorsi tas-sistema.

Kameras IP li jappoġġjaw l-istandard ONVIF, meta joperaw fuq netwerk lokali, huma konnessi ma 'grupp multicast speċjali bl-indirizz 239.255.255.250. Hemm protokoll WS-Skoperta, li jippermettilek awtomat it-tfittxija għal apparati fuq in-netwerk lokali.

L-interface grafika tal-kontrollur tad-dar intelliġenti timplimenta funzjoni ta 'tfittxija għall-kameras IP f'PHP, li hija konvenjenti ħafna meta jinteraġixxu ma' servizzi tal-web permezz ta 'messaġġi XML. Meta tagħżel oġġetti tal-menu Apparati > Kameras IP > Skennjar L-algoritmu għat-tiftix għal kameras IP huwa mniedi, li juri r-riżultat fil-forma ta 'tabella:

Cloud Smart Home. Parti 1: Kontrollur u sensuri
(ikklikkja fuq l-istampa biex tiftaħha b'riżoluzzjoni ogħla)

Meta żżid kamera mal-kontrollur, tista 'tispeċifika s-settings skont liema se jinteraġixxi mal-sħaba. F'dan l-istadju wkoll, huwa awtomatikament assenjat identifikatur ta 'apparat uniku, li permezz tiegħu jista' aktar tard jiġi identifikat faċilment fi ħdan il-cloud.

Cloud Smart Home. Parti 1: Kontrollur u sensuri

Sussegwentement, jiġi ġġenerat messaġġ f'format JSON li fih il-parametri kollha tal-kamera miżjuda u mibgħut lill-proċess tas-server tal-kontrollur tad-dar intelliġenti permezz tal-kmand API RESTful, fejn il-parametri tal-kamera huma dekodifikati u ssejvjati fid-database interna SQLite, u huma użat ukoll biex iniedi l-ħjut tal-ipproċessar li ġejjin:

  1. l-istabbiliment ta' konnessjoni RTSP biex tirċievi flussi ta' vidjo u awdjo;
  2. transcoding awdjo minn G.711 mu-Liġi, G.711 A-Liġi, G.723, eċċ formati. għall-format AAC;
  3. transkodifikazzjoni ta' streams tal-vidjo f'format H.264 u awdjo f'format AAC f'kontenitur FLV u jittrasmettih lill-cloud permezz tal-protokoll RTMP;
  4. l-istabbiliment ta' konnessjoni mal-endpoint tad-ditekter tal-moviment tal-kamera IP permezz tal-protokoll ONVIF u perjodikament stħarriġ tiegħu;
  5. perjodikament tiġġenera immaġni ta 'previżjoni ta' thumbnail u tibgħatha lill-cloud permezz tal-protokoll MQTT;
  6. reġistrazzjoni lokali ta 'flussi tal-vidjo u awdjo fil-forma ta' fajls separati f'format MP4 fuq karta SD jew Flash tal-kontrollur tad-dar intelliġenti.

Cloud Smart Home. Parti 1: Kontrollur u sensuri

Biex tiġi stabbilita konnessjoni mal-kameras, tittraskodifika, tipproċessa u tirrekordja flussi tal-vidjow fil-proċess tas-server, jintużaw funzjonijiet mil-librerija FFmpeg 4.1.0.

Fl-esperiment tal-ittestjar tal-prestazzjoni, 3 kameras ġew imqabbda mal-kontrollur:

  1. HiWatch DS-I114W (riżoluzzjoni - 720p, format ta 'kompressjoni - H.264, bitrate - 1 Mb/s, ħoss G.711 mu-Liġi);
  2. Microdigital MDC-M6290FTD-1 (riżoluzzjoni - 1080p, format ta 'kompressjoni - H.264, bitrate - 1 Mb/s, l-ebda ħoss);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (riżoluzzjoni - 1080p, format ta 'kompressjoni - H.264, bitrate - 1.5 Mb/s, awdjo AAC).

Cloud Smart Home. Parti 1: Kontrollur u sensuri

It-tliet flussi ħarġu fl-istess ħin fis-sħaba, it-transcoding tal-awdjo twettqet minn kamera waħda biss, u r-reġistrazzjoni tal-arkivji lokali kienet diżattivata. It-tagħbija tas-CPU kienet ta 'madwar 5%, l-użu ta' RAM kien 32 MB (għal kull proċess), 56 MB (total inkluż OS).

Għalhekk, madwar 20 - 30 kamera jistgħu jiġu konnessi mal-kontrollur tad-dar intelliġenti (skont ir-riżoluzzjoni u l-bitrate), li huwa biżżejjed għal sistema ta 'sorveljanza bil-vidjo għal cottage ta' tliet sulari jew maħżen żgħir. Għal ħidmiet li jeħtieġu prestazzjoni akbar, tista 'tuża nettop b'proċessur Intel multi-core u Linux Debian Sarge OS. Il-kontrollur bħalissa għaddej minn operazzjoni ta' prova, u d-dejta dwar il-prestazzjoni tiegħu se tiġi aġġornata.

Interazzjoni mal-sħaba

Dar intelliġenti bbażata fuq is-sħab taħżen id-dejta tal-utent (kejl tal-vidjow u tas-sensuri) fil-cloud. L-arkitettura tal-ħażna tas-sħab se tiġi diskussa f'aktar dettall fl-artiklu li jmiss fis-serje tagħna. Issa ejja nitkellmu dwar l-interface għat-trażmissjoni ta 'messaġġi ta' informazzjoni mill-kontrollur tad-dar intelliġenti għall-sħaba.

L-istati tal-apparati konnessi u l-kejl tas-sensuri huma trażmessi permezz tal-protokoll MQTT, li ħafna drabi tintuża fi proġetti tal-Internet tal-Oġġetti minħabba s-sempliċità u l-effiċjenza tal-enerġija tagħha. MQTT juża mudell klijent-server, fejn il-klijenti jissottoskrivu għal suġġetti speċifiċi fi ħdan is-sensar u jippubblikaw il-messaġġi tagħhom. Is-sensar jibgħat messaġġi lill-abbonati kollha skont regoli determinati mil-livell QoS (Kwalità tas-Servizz):

  • QoS 0 - massimu ta' darba (l-ebda garanzija ta' kunsinna);
  • QoS 1 - mill-inqas darba (b'konferma tal-kunsinna);
  • QoS 2 - eżattament darba (b'konferma addizzjonali tal-kunsinna).

Fil-każ tagħna, nużaw Eclipse Mosquito. L-isem tas-suġġett huwa l-identifikatur uniku tal-kontrollur tad-dar intelliġenti. Il-klijent MQTT ġewwa l-proċess tas-server jissottoskrivi għal dan is-suġġett u jittraduċi messaġġi JSON li ġejjin mill-maniġer tal-messaġġi fih. Bil-maqlub, messaġġi mis-sensar MQTT jintbagħtu minnu lill-maniġer tal-messaġġi, li mbagħad jimmultiplexjahom lill-abbonati tiegħu fil-proċess tas-server:

Cloud Smart Home. Parti 1: Kontrollur u sensuri

Biex tittrasmetti messaġġi dwar l-istatus tal-kontrollur tad-dar intelliġenti, jintuża l-mekkaniżmu ta 'messaġġi ffrankati messaġġi miżmuma Protokoll MQTT. Dan jippermettilek timmonitorja b'mod korrett iż-żmien tal-konnessjonijiet mill-ġdid waqt ħsarat fl-enerġija.

Il-klijent MQTT ġie żviluppat ibbażat fuq l-implimentazzjoni tal-librerija Eklissi Paho fil-lingwa C++.

Il-flussi tal-midja H.264 + AAC jintbagħtu lill-cloud permezz tal-protokoll RTMP, fejn grupp ta 'servers tal-midja huwa responsabbli għall-ipproċessar u l-ħażna tagħhom. Biex tqassam bl-aħjar mod it-tagħbija fil-cluster u tagħżel is-server tal-midja l-inqas mgħobbi, il-kontrollur tad-dar intelliġenti jagħmel talba preliminari lill-balancer tat-tagħbija tas-sħab u biss wara li jibgħat il-fluss tal-midja.

Konklużjoni

L-artikolu eżamina implimentazzjoni speċifika waħda ta 'kontrollur tad-dar intelliġenti bbażat fuq il-mikrokompjuter Raspberry Pi 3 B +, li jista' jirċievi, jipproċessa informazzjoni u tagħmir ta 'kontroll permezz tal-protokoll Z-Wave, jinteraġixxi ma' kameras IP permezz tal-protokoll ONVIF, u wkoll jiskambja data u jikkmanda bil-cloud.servizz permezz ta' protokolli MQTT u RTMP. Ġiet żviluppata magna loġika tal-produzzjoni bbażata fuq paragun tar-regoli loġiċi u l-fatti ppreżentati fil-format JSON.

Il-kontrollur tad-dar intelliġenti bħalissa għaddej minn operazzjoni ta 'prova f'diversi siti f'Moska u fir-reġjun ta' Moska.

Il-verżjoni li jmiss tal-kontrollur tippjana li tikkonnettja tipi oħra ta 'apparat (RF, Bluetooth, WiFi, bil-fili). Għall-konvenjenza tal-utenti, il-proċedura għall-konnessjoni tas-sensuri u l-kameras IP se tiġi trasferita għall-applikazzjoni mobbli. Hemm ukoll ideat għall-ottimizzazzjoni tal-kodiċi tal-proċess tas-server u l-portabbiltà tas-softwer għas-sistema operattiva OpenWrt. Dan jippermettilek tiffranka fuq kontrollur separat u tittrasferixxi l-funzjonalità ta 'dar intelliġenti għal router tad-dar regolari.

Sors: www.habr.com

Żid kumment