Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Jodi a, gras a devlopman rapid nan mikwo-elektwonik, chanèl kominikasyon, teknoloji entènèt ak entèlijans atifisyèl, sijè a nan kay entelijan ap vin pi plis ak plis enpòtan. Lojman moun te sibi chanjman enpòtan depi laj wòch la ak nan epòk Revolisyon Endistriyèl 4.0 ak entènèt la nan bagay sa yo, li te vin konfòtab, fonksyonèl ak an sekirite. Solisyon yo ap vini sou mache a ki fè yon apatman oswa yon kay peyi nan sistèm enfòmasyon konplèks kontwole soti nan nenpòt kote nan mond lan lè l sèvi avèk yon smartphone. Anplis, entèraksyon moun-machin pa mande konesans ankò nan lang pwogramasyon - gras a rekonesans lapawòl ak algoritm sentèz, yon moun pale ak yon kay entelijan nan lang natif natal yo.

Gen kèk sistèm lakay entelijan kounye a sou mache a se yon devlopman lojik nan sistèm siveyans videyo nwaj, devlopè yo ki reyalize bezwen an pou yon solisyon konplè pa sèlman pou siveyans, men tou pou jere objè aleka.

Nou prezante nan atansyon ou yon seri de twa atik, ki pral di w sou tout eleman prensipal yo nan yon nwaj sistèm lakay entelijan, pèsonèlman devlope pa otè a ak mete nan operasyon. Premye atik la konsakre nan ekipman kliyan tèminal enstale andedan yon kay entelijan, dezyèm lan nan achitekti nan depo nwaj la ak sistèm pwosesis done, epi finalman, twazyèm lan nan aplikasyon an kliyan pou jere sistèm nan sou aparèy mobil ak estasyonè.

Ekipman lakay entelijan

Premyèman, ann pale sou ki jan fè yon kay entelijan soti nan yon apatman òdinè, dacha oswa kaye. Pou fè sa, kòm yon règ, li nesesè yo mete ekipman sa yo nan kay la:

  1. detèktè ki mezire divès paramèt anviwònman ekstèn;
  2. actuators ki aji sou objè ekstèn;
  3. yon kontwolè ki fè kalkil an akò ak mezi Capteur ak lojik entegre, epi bay kòmandman aktuateurs.

Figi sa a montre yon dyagram nan yon kay entelijan, kote gen detèktè pou flit dlo (1) nan twalèt la, tanperati (2) ak ekleraj (3) nan chanm lan, yon priz entelijan (4) nan kwizin nan ak yon kamera siveyans videyo (5) nan koulwa a.

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Kounye a, detèktè san fil opere lè l sèvi avèk pwotokòl RF433, Z-Wave, ZigBee, Bluetooth ak WiFi yo lajman itilize. Avantaj prensipal yo se fasilite nan enstalasyon ak itilizasyon, osi byen ke pri ki ba ak fyab, paske Manifakti yo ap fè efò pou pote aparèy yo nan mache an mas epi fè yo aksesib a itilizatè mwayèn.

An jeneral, detèktè ak actuators konekte atravè yon koòdone san fil ak yon kontwolè kay entelijan (6) - yon mikwo-òdinatè espesyalize ki konbine tout aparèy sa yo nan yon rezo sèl epi kontwole yo.

Sepandan, kèk solisyon ka konbine yon Capteur, yon actuator ak yon kontwolè an menm tan. Pou egzanp, yon ploge entelijan ka pwograme pou limen oswa etenn selon yon orè, ak yon kamera siveyans videyo nwaj ka anrejistre videyo ki baze sou yon siyal detektè mouvman. Nan ka ki pi senp yo, ou ka fè san yo pa yon kontwolè separe, men yo kreye yon sistèm fleksib ak anpil senaryo, li nesesè.

Pou konekte kontwolè entelijan kay la nan rezo mondyal la, yo ka itilize yon routeur Entènèt regilye (7), ki depi lontan vin tounen yon aparèy kay komen nan nenpòt kay. Isit la gen yon lòt agiman an favè yon kontwolè kay entelijan - si koneksyon an nan entènèt la pèdi, kay la entelijan ap kontinye opere kòm nòmal gras a blòk la lojik ki estoke andedan kontwolè a, epi yo pa nan sèvis nwaj la.

Kontwolè lakay entelijan

Kontwolè pou sistèm nan kay entelijan nwaj diskite nan atik sa a devlope ki baze sou yon mikwo-kopitè sèl-tablo Franbwaz Pi 3 modèl B+, ki te lage nan mwa mas 2018 e ki gen ase resous ak pèfòmans pou travay lakay entelijan. Li gen ladann yon processeur kwadwilatè Cortex-A53 ki baze sou 64-bit ARMv8-A achitekti, revèy nan 1.4 GHz, osi byen ke 1 GB RAM, Wi-Fi 802.11ac, Bluetooth 4.2 ak yon gigabit Ethernet adaptè opere atravè USB 2.0. .

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Asanble kontwolè a se trè senp - mikwo-òdinatè a (1) enstale nan yon ka plastik (2), Lè sa a, yon kat memwa 8 GB nan fòma microSD ak lojisyèl (3) ak yon USB Z-Wave rezo kontwolè (4) enstale nan fant korespondan yo. Kontwolè entelijan kay la konekte ak ekipman pou pouvwa a atravè yon adaptè pouvwa 5V, 2.1A (5) ak yon USB - mikwo-USB kab (6). Chak kontwolè gen yon nimewo idantifikasyon inik, ki ekri nan fichye konfigirasyon an lè yo te lanse premye e li nesesè pou kominike avèk sèvis kay entelijan nwaj yo.

Lojisyèl kontwolè kay entelijan te devlope pa otè atik sa a ki baze sou sistèm operasyon an Linux Raspbian Detire. Li konsiste de subsistèm prensipal sa yo:

  • pwosesis sèvè pou entèraksyon ak ekipman lakay entelijan ak nwaj la;
  • koòdone itilizatè grafik pou mete konfigirasyon ak paramèt opere kontwolè a;
  • baz done pou estoke konfigirasyon kontwolè.

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Baz done se kontwolè kay entelijan aplike ki baze sou yon DBMS entegre SQLite epi li se yon dosye sou yon kat SD ak lojisyèl sistèm. Li sèvi kòm yon depo pou konfigirasyon kontwolè a - enfòmasyon sou ekipman an konekte ak eta aktyèl li yo, yon blòk nan règ pwodiksyon lojik, osi byen ke enfòmasyon ki mande pou Indexing (pa egzanp, non dosye nan yon achiv videyo lokal). Lè kontwolè a rdemare, enfòmasyon sa yo sove, sa ki fè li posib retabli kontwolè a nan ka yon echèk kouran.

Entèfas kontwolè kay entelijan devlope nan PHP 7 lè l sèvi avèk yon mikroframework Slim. Sèvè entènèt la responsab pou kouri aplikasyon an. lighttpd, souvan yo itilize nan aparèy entegre akòz bon pèfòmans li yo ak kondisyon resous ki ba.

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè
(Klike sou foto a pou ouvri nan pi wo rezolisyon)

Fonksyon prensipal la nan koòdone grafik la se konekte ekipman lakay entelijan (kamera siveyans IP ak detèktè) nan kontwolè a. Aplikasyon entènèt la li konfigirasyon ak eta aktyèl kontwolè a ak aparèy ki konekte ak li nan baz done SQLite. Pou chanje konfigirasyon kontwolè a, li voye kòmandman kontwòl nan fòma JSON atravè koòdone API RESTful pwosesis sèvè a.

Pwosesis sèvè

Pwosesis sèvè - yon eleman kle ki fè tout travay prensipal yo sou otomatik enfòmasyon pwosesis ki fòme baz yon kay entelijan: resevwa ak trete done sansoryèl, bay aksyon kontwòl depann sou lojik la entegre. Objektif pwosesis sèvè a se kominike avèk ekipman lakay entelijan, egzekite règ lojik pwodiksyon, resevwa ak trete kòmandman ki soti nan koòdone grafik la ak nwaj la. Pwosesis sèvè nan kontwolè kay entelijan ki anba konsiderasyon an aplike kòm yon aplikasyon milti-threaded devlope nan C++ epi lanse kòm yon sèvis separe. systemd sistèm opere Linux Raspbian.

Blòk prensipal yo nan pwosesis sèvè a se:

  1. Manadjè Mesaj;
  2. sèvè kamera IP;
  3. Sèvè aparèy Z-Wave;
  4. Sèvè pwodiksyon règ lojik;
  5. Baz done konfigirasyon kontwolè a ak blòk règ lojik;
  6. RESTful sèvè API pou entèraksyon ak koòdone grafik la;
  7. Kliyan MQTT pou kominike avèk nwaj la.

Blòk pwosesis sèvè yo aplike kòm fil separe, enfòmasyon ant yo transfere nan fòm mesaj nan fòma JSON (oswa estrikti done ki reprezante fòma sa a nan memwa pwosesis).

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Eleman prensipal la nan pwosesis sèvè a se manadjè mesaj, ki voye mesaj JSON nan tout blòk pwosesis sèvè. Kalite jaden enfòmasyon JSON mesaj ak valè yo ka aksepte yo ki nan lis nan tablo a:

deviceType
pwotokòl
messageType
deviceState
lòd

kamera
onvif
sensorData
on
difizyon (Oumen / Off)

Capteur
zwave
lòd
Off
anrejistreman (Oumen / Off)

efèkteur
mqtt
businessLogicRule
difizyon (Oumen / Off)
aparèy (Ajoute/Retire)

biznisLogic
configurationData
anrejistreman (Oumen / Off)

Bluetooth
deviceState
erè

wifi

rf

Pou egzanp, yon mesaj ki soti nan yon detektè mouvman kamera sanble sa a:

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

Lojik pwodiksyon an

Pou resevwa oswa voye yon mesaj soti nan dispatcher la, blòk pwosesis sèvè a abònman nan mesaj nan yon sèten kalite. Abònman se yon règ pwodiksyon lojik nan kalite a "Si... Lè sa a...", prezante nan fòma JSON, ak yon lyen pou moun kap okipe mesaj la andedan blòk pwosesis sèvè a. Pou egzanp, pou pèmèt sèvè kamera IP a resevwa kòmandman ki soti nan entèfas ak nwaj la, ou bezwen ajoute règ sa a:

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

Si kondisyon yo espesifye nan antecedent (bò gòch) règ yo se verite, Lè sa a, li satisfè konsekan (bò dwat) règ yo, ak moun kap okipe a jwenn aksè nan kò a nan mesaj JSON la. Antesedan an sipòte operatè lojik ki konpare pè kle-valè JSON:

  1. egal "egal";
  2. pa egal a "pa_egal";
  3. mwens "mwens";
  4. plis "pi gwo";
  5. mwens pase oswa egal a "less_or_equal";
  6. pi gran pase oswa egal a "greater_or_equal".

Rezilta konparezon yo ka gen rapò youn ak lòt lè l sèvi avèk operatè aljèb Boolean:

  1. Ak "ak"
  2. OSWA "oswa";
  3. PA "pa".

Kidonk, lè w ekri operatè ak operand nan notasyon Polonè, ou ka kreye kondisyon byen konplèks ak yon gwo kantite paramèt.

Egzakteman menm mekanis, ki baze sou mesaj JSON ak règ pwodiksyon an fòma JSON, yo itilize nan blòk sèvè lojik pwodiksyon an pou reprezante konesans ak pote soti nan enferans lojik lè l sèvi avèk done sansoryèl ki soti nan detèktè kay entelijan.

Sèvi ak yon aplikasyon mobil, itilizatè a kreye senaryo dapre ki kay la entelijan ta dwe fonksyone. Pa egzanp: "Si Capteur a pou louvri pòt devan an deklanche, Lè sa a, limen limyè a nan koulwa a". Aplikasyon an li idantifyan detèktè (capteur ouvèti) ak actuators (priz entelijan oswa lanp entelijan) nan baz done a epi jenere yon règ ki lojik nan fòma JSON, ki voye bay kontwolè kay entelijan an. Mekanis sa a pral diskite an plis detay nan twazyèm atik la nan seri nou an, kote nou pral pale sou aplikasyon kliyan an pou jere yon kay entelijan.

Mekanis lojik pwodiksyon diskite pi wo a aplike lè l sèvi avèk bibliyotèk la RapidJSON — Analizeur SAX pou fòma JSON nan C++. Lekti ak analiz sekans nan yon seri règ pwodiksyon pèmèt ou fasilman aplike fonksyon konparezon done andedan 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);
        }
    }
}

Isit la pReyalite — yon estrikti ki gen pè kle-valè ki soti nan yon mesaj JSON, m_Règ - seri règ pwodiksyon an. Se konparezon an nan mesaj la fèk ap rantre ak règ pwodiksyon an te pote soti nan fonksyon an reader.Parse(ruleStream, ruleHandler)kote ruleHandler se yon objè ki genyen lojik Boolean ak operatè konparezon. sRuleId — yon idantifyan règ inik, gras a ki li posib pou estoke ak modifye règ andedan baz done kontwolè kay entelijan. m_pActions — yon etalaj ki gen rezilta yo nan enferans lojik: mesaj JSON ki gen konsekans nan baz la règ epi yo voye pi lwen bay manadjè a mesaj pou fil abònen yo ka trete yo.

Pèfòmans RapidJSON konparab ak fonksyon an strlen(), ak kondisyon minimòm resous sistèm pèmèt itilize bibliyotèk sa a nan aparèy entegre. Itilizasyon mesaj ak règ lojik nan fòma JSON pèmèt ou aplike yon sistèm fleksib echanj enfòmasyon ant tout konpozan kontwolè entelijan kay la.

Z-Wave Detèktè ak actuators

Avantaj prensipal la nan yon kay entelijan se ke li ka poukont mezire paramèt divès kalite nan anviwònman an ekstèn ak fè fonksyon itil depann sou sitiyasyon an. Pou fè sa, detèktè ak actuators yo konekte ak kontwolè kay entelijan. Nan vèsyon aktyèl la, sa yo se aparèy san fil opere lè l sèvi avèk pwotokòl la Z-Vag sou yon frekans espesyalman asiyen 869 megaèrts Pou Larisi. Pou opere, yo konbine nan yon rezo may, ki gen repete siyal pou ogmante zòn pwoteksyon an. Aparèy yo gen tou yon mòd ekonomize enèji espesyal - yo pase pi fò nan tan an nan mòd dòmi epi voye enfòmasyon sèlman lè eta yo chanje, sa ki ka siyifikativman pwolonje lavi a nan batri a bati-an.

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Koulye a, ou ka jwenn yon gwo kantite diferan aparèy Z-Wave sou mache a. Ann pran yon gade nan kèk egzanp:

  1. Priz entelijan Zipato PAN16 ka mezire paramèt sa yo: konsomasyon elektrisite (kWh), pouvwa (W), vòltaj (V) ak aktyèl (A) nan rezo elektrik la. Li tou gen yon switch entegre ak ki ou ka kontwole aparèy elektrik ki konekte;
  2. Capteur a koule Neo Coolcam detekte prezans nan likid ki koule atè pa fèmen kontak yo nan sond la aleka;
  3. Capteur lafimen Zipato PH-PSG01 deklanche lè patikil lafimen antre nan chanm analizeur gaz la;
  4. Capteur mouvman Neo Coolcam analize radyasyon enfrawouj kò imen an. Anplis de sa, gen yon Capteur limyè (Lx);
  5. Multisensor Philio PST02-A mezire tanperati (°C), limyè (%), ouvèti pòt, prezans yon moun nan chanm nan;
  6. Z-Wave USB Stick ZME E UZB1 rezo kontwolè, ak ki detèktè yo konekte.

Li trè enpòtan ke aparèy yo ak kontwolè a opere nan menm frekans, otreman yo tou senpleman pa pral wè youn ak lòt nan moman koneksyon an. Jiska 232 aparèy ka konekte nan yon sèl kontwolè rezo Z-Wave, ki ase ase pou yon apatman oswa yon kay peyi. Pou elaji zòn pwoteksyon rezo a andedan kay la, yo ka itilize yon priz entelijan kòm yon repete siyal.

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Nan pwosesis sèvè kontwolè entelijan lakay yo diskite nan paragraf anvan an, sèvè Z-Wave a responsab pou kominike avèk aparèy Z-Wave. Li itilize yon bibliyotèk pou resevwa enfòmasyon nan detèktè yo OpenZWave nan C++, ki bay yon koòdone pou kominike avèk kontwolè USB rezo Z-Wave ak travay ak yon varyete detèktè ak actuators. Valè paramèt anviwònman an mezire pa Capteur a anrejistre pa sèvè Z-Wave a nan fòm yon mesaj 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"
}

Lè sa a, li voye bay manadjè mesaj pwosesis sèvè a pou fil abònen yo ka resevwa li. Abònen prensipal la se sèvè lojik pwodiksyon an, ki koresponn ak valè jaden mesaj yo nan ansyen règ lojik yo. Rezilta yo enferans ki gen kòmandman kontwòl yo voye tounen bay manadjè mesaj la epi soti nan ale nan sèvè a Z-Wave, ki dekode yo epi voye yo nan kontwolè USB rezo Z-Wave la. Lè sa a, yo antre nan actuator a, ki chanje eta a nan objè anviwònman an, ak kay la entelijan konsa fè travay itil.

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè
(Klike sou foto a pou ouvri nan pi wo rezolisyon)

Konekte aparèy Z-Wave fèt nan koòdone grafik kontwolè entelijan kay la. Pou fè sa, ale nan paj la ak yon lis aparèy epi klike sou bouton "Ajoute". Kòmandman an ajoute atravè koòdone API RESTful la antre nan pwosesis sèvè a epi manadjè mesaj la voye l sou sèvè Z-Wave, ki mete kontwolè USB rezo Z-Wave a nan yon mòd espesyal pou ajoute aparèy. Apre sa, sou aparèy Z-Wave a ou bezwen fè yon seri de près rapid (3 près nan 1,5 segonn) nan bouton sèvis la. Kontwolè USB a konekte aparèy la ak rezo a epi voye enfòmasyon sou li nan sèvè Z-Wave la. Sa, nan vire, kreye yon nouvo antre nan baz done a SQLite ak paramèt yo nan nouvo aparèy la. Apre yon entèval tan espesifik, koòdone grafik la retounen nan paj lis aparèy Z-Wave, li enfòmasyon ki soti nan baz done a epi montre nouvo aparèy la nan lis la. Chak aparèy resevwa idantifyan inik li yo, ki itilize nan règ pwodiksyon pwodiksyon ak lè w ap travay nan nwaj la. Operasyon algorithm sa a montre nan dyagram UML la:

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè
(Klike sou foto a pou ouvri nan pi wo rezolisyon)

Konekte kamera IP

Sistèm nan kay entelijan nwaj diskite nan atik sa a se yon ajou nan sistèm siveyans videyo nwaj la, tou devlope pa otè a, ki te sou mache a pou plizyè ane e li gen anpil enstalasyon nan Larisi.

Pou sistèm siveyans videyo nwaj yo, youn nan pwoblèm egi yo se seleksyon limite ekipman ak entegrasyon ki ka fèt. Lojisyèl ki responsab pou konekte ak nwaj la enstale andedan kamera videyo a, ki imedyatman mete demand grav sou pyès ki nan konpitè li yo - processeur a ak kantite memwa gratis. Sa a sitou eksplike pri ki pi wo nan nwaj CCTV kamera konpare ak kamera IP regilye. Anplis de sa, yon etap long nan negosyasyon ak konpayi fabrikasyon kamera CCTV oblije jwenn aksè nan sistèm nan dosye kamera ak tout zouti devlopman ki nesesè yo.

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Nan lòt men an, tout kamera IP modèn gen pwotokòl estanda pou entèraksyon ak lòt ekipman (an patikilye, anrejistrè videyo). Kidonk, itilizasyon yon kontwolè separe ki konekte atravè yon pwotokòl estanda epi difize kouran videyo soti nan kamera IP nan nwaj la bay gwo avantaj konpetitif pou sistèm siveyans videyo nwaj yo. Anplis, si kliyan an te deja enstale yon sistèm siveyans videyo ki baze sou kamera IP senp, Lè sa a, li vin posib yo elaji li epi vire l 'nan yon nwaj plen véritable kay entelijan.

Pwotokòl ki pi popilè pou sistèm siveyans videyo IP, kounye a sipòte pa tout manifaktirè kamera IP san eksepsyon, se ONVIF Profile S, ki gen espesifikasyon egziste nan yon lang deskripsyon sèvis entènèt wsdl. Sèvi ak sèvis piblik ki soti nan bwat zouti a gSOAP Li posib pou jenere kòd sous pou sèvis ki travay ak 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

Kòm yon rezilta, nou jwenn yon seri header "*.h" ak sous "*.cpp" fichye nan C++, ki ka mete dirèkteman nan yon aplikasyon oswa yon bibliyotèk separe epi konpile lè l sèvi avèk konpilatè GCC la. Akòz fonksyon yo anpil, kòd la gwo epi li mande pou optimize adisyonèl. Mikwo òdinatè Raspberry Pi 3 modèl B + a gen ase pèfòmans pou egzekite kòd sa a, men si gen yon bezwen pò kòd la nan yon lòt platfòm, li nesesè yo chwazi achitekti processeur kòrèk la ak resous sistèm.

Kamera IP ki sipòte estanda ONVIF la, lè yo opere sou yon rezo lokal yo, yo konekte ak yon gwoup espesyal multicast ak adrès la. 239.255.255.250. Gen yon pwotokòl WS-Dekouvèt, ki pèmèt ou otomatize rechèch la pou aparèy sou rezo lokal la.

Koòdone grafik kontwolè entelijan kay la aplike yon fonksyon rechèch pou kamera IP nan PHP, ki trè pratik lè w ap kominike avèk sèvis entènèt atravè mesaj XML. Lè w ap chwazi atik meni yo Aparèy > Kamera IP > Analyse Algorithm pou chèche kamera IP lanse, li montre rezilta a nan fòm yon tablo:

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè
(Klike sou foto a pou ouvri nan pi wo rezolisyon)

Lè ou ajoute yon kamera nan kontwolè a, ou ka presize anviwònman yo dapre ki li pral kominike avèk nwaj la. Epitou nan etap sa a, li otomatikman asiyen yon idantifyan aparèy inik, pa ki li ka pita fasil idantifye nan nwaj la.

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Apre sa, yo pwodwi yon mesaj nan fòma JSON ki gen tout paramèt kamera ki te ajoute a epi yo voye l nan pwosesis sèvè kontwolè entelijan kay la atravè kòmandman API RESTful la, kote paramèt kamera yo dekode epi sove nan baz done SQLite entèn la, epi yo se. itilize tou pou lanse fil pwosesis sa yo:

  1. etabli yon koneksyon RTSP pou resevwa kouran videyo ak odyo;
  2. transkodaj odyo soti nan G.711 mu-Law, G.711 A-Law, G.723, elatriye fòma. nan fòma AAC;
  3. transkode kouran videyo nan fòma H.264 ak odyo nan fòma AAC nan yon veso FLV epi transmèt li nan nwaj la atravè pwotokòl la RTMP;
  4. etabli yon koneksyon ak pwen final la nan detektè mouvman kamera IP atravè pwotokòl ONVIF la epi detanzantan sondaj li;
  5. detanzantan jenere yon imaj miniature aperçu epi voye li nan nwaj la atravè pwotokòl MQTT la;
  6. anrejistreman lokal videyo ak kouran odyo nan fòm fichye separe nan fòma MP4 sou yon kat SD oswa Flash nan kontwolè entelijan kay la.

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Pou etabli yon koneksyon ak kamera, transkode, trete ak anrejistre videyo kouran nan pwosesis sèvè a, yo itilize fonksyon bibliyotèk la. Fanpèg 4.1.0.

Nan eksperyans tès pèfòmans lan, 3 kamera yo te konekte ak kontwolè a:

  1. HiWatch DS-I114W (rezolisyon - 720p, fòma konpresyon - H.264, bitrate - 1 Mb/s, son G.711 mu-Law);
  2. Microdigital MDC-M6290FTD-1 (rezolisyon - 1080p, fòma konpresyon - H.264, bitrate - 1 Mb / s, pa gen okenn son);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (rezolisyon - 1080p, fòma konpresyon - H.264, bitrate - 1.5 Mb / s, AAC odyo).

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Tout twa kouran yo te an menm tan soti nan nwaj la, transkodaj odyo te pote soti nan yon sèl kamera, ak anrejistreman achiv lokal yo te enfim. Chaj CPU te apeprè 5%, itilizasyon RAM te 32 MB (pa pwosesis), 56 MB (total ki gen ladan OS).

Kidonk, apeprè 20 - 30 kamera ka konekte ak kontwolè kay entelijan (selon rezolisyon ak bitrate), ki ase pou yon sistèm siveyans videyo pou yon kaye twa etaj oswa yon ti depo. Pou travay ki mande pou pi gwo pèfòmans, ou ka itilize yon netop ak yon processeur Intel milti-nwayo ak Linux Debian Sarge OS. Kontwolè a se kounye a sibi operasyon esè, epi done sou pèfòmans li yo pral mete ajou.

Entèaksyon ak nwaj la

Yon kay entelijan ki baze sou nwaj estoke done itilizatè (mezi videyo ak detèktè) nan nwaj la. Achitekti nan depo nwaj yo pral diskite an plis detay nan pwochen atik la nan seri nou an. Koulye a, ann pale sou koòdone pou transmèt mesaj enfòmasyon ki soti nan kontwolè entelijan kay la nan nwaj la.

Eta yo nan aparèy konekte ak mezi Capteur yo transmèt atravè pwotokòl la MQTT, ki souvan itilize nan pwojè Entènèt bagay akòz senplisite li yo ak efikasite enèji. MQTT sèvi ak yon modèl kliyan-sèvè, kote kliyan abònman nan sijè espesifik nan koutye a epi pibliye mesaj yo. Koutye a voye mesaj bay tout abonnés dapre règleman ki detèmine pa nivo QoS (Kalite Sèvis):

  • QoS 0 - maksimòm yon fwa (pa gen okenn garanti livrezon);
  • QoS 1 - omwen yon fwa (ak konfimasyon livrezon);
  • QoS 2 - egzakteman yon fwa (ak konfimasyon livrezon adisyonèl).

Nan ka nou an, nou itilize Eclipse moustik. Non sijè a se idantifyan inik nan kontwolè kay entelijan an. Kliyan MQTT anndan pwosesis sèvè a abònman ak sijè sa a epi li tradwi mesaj JSON ki soti nan manadjè mesaj la. Okontrè, mesaj ki soti nan koutye MQTT yo voye pa li bay manadjè mesaj la, ki Lè sa a, multiplexes yo bay abonnés li yo andedan pwosesis sèvè a:

Cloud Smart Kay. Pati 1: Kontwolè ak detèktè

Pou transmèt mesaj sou estati kontwolè entelijan kay la, yo itilize mekanis mesaj sove yo kenbe mesaj yo MQTT pwotokòl. Sa a pèmèt ou kòrèkteman kontwole distribisyon an nan rekoneksyon pandan echèk kouran.

Kliyan MQTT la te devlope baze sou aplikasyon bibliyotèk la Eklips Paho nan lang C++.

H.264 + AAC kouran medya yo voye nan nwaj la atravè pwotokòl la RTMP, kote yon gwoup nan sèvè medya yo responsab pou trete ak estoke yo. Pou distribye chaj la nan gwoup la nan fason ki pi bon epi chwazi sèvè medya ki pi piti a, kontwolè entelijan kay la fè yon demann preliminè nan balans chaj nwaj la epi sèlman apre sa voye kouran medya a.

Konklizyon

Atik la egzamine yon aplikasyon espesifik nan yon kontwolè kay entelijan ki baze sou mikwo-odinatè Raspberry Pi 3 B +, ki ka resevwa, trete enfòmasyon ak ekipman kontwòl atravè pwotokòl Z-Wave, kominike avèk kamera IP atravè pwotokòl ONVIF, epi tou echanj done ak kòmandman ak nwaj la sèvis atravè pwotokòl MQTT ak RTMP. Yo devlope yon motè lojik pwodiksyon ki baze sou yon konparezon règ lojik ak reyalite ki prezante nan fòma JSON.

Kontwolè kay entelijan an kounye a ap sibi operasyon esè nan plizyè sit nan Moskou ak rejyon Moskou.

Pwochen vèsyon kontwolè a planifye pou konekte lòt kalite aparèy (RF, Bluetooth, WiFi, branche). Pou konvenyans itilizatè yo, pwosedi pou konekte detèktè ak kamera IP yo pral transfere nan aplikasyon mobil lan. Genyen tou lide pou optimize kòd pwosesis sèvè a ak pòte lojisyèl an nan sistèm operasyon an OpenWrt. Sa a pral pèmèt ou sove sou yon kontwolè separe epi transfere fonksyonalite a nan yon kay entelijan nan yon routeur kay regilye.

Sous: www.habr.com

Add nouvo kòmantè