Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Namuhla, ngenxa yentuthuko esheshayo yama-microelectronics, iziteshi zokuxhumana, ubuchwepheshe be-inthanethi kanye nobuhlakani be-Artificial Intelligence, isihloko samakhaya ahlakaniphile siya ngokuya sisebenza. Izindlu zabantu ziye zaba nezinguquko ezibalulekile kusukela ngeNkathi Yamatshe futhi nangenkathi ye-Industrial Revolution 4.0 kanye ne-Inthanethi Yezinto, sezikhululekile, zisebenza futhi ziphephile. Izixazululo ziyeza emakethe ezishintsha ifulethi noma indlu yezwe ibe izinhlelo zolwazi eziyinkimbinkimbi ezilawulwa kusuka noma yikuphi emhlabeni kusetshenziswa i-smartphone. Ngaphezu kwalokho, ukusebenzisana komshini womuntu akusadingi ulwazi lwezilimi zokuhlela - ngenxa yokuqaphela inkulumo nama-synthesis algorithms, umuntu ukhuluma nekhaya elihlakaniphile ngolimi lwakhe lwendabuko.

Ezinye izinhlelo zasekhaya ezihlakaniphile okwamanje ezimakethe ziyintuthuko enengqondo yezinhlelo zokubhekwa kwevidiyo yamafu, abathuthukisi bakhona ababona isidingo sesixazululo esibanzi hhayi sokuqapha kuphela, kodwa nokuphatha izinto ezikude.

Sethula ekunakekeleni kwakho uchungechunge lwezihloko ezintathu, ezizokutshela ngazo zonke izingxenye eziyinhloko zesistimu yasekhaya ehlakaniphile yamafu, eyakhiwe mathupha umbhali futhi yaqala ukusebenza. I-athikili yokuqala inikezelwe emishinini yeklayenti esibulalayo efakwe ngaphakathi kwekhaya elihlakaniphile, eyesibili ekwakhiweni kwesitoreji samafu nohlelo lokucubungula idatha, futhi ekugcineni, eyesithathu kuhlelo lokusebenza lweklayenti lokuphatha uhlelo kumadivayisi eselula kanye nawomile.

Imishini yasekhaya ehlakaniphile

Okokuqala, ake sikhulume ngendlela yokwenza ikhaya elihlakaniphile liphuma efulethini elivamile, i-dacha noma i-cottage. Ukuze wenze lokhu, njengomthetho, kuyadingeka ukubeka imishini elandelayo ekhaya:

  1. izinzwa ezikala imingcele ehlukahlukene yemvelo;
  2. ama-actuator asebenza ezintweni zangaphandle;
  3. isilawuli esenza izibalo ngokuhambisana nezilinganiso zenzwa kanye nengqondo eshumekiwe, futhi sikhiphe imiyalo kuma-actuator.

Isithombe esilandelayo sibonisa umdwebo wendlu ehlakaniphile, lapho kukhona izinzwa zokuvuza kwamanzi (1) endlini yangasese, izinga lokushisa (2) nokukhanya (3) ekamelweni, isokhethi elihlakaniphile (4) ekhishini kanye ikhamera yokugada ividiyo (5) ephasishi.

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Njengamanje, izinzwa ezingenantambo ezisebenza zisebenzisa i-RF433, Z-Wave, ZigBee, Bluetooth ne-WiFi protocol zisetshenziswa kakhulu. Izinzuzo zabo eziyinhloko kulula ukufakwa nokusetshenziswa, kanye nezindleko eziphansi nokuthembeka, ngoba Abakhiqizi balwela ukuletha izisetshenziswa zabo emakethe enkulu futhi bazenze zifinyeleleke kumsebenzisi ojwayelekile.

Izinzwa nama-actuator, njengomthetho, axhunywe ngesixhumi esibonakalayo esingenantambo kusilawuli sasekhaya esihlakaniphile (6) - i-microcomputer ekhethekile ehlanganisa wonke lawa madivayisi ibe yinethiwekhi eyodwa futhi iwalawule.

Nokho, ezinye izixazululo zingahlanganisa inzwa, i-actuator nesilawuli ngesikhathi esisodwa. Isibonelo, i-smart plug ingahlelwa ukuthi ivuleke noma ivalwe ngokuvumelana neshejuli, futhi ikhamera ye-cloud yokugada ividiyo ingarekhoda ividiyo ngokusekelwe kusiginali yomtshina onyakazayo. Ezimweni ezilula, ungenza ngaphandle kwesilawuli esihlukile, kodwa ukudala uhlelo oluguquguqukayo olunezimo eziningi, kuyadingeka.

Ukuze kuxhunywe isilawuli sasekhaya esihlakaniphile kunethiwekhi yomhlaba wonke, irutha ye-Inthanethi evamile (7) ingasetshenziswa, osekuyisikhathi eside iyinto evamile yasendlini kunoma yiliphi ikhaya. Lapha kukhona enye ingxabano evuna isilawuli sasekhaya esihlakaniphile - uma uxhumano lwe-inthanethi lulahlekile, ikhaya elihlakaniphile lizoqhubeka nokusebenza njengokubonga okujwayelekile ku-logic block egcinwe ngaphakathi kwesilawuli, hhayi kusevisi yefu.

Isilawuli sasekhaya esihlakaniphile

Isilawuli sohlelo lwasekhaya oluhlakaniphile lwamafu okukhulunywe ngalo kulesi sihloko sakhiwe ngokusekelwe kukhompuyutha encane yebhodi elilodwa I-Raspberry Pi 3 imodeli B+, eyakhululwa ngo-March 2018 futhi inezinsiza ezanele nokusebenza kwemisebenzi yasekhaya ehlakaniphile. Ihlanganisa iphrosesa ye-quad-core Cortex-A53 esekelwe ku-64-bit ARMv8-A architecture, eyakhiwe ku-1.4 GHz, kanye no-1 GB we-RAM, i-Wi-Fi 802.11ac, i-Bluetooth 4.2 kanye ne-adaptha ye-gigabit Ethernet esebenza nge-USB 2.0 .

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Ukuhlanganisa isilawuli kulula kakhulu - i-microcomputer (1) ifakwa kukesi lepulasitiki (2), bese kufakwa imemori khadi engu-8 GB ngefomethi ye-microSD enesoftware (3) kanye nesilawuli senethiwekhi ye-USB Z-Wave (4) izikhala ezihambisanayo. Isilawuli sasekhaya esihlakaniphile sixhunywe kugesi nge-5V, i-adaptha yamandla engu-2.1A (5) kanye nekhebula le-USB - micro-USB (6). Isilawuli ngasinye sinenombolo kamazisi eyingqayizivele, ebhalwe efayeleni lokumisa lapho yethulwa okokuqala futhi iyadingeka ukuze uxhumane nezinsiza zasekhaya ezihlakaniphile zamafu.

Isofthiwe yesilawuli sasekhaya ehlakaniphile yakhiwe umbhali wale ndatshana ngokusekelwe ohlelweni lokusebenza I-Linux Raspbian Stretch. Iqukethe amasistimu angaphansi alandelayo:

  • inqubo yeseva yokusebenzelana nemishini yasekhaya ehlakaniphile kanye nefu;
  • isixhumi esibonakalayo somsebenzisi sokusetha ukumisa kanye nemingcele yokusebenza yesilawuli;
  • Isizindalwazi sokugcina ukucushwa kwesilawuli.

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Isizindalwazi Isilawuli sasekhaya esihlakaniphile sisetshenziswa ngokusekelwe ku-DBMS eshumekiwe SQLite futhi iyifayela ekhadini le-SD elinesofthiwe yesistimu. Isebenza njengesitoreji sokucushwa kwesilawuli - ulwazi mayelana nemishini exhunyiwe kanye nesimo sayo samanje, ibhulokhi yemithetho yokukhiqiza enengqondo, kanye nolwazi oludinga ukukhonjwa (isibonelo, amagama wamafayela wengobo yomlando yendawo). Uma isilawuli siqaliswa kabusha, lolu lwazi luyagcinwa, okwenza kube nokwenzeka ukubuyisela isilawuli uma kwenzeka ukwehluleka kwamandla.

Isixhumi esibonakalayo esibonakalayo isilawuli sasekhaya esihlakaniphile esakhiwe ku-PHP 7 sisebenzisa i-microframework Slim. Iseva yewebhu inesibopho sokusebenzisa uhlelo. i-lighttpd, evame ukusetshenziswa kumadivayisi ashumekiwe ngenxa yokusebenza kwayo okuhle nezidingo eziphansi zensiza.

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa
(chofoza esithombeni ukuze uvule ngokulungiswa okukhulu)

Umsebenzi oyinhloko we-graphical interface ukuxhuma imishini yasekhaya ehlakaniphile (amakhamera okuqapha e-IP nezinzwa) kusilawuli. Uhlelo lokusebenza lwewebhu lufunda ukucushwa nesimo samanje sesilawuli namadivayisi axhunywe kuso kusizindalwazi se-SQLite. Ukuze uguqule ukucushwa kwesilawuli, sithumela imiyalo yokulawula ngefomethi ye-JSON ngesixhumi esibonakalayo se-RESTful API senqubo yeseva.

Inqubo yeseva

Inqubo yeseva - ingxenye eyinhloko eyenza wonke umsebenzi oyinhloko wokwenza ngokuzenzakalela izinqubo zolwazi ezakha isisekelo sekhaya elihlakaniphile: ukwamukela nokucubungula idatha yezinzwa, ukukhishwa kwezenzo zokulawula kuye ngokuthi kunengqondo eshumekiwe. Inhloso yenqubo yeseva ukusebenzisana nezinto zokusebenza zasekhaya ezihlakaniphile, ukwenza imithetho enengqondo yokukhiqiza, ukwamukela nokucubungula imiyalo evela kusixhumi esibonakalayo esibonakalayo kanye nefu. Inqubo yeseva kusilawuli sasekhaya esihlakaniphile esicatshangelwayo isetshenziswa njengohlelo lokusebenza olunezintambo eziningi olwakhiwe ku-C++ futhi lwethulwa njengesevisi ehlukile. i-systemd isistimu Esebenzayo I-Linux Raspbian.

Amabhulokhi amakhulu wenqubo yeseva yilawa:

  1. Umphathi Womlayezo;
  2. Iseva yekhamera ye-IP;
  3. Iseva yedivayisi ye-Z-Wave;
  4. Iseva yemithetho enengqondo yokukhiqiza;
  5. Isizindalwazi sokucushwa kwesilawuli kanye nebhulokhi yemithetho enengqondo;
  6. I-RESTful API iseva yokusebenzelana nesixhumi esibonakalayo esinesithombe;
  7. Iklayenti le-MQTT lokusebenzelana nefu.

Amabhulokhi enqubo yeseva asetshenziswa njengochungechunge oluhlukene, ulwazi phakathi kwalo oludluliswa ngendlela yemilayezo ngefomethi ye-JSON (noma izakhiwo zedatha ezimelela le fomethi kumemori yenqubo).

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Ingxenye eyinhloko yenqubo yeseva ithi umphathi womlayezo, ehambisa imilayezo ye-JSON kuwo wonke amabhulokhi enqubo yeseva. Izinhlobo zezinkambu zolwazi lomlayezo we-JSON kanye namanani abangawamukela afakwe kuhlu kuthebula:

deviceType
protocol
umyalezoType
deviceState
umyalo

ikhamera
i-onvif
inzwaData
on
ukusakaza (Kuvuliwe/Kuvaliwe)

inzwa
zwave
umyalo
off
ukurekhoda(Kuvuliwe/Kuvaliwe)

umphumeleli
mqtt
ibhizinisiLogicRule
ukusakaza (Kuvuliwe/Kuvaliwe)
i-evice(Engeza/Susa)

ibhizinisiLogic
configurationData
ukurekhoda(Kuvuliwe/Kuvaliwe)

bluetooth
deviceState
iphutha

i-wifi

rf

Isibonelo, umlayezo ovela kumtshina wekhamera ubukeka kanje:

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

I-logic yokukhiqiza

Ukwamukela noma ukuthumela umlayezo ovela ku-dispatcher, i-block process block ibhalisela imilayezo yohlobo oluthile. Ukubhalisa kuwumthetho wokukhiqiza onengqondo wohlobo "Uma ... bese...", yethulwa ngefomethi ye-JSON, kanye nesixhumanisi esiya kusiphathi somlayezo ngaphakathi kwebhulokhi yenqubo yeseva. Isibonelo, ukuze uvumele iseva yekhamera ye-IP ukuthi ithole imiyalo evela ku-GUI kanye nefu, udinga ukwengeza umthetho olandelayo:

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

Uma izimo ezibalulwe ku okwandulelayo (uhlangothi lwesobunxele) imithetho iyiqiniso, bese iyaneliseka umphumela (uhlangothi lwesokudla) imithetho, futhi isibambi sithola ukufinyelela emzimbeni womlayezo we-JSON. I-antecedent isekela ama-opharetha anengqondo aqhathanisa amapheya enani lokhiye we-JSON:

  1. ilingana "elinganayo";
  2. ayilingani nokuthi "ayilingani";
  3. kancane "kancane";
  4. ngaphezulu "okukhulu";
  5. ngaphansi noma kulingana nokuthi "ngaphansi_noma_ukulingana";
  6. okukhulu noma kulingana nokuthi "greater_or_equal".

Imiphumela yokuqhathanisa ingahlotshaniswa nenye kusetshenziswa ama-opharetha e-algebra e-Boolean:

  1. Futhi "futhi"
  2. NOMA "noma";
  3. HHAYI "cha".

Ngakho-ke, ngokubhala ama-opharetha nama-operands nge-notation yesi-Polish, ungakha izimo eziyinkimbinkimbi ngenani elikhulu lamapharamitha.

Indlela efanayo ncamashi, esekelwe emilayezweni ye-JSON nemithetho yokukhiqiza ngefomethi ye-JSON, isetshenziswa kubhulokhi yeseva enengqondo yokukhiqiza ukumela ulwazi nokwenza ukuqagela okunengqondo kusetshenziswa idatha yezinzwa evela kuzinzwa ezihlakaniphile zasekhaya.

Esebenzisa uhlelo lokusebenza lweselula, umsebenzisi udala izimo ngokuya ngokuthi ikhaya elihlakaniphile kufanele lisebenze kanjani. Ngokwesibonelo: “Uma inzwa yokuvula umnyango wangaphambili icushiwe, khanyisa isibani ephasishi”. Uhlelo lokusebenza lufunda izihlonzi zezinzwa (inzwa yokuvula) nama-actuator (i-smart socket noma ilambu elihlakaniphile) kusukela kusizindalwazi futhi lukhiqize isimiso esinengqondo ngefomethi ye-JSON, ethunyelwa kusilawuli sasekhaya esihlakaniphile. Lo mshini uzoxoxwa kabanzi esihlokweni sesithathu sochungechunge lwethu, lapho sizokhuluma khona ngesicelo seklayenti sokuphatha ikhaya elihlakaniphile.

Indlela yokukhiqiza okuxoxwe ngayo ngenhla isetshenziswa kusetshenziswa umtapo wolwazi I-RapidJSON - Umhlahleli we-SAX wefomethi ye-JSON ku-C++. Ukufunda okulandelanayo nokwehlukanisa izimiso eziningi zokukhiqiza kukuvumela ukuthi usebenzise kalula umsebenzi wokuqhathanisa idatha ngaphakathi kwezandulela:

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

kuyinto pIqiniso - isakhiwo esiqukethe amapheya enani elingukhiye avela kumlayezo we-JSON, m_Imithetho - Uhlu lwemithetho yokukhiqiza. Ukuqhathaniswa komlayezo ongenayo kanye nomthetho wokukhiqiza wenziwa emsebenzini umfundi.Hlula(ruleStream, ruleHandler)kuphi ruleHandler kuyinto equkethe ingqondo ye-Boolean kanye nama-opharetha wokuqhathanisa. sRuleId — isihlonzi somthetho esiyingqayizivele, ngenxa yalokho ukwazi ukugcina nokuhlela imithetho ngaphakathi kwesizindalwazi somlawuli wasekhaya ohlakaniphile. m_pActions - uhlu olunemiphumela yokuqagela okunengqondo: Imilayezo ye-JSON equkethe imiphumela evela kusisekelo somthetho futhi ithunyelwe ngokuqhubekayo kumphathi wemilayezo ukuze imicu yababhalisile ikwazi ukuyicubungula.

Ukusebenza kwe-RapidJSON kuqhathaniswa nomsebenzi strlen(), kanye nezidingo ezincane zensiza yesistimu zivumela ukusetshenziswa kwalo mtapo kumadivayisi ashumekiwe. Ukusetshenziswa kwemilayezo nemithetho enengqondo ngefomethi ye-JSON ikuvumela ukuthi usebenzise uhlelo oluguquguqukayo lokushintshisana ngolwazi phakathi kwazo zonke izingxenye zesilawuli sasekhaya esihlakaniphile.

Izinzwa ze-Z-Wave nama-Actuator

Inzuzo eyinhloko yekhaya elihlakaniphile ukuthi lingakwazi ukulinganisa ngokuzimela imingcele ehlukahlukene yendawo yangaphandle futhi yenze imisebenzi ewusizo kuye ngokuthi isimo. Ukwenza lokhu, izinzwa nama-actuator axhunywe kusilawuli sasekhaya esihlakaniphile. Enguqulweni yamanje, lawa ngamadivayisi angenawaya asebenzisa umthetho olandelwayo I-Z-Wave kumafrikhwensi anikezwe ngokukhethekile 869 MHz OkweRussia. Ukuze zisebenze, zihlanganiswa zibe inethiwekhi ye-mesh, equkethe iziphindaphinda zesignali ukwandisa indawo yokumboza. Amadivayisi nawo anemodi ekhethekile yokonga amandla - achitha isikhathi esiningi kumodi yokulala futhi athumele ulwazi kuphela lapho isimo sawo sishintsha, okunganweba kakhulu impilo yebhethri eyakhelwe ngaphakathi.

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Manje ungathola inani elikhulu kakhulu lamadivayisi ahlukene e-Z-Wave emakethe. Ake sibheke izibonelo ezimbalwa:

  1. I-Zipato PAN16 smart socket ingakala imingcele elandelayo: ukusetshenziswa kukagesi (kWh), amandla (W), i-voltage (V) kanye neyamanje (A) kunethiwekhi kagesi. Iphinde ibe ne-switch eyakhelwe ngaphakathi ongakwazi ukulawula ngayo into esebenza ngogesi exhunyiwe;
  2. Inzwa yokuvuza ye-Neo Coolcam ithola ubukhona boketshezi oluchithekile ngokuvala abathintwayo be-probe ekude;
  3. I-Zipato PH-PSG01 inzwa yomusi ibangelwa lapho izinhlayiya zentuthu zingena ekamelweni lokuhlaziya igesi;
  4. Inzwa yokunyakaza ye-Neo Coolcam ihlaziya imisebe ye-infrared yomzimba womuntu. Ukwengeza kukhona inzwa yokukhanya (Lx);
  5. I-Multisensor Philio PST02-A ikala izinga lokushisa (°C), ukukhanya (%), ukuvulwa komnyango, ukuba khona komuntu ekamelweni;
  6. I-Z-Wave USB Stick isilawuli senethiwekhi i-ZME E UZB1, okuxhunywe kuso izinzwa.

Kubaluleke kakhulu ukuthi amadivaysi kanye nesilawuli kusebenze ngemvamisa efanayo, ngaphandle kwalokho ngeke babonane ngesikhathi sokuxhuma. Amadivayisi afinyelela kwangu-232 angaxhunywa kusilawuli senethiwekhi esisodwa se-Z-Wave, esanele ifulethi noma indlu yezwe. Ukuze unwebe indawo yenethiwekhi endlini, isokhethi ehlakaniphile ingasetshenziswa njengesiphindaphinda isignali.

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Kunqubo yeseva yesilawuli sasekhaya ehlakaniphile okukhulunywe ngayo esigabeni sangaphambilini, iseva ye-Z-Wave inesibopho sokusebenzisana namadivayisi we-Z-Wave. Isebenzisa umtapo wolwazi ukuthola ulwazi oluvela kuzinzwa I-OpenZWave ku-C++, enikeza isixhumi esibonakalayo sokusebenzisana nesilawuli se-USB senethiwekhi ye-Z-Wave futhi isebenza ngezinzwa ezihlukahlukene nama-actuator. Inani lepharamitha yezemvelo elinganiswa yisinzwa lirekhodwa iseva ye-Z-Wave ngendlela yomlayezo we-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"
}

Ibe isidluliselwa kumphathi womlayezo wenqubo yeseva ukuze imicu yababhalisile ikwazi ukuyithola. Obhalisile oyinhloko iseva ye-logic yokukhiqiza, efana namanani enkundla yomlayezo kokwandulelayo kwemithetho enengqondo. Imiphumela ye-inference equkethe imiyalo yokulawula ibuyiselwa emuva kumphathi wemiyalezo bese usuka lapho uye kuseva ye-Z-Wave, eyikhipha amakhodi bese iyithumela kusilawuli se-USB senethiwekhi ye-Z-Wave. Bese bangena ku-actuator, eshintsha isimo sezinto zemvelo, futhi ikhaya elihlakaniphile lenza umsebenzi owusizo.

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa
(chofoza esithombeni ukuze uvule ngokulungiswa okukhulu)

Ukuxhuma amadivayisi e-Z-Wave kwenziwa kusixhumi esibonakalayo esinesithombe sesilawuli sasekhaya esihlakaniphile. Ukuze wenze lokhu, iya ekhasini elinohlu lwamadivayisi bese uchofoza inkinobho ethi "Engeza". Umyalo wokwengeza ngesixhumi esibonakalayo se-RESTful API ungena kunqubo yeseva bese uthunyelwa umphathi womlayezo kuseva ye-Z-Wave, ebeka isilawuli se-USB senethiwekhi ye-Z-Wave sibe yimodi ekhethekile yokwengeza amadivayisi. Okulandelayo, kudivayisi ye-Z-Wave udinga ukwenza uchungechunge lokucindezela okusheshayo (ukucindezela oku-3 ngaphakathi kwemizuzwana engu-1,5) kwenkinobho yesevisi. Isilawuli se-USB sixhuma idivayisi kunethiwekhi bese sithumela ulwazi mayelana nayo kuseva ye-Z-Wave. Lokho, nakho, kudala into entsha egciniwe ye-SQLite nemingcele yedivayisi entsha. Ngemva kwesikhathi esithile esinqunyiwe, isixhumi esibonakalayo esibonakalayo sibuyela ekhasini lohlu lwedivayisi ye-Z-Wave, sifunda ulwazi kusizindalwazi futhi sibonisa idivayisi entsha ohlwini. Idivayisi ngayinye ithola isihlonzi sayo esiyingqayizivele, esisetshenziswa emithethweni yesikhombiso sokukhiqiza nalapho isebenza emafini. Ukusebenza kwale algorithm kuboniswa kumdwebo we-UML:

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa
(chofoza esithombeni ukuze uvule ngokulungiswa okukhulu)

Ixhuma amakhamera we-IP

Uhlelo lwe-cloud smart home okuxoxwe ngalo kulesi sihloko luwukuthuthukiswa kohlelo lokubhekwa kwevidiyo yamafu, nalo lwathuthukiswa ngumbhali, osekuyiminyaka eminingi lusemakethe futhi lunokufakwa okuningi eRussia.

Kuzinhlelo zokubhekwa kwevidiyo yamafu, enye yezinkinga ezinzima ukukhethwa okulinganiselwe kwemishini okungenziwa ngayo ukuhlanganiswa. Isofthiwe enesibopho sokuxhuma efwini ifakwe ngaphakathi kwekhamera yevidiyo, ebeka ngokushesha izidingo ezibucayi ku-hardware yayo - iphrosesa kanye nenani lememori yamahhala. Lokhu kuchaza kakhulu intengo ephezulu yamakhamera e-CCTV amafu uma kuqhathaniswa namakhamera we-IP ajwayelekile. Ngaphezu kwalokho, kudingeka isigaba eside sezingxoxo nezinkampani ezikhiqiza amakhamera e-CCTV ukuze kufinyelelwe ohlelweni lwamafayela ekhamera nawo wonke amathuluzi okuthuthukisa adingekayo.

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Ngakolunye uhlangothi, wonke amakhamera wesimanje we-IP anezimiso ezijwayelekile zokusebenzelana nezinye izinto zokusebenza (ikakhulukazi, iziqophi zevidiyo). Ngakho, ukusetshenziswa kwesilawuli esihlukile esixhuma ngephrothokholi evamile futhi sisakaza ukusakazwa kwevidiyo kusuka kumakhamera we-IP kuya efwini kunikeza izinzuzo ezibalulekile zokuncintisana zezinhlelo zokubhekwa kwevidiyo yamafu. Ngaphezu kwalokho, uma iklayenti selivele lifake uhlelo lokubhekwa kwevidiyo olususelwe kumakhamera alula we-IP, khona-ke kuyenzeka ukunweba futhi kube ikhaya elihlakaniphile lefu eligcwele.

Iphrothokholi edume kakhulu yezinhlelo zokubhekwa kwevidiyo ye-IP, manje esekelwa yibo bonke abakhiqizi bekhamera ye-IP ngaphandle kokukhetha, i Iphrofayili ye-ONVIF S, okucaciswe kwakhe kukhona olimini lwencazelo yezinsizakalo zewebhu I-WSDL. Ukusebenzisa izinsiza ezivela kukhithi yamathuluzi gSOAP Kungenzeka ukukhiqiza ikhodi yomthombo yezinsizakalo ezisebenza ngamakhamera we-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

Ngenxa yalokho, sithola isethi yesihloko esithi “*.h” bese sikhipha amafayela “*.cpp” ku-C++, angafakwa ngokuqondile kuhlelo lokusebenza noma kumtapo wolwazi ohlukile futhi ahlanganiswe kusetshenziswa isihlanganisi se-GCC. Ngenxa yemisebenzi eminingi, ikhodi inkulu futhi idinga ukulungiselelwa okwengeziwe. I-microcomputer ye-Raspberry Pi 3 ye-B+ inokusebenza okwanele ukuze isebenzise le khodi, kodwa uma kunesidingo sokuthumela ikhodi kwenye iplatifomu, kuyadingeka ukukhetha i-architecture efanele yokucubungula kanye nezinsiza zesistimu.

Amakhamera e-IP asekela izinga le-ONVIF, lapho esebenza kunethiwekhi yendawo, axhunywe eqenjini elikhethekile le-multicast elinekheli. 239.255.255.250. Kukhona umthetho olandelwayo I-WS-Discovery, okukuvumela ukuthi wenze usesho oluzenzakalelayo lwamadivayisi kunethiwekhi yendawo.

I-graphic interface yesilawuli sasekhaya esihlakaniphile sisebenzisa umsebenzi wosesho wamakhamera we-IP ku-PHP, olula kakhulu lapho usebenzisana nezinsizakalo zewebhu ngemilayezo ye-XML. Lapho ukhetha izinto zemenyu Amadivayisi > Amakhamera we-IP > Ukuskena I-algorithm yokusesha amakhamera we-IP yethulwa, ikhombisa umphumela ngendlela yetafula:

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa
(chofoza esithombeni ukuze uvule ngokulungiswa okukhulu)

Uma ungeza ikhamera kusilawuli, ungacacisa izilungiselelo ngokuya ngokuthi izosebenzisana namafu. Futhi kulesi sigaba, inikezwa ngokuzenzakalela isihlonzi sedivayisi esihlukile, esingakhonjwa ngaso kamuva kalula phakathi kwamafu.

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Okulandelayo, umlayezo ukhiqizwa ngefomethi ye-JSON equkethe wonke amapharamitha ekhamera engeziwe bese uthunyelwa kunqubo yeseva yesilawuli sasekhaya esihlakaniphile ngomyalo we-RESTful API, lapho amapharamitha ekhamera ekhishwa ikhodi futhi alondolozwe kusizindalwazi sangaphakathi se-SQLite, futhi iphinde isetshenziselwe ukuqalisa imicu elandelayo yokucubungula:

  1. ukusungula uxhumano lwe-RTSP ukuze uthole ukusakazwa kwevidiyo nomsindo;
  2. i-transcoding audio kusuka kumafomethi we-G.711 mu-Law, G.711 A-Law, G.723, njll. kufomethi ye-AAC;
  3. ukusakaza ividiyo ngefomethi ye-H.264 nomsindo ngefomethi ye-AAC kusiqukathi se-FLV futhi siyithumele emafini ngephrothokholi ye-RTMP;
  4. ukusungula ukuxhumana nendawo yokugcina yesitshina sokunyakaza kwekhamera ye-IP ngephrothokholi ye-ONVIF futhi uyivotele ngezikhathi ezithile;
  5. ngezikhathi ezithile ukukhiqiza isithombe sokubuka kuqala isithonjana bese usithumela emafini ngephrothokholi ye-MQTT;
  6. ukurekhodwa kwasendaweni kwevidiyo nokusakaza okulalelwayo ngendlela yamafayela ahlukene ngefomethi ye-MP4 ku-SD noma ekhadini le-Flash yesilawuli sasekhaya esihlakaniphile.

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Ukusungula ukuxhumana namakhamera, i-transcode, inqubo futhi urekhode ukusakazwa kwevidiyo kwinqubo yeseva, imisebenzi evela kulabhulali isetshenziswa. FFmpeg 4.1.0.

Esivivinyweni sokuhlola ukusebenza, amakhamera angu-3 axhunywe kusilawuli:

  1. I-HiWatch DS-I114W (ukulungiswa - 720p, ifomethi yokucindezela - H.264, i-bitrate - 1 Mb/s, isandi G.711 mu-Law);
  2. I-Microdigital MDC-M6290FTD-1 (isinqumo - 1080p, ifomethi yokucindezela - H.264, i-bitrate - 1 Mb / s, akukho umsindo);
  3. I-Dahua DH-IPC-HDW4231EMP-AS-0360B (ukulungiswa - 1080p, ifomethi yokucindezela - H.264, i-bitrate - 1.5 Mb/s, umsindo we-AAC).

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Kokuthathu ukusakaza kukhishelwe efwini ngesikhathi esisodwa, ukudlulisa ikhodi komsindo kwenziwa ngekhamera eyodwa kuphela, futhi ukurekhoda kwendawo kungobo yomlando kwakhutshazwa. Umthwalo we-CPU wawucishe ube ngu-5%, ukusetshenziswa kwe-RAM kwakungu-32 MB (inqubo ngayinye), 56 MB (inani elihlanganisa ne-OS).

Ngakho-ke, cishe amakhamera angama-20 - 30 angaxhunywa kusilawuli sasekhaya esihlakaniphile (kuye ngokuthi isixazululo kanye ne-bitrate), okwanele ohlelweni lokubhekwa kwevidiyo lwendlu enezitezi ezintathu noma i-warehouse encane. Ngemisebenzi edinga ukusebenza okukhulu, ungasebenzisa i-nettop ene-multi-core Intel processor kanye ne-Linux Debian Sarge OS. Isilawuli okwamanje sisebenza esivivinyweni, futhi idatha yokusebenza kwaso izobuyekezwa.

Ukusebenzisana nefu

Ikhaya elihlakaniphile elisekelwe emafini ligcina idatha yomsebenzisi (izilinganiso zevidiyo nezinzwa) emafini. Ukwakhiwa kwesitoreji samafu kuzoxoxwa ngakho ngokuningiliziwe esihlokweni esilandelayo ochungechungeni lwethu. Manje ake sikhulume ngesixhumi esibonakalayo sokudlulisa imilayezo yolwazi isuka kusilawuli sasekhaya esihlakaniphile iye efwini.

Izimo zamadivayisi axhunyiwe nezilinganiso zezinzwa zidluliselwa ngephrothokholi I-MQTT, evame ukusetshenziswa kumaphrojekthi we-inthanethi Yezinto ngenxa yobulula bayo nokusebenza kahle kwamandla. I-MQTT isebenzisa imodeli yeseva yeklayenti, lapho amakhasimende ebhalisela izihloko ezithile ngaphakathi komthengisi futhi ashicilele imilayezo yawo. Umthengisi uthumela imilayezo kubo bonke ababhalisile ngokwemithetho enqunywe izinga le-QoS (Ikhwalithi Yesevisi):

  • QoS 0 - esiphezulu kanye (akukho siqinisekiso sokulethwa);
  • I-QoS 1 - okungenani kanye (ngokuqinisekiswa kokulethwa);
  • I-QoS 2 - kanye kanye (ngesiqinisekiso esengeziwe sokulethwa).

Esimweni sethu, sisebenzisa I-Eclipse Mosquito. Igama lesihloko liyisihlonzi esiyingqayizivele sesilawuli sasekhaya esihlakaniphile. Iklayenti le-MQTT ngaphakathi kwenqubo yeseva libhalisela lesi sihloko futhi lihumushe imilayezo ye-JSON evela kumphathi wemilayezo iye kuyo. Ngokuphambene, imilayezo evela kumthengisi we-MQTT idluliselwa yiyo kumphathi wemilayezo, bese eyiphindaphinda kubabhalisi bayo ngaphakathi kwenqubo yeseva:

Cloud Smart Home. Ingxenye 1: Isilawuli nezinzwa

Ukudlulisa imilayezo mayelana nesimo sesilawuli sasekhaya esihlakaniphile, kusetshenziswa indlela yemiyalezo egciniwe imilayezo egciniwe Iphrothokholi ye-MQTT. Lokhu kukuvumela ukuthi uqaphe kahle isikhathi sokuxhuma kabusha phakathi nokuhluleka kwamandla.

Iklayenti le-MQTT lakhiwe ngokusekelwe ekusebenziseni umtapo wolwazi I-Eclipse Paho ngolimi lwe-C++.

I-H.264 + AAC media streams ithunyelwa emafini ngephrothokholi ye-RTMP, lapho iqoqo lamaseva emidiya inesibopho sokuwacubungula nokuyigcina. Ukuze usabalalise ngokugcwele umthwalo kuqoqo bese ukhetha iseva yemidiya elayishwe kancane, isilawuli sasekhaya esihlakaniphile senza isicelo sokuqala kusilinganisi somthwalo wamafu futhi ngemva kwalokho sithumele ukusakaza kwemidiya.

isiphetho

I-athikili ihlole ukuqaliswa okukhethekile kwesilawuli sasekhaya esihlakaniphile esisekelwe ku-microcomputer ye-Raspberry Pi 3 B+, ​​engathola, icubungule ulwazi kanye nemishini yokulawula ngephrothokholi ye-Z-Wave, ihlanganyele namakhamera we-IP ngephrothokholi ye-ONVIF, futhi iphinde ishintshisane ngedatha futhi imiyalo enefu, ngesevisi ye-MQTT kanye ne-RTMP. Injini enengqondo yokukhiqiza yenziwe ngokususelwa ekuqhathanisweni kwemithetho enengqondo namaqiniso ethulwa ngefomethi ye-JSON.

Isilawuli sasekhaya esihlakaniphile njengamanje sisebenza esivivinyweni ezindaweni ezimbalwa eMoscow nasesifundeni saseMoscow.

Inguqulo elandelayo yesilawuli ihlela ukuxhuma ezinye izinhlobo zamadivayisi (i-RF, i-Bluetooth, i-WiFi, izintambo). Ukuze kube lula kubasebenzisi, inqubo yokuxhuma izinzwa namakhamera we-IP izodluliselwa kuhlelo lokusebenza lweselula. Kukhona nemibono yokuthuthukisa ikhodi yenqubo yeseva nokuthumela isofthiwe ohlelweni lokusebenza I-OpenWrt. Lokhu kuzokuvumela ukuthi wonge kusilawuli esihlukile futhi udlulisele ukusebenza kwekhaya elihlakaniphile kumzila ojwayelekile wasendlini.

Source: www.habr.com

Engeza amazwana