Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Kajeno, ka lebaka la tsoelo-pele e potlakileng ea li-microelectronics, mecha ea puisano, theknoloji ea Inthanete le Artificial Intelligence, sehlooho sa malapa a bohlale se ntse se tsoela pele ho sebetsa haholoanyane. Matlo a batho a bile le liphetoho tse kholo ho tloha mehleng ea Stone Age le nakong ea Phetohelo ea Liindasteri 4.0 le Marang-rang a Lintho, e se e le bonolo, e sebetsa ebile e bolokehile. Litharollo li tla 'marakeng tse fetolang folete kapa ntlo ea naha hore e be mekhoa e rarahaneng ea tlhahisoleseding e laoloang ho tloha kae kapa kae lefatšeng ho sebelisa smartphone. Ho feta moo, tšebelisano ea mochine oa batho ha e sa hloka tsebo ea lipuo tsa lenaneo - ka lebaka la temoho ea puo le li-algorithms tsa synthesis, motho o bua le ntlo e bohlale ka puo ea habo bona.

Mekhoa e meng e bohlale ea lapeng e teng hona joale 'marakeng ke nts'etsopele e utloahalang ea mekhoa ea ho shebella video ea leru, bao baetsi ba eona ba ileng ba hlokomela tlhokahalo ea tharollo e pharaletseng eseng feela bakeng sa ho beha leihlo, empa le ho laola lintho tse hōle.

Вашему вниманию предлагается цикл из трех статей, где будет рассказано о всех основных компонентах системы облачного умного дома, лично разработанной автором и запущенной в эксплуатацию. Первая статья посвящена оконечному клиентскому оборудованию, устанавливаемому внутри умного дома, вторая — архитектуре системы облачного хранения и обработки данных, и, наконец, третья — клиентскому приложению для управления системой на мобильных и стационарных устройствах.

Thepa e bohlale ea lapeng

Ntlha ea pele, a re ke re bue ka mokhoa oa ho etsa ntlo e bohlale ho tsoa foleteng e tloaelehileng, dacha kapa cottage. Ho etsa sena, e le molao, ho hlokahala ho beha lisebelisoa tse latelang ka tlung:

  1. lisensara tse lekanyang mekhahlelo e fapaneng ea tikoloho;
  2. li-activators tse sebetsang linthong tse ka ntle;
  3. molaoli ea etsang lipalo ho latela litekanyo tsa sensor le logic e kenelletseng, mme a fana ka litaelo ho li-actuator.

Setšoantšo se latelang se bontša setšoantšo sa ntlo e bohlale, eo ho eona ho nang le li-sensor tsa ho lutla ha metsi (1) ka kamoreng ea ho hlapela, mocheso (2) le mabone (3) ka kamoreng, sokete e bohlale (4) ka kichineng le khamera e behang leihlo videong (5) phasejeng.

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Hajoale, li-sensor tse se nang mohala tse sebelisang li-protocol tsa RF433, Z-Wave, ZigBee, Bluetooth le WiFi li sebelisoa haholo. Melemo ea bona e ka sehloohong ke boiketlo ba ho kenya le ho sebelisa, hammoho le litšenyehelo tse tlaase le ho tšepahala, hobane Baetsi ba leka ka matla ho tlisa lisebelisoa tsa bona 'marakeng oa bongata le ho etsa hore li fumanehe ho basebelisi ba tloaelehileng.

Li-sensor le li-actuator, e le molao, li hokahane ka sehokelo se se nang mohala ho molaoli ea bohlale oa lapeng (6) - microcomputer e khethehileng e kopanyang lisebelisoa tsena kaofela marang-rang a le mong le ho li laola.

Leha ho le joalo, litharollo tse ling li ka kopanya sensor, actuator le molaoli ka nako e le 'ngoe. Ka mohlala, plug e bohlale e ka hlophisoa hore e bule kapa ea tima ho latela kemiso, 'me k'hamera ea leru e behang leihlo video e ka rekota video e ipapisitse le lets'oao la ho lemoha lintho tse tsamaeang. Maemong a bonolo ka ho fetisisa, o ka etsa ntle le molaoli ea arohaneng, empa ho theha tsamaiso e feto-fetohang e nang le maemo a mangata, hoa hlokahala.

Ho hokahanya molaoli oa lapeng o bohlale ho marang-rang a lefats'e, ho ka sebelisoa router e tloaelehileng ea Inthanete (7), eo e leng khale e fetohile sesebelisoa se tloaelehileng sa ntlo ntlong leha e le efe. Mona ho na le khang e 'ngoe e emelang molaoli ea bohlale oa lapeng - haeba khokahanyo ea Inthanete e lahlehile, lehae le bohlale le tla tsoela pele ho sebetsa ka mokhoa o tloaelehileng ka lebaka la logic block e bolokiloeng ka hare ho molaoli, eseng tšebeletsong ea leru.

Smart home controller

Taolo ea "cloud smart home system" eo ho buisanoeng ka eona sehloohong sena e entsoe ho ipapisitsoe le microcomputer e nang le boto e le 'ngoe Raspberry Pi 3 ea mofuta oa B+, e ileng ea lokolloa ka March 2018 'me e na le lisebelisoa le ts'ebetso e lekaneng bakeng sa mesebetsi e bohlale ea lapeng. E kenyelletsa processor ea quad-core Cortex-A53 e ipapisitseng le meralo ea 64-bit ARMv8-A, e ts'oaroang ho 1.4 GHz, hammoho le 1 GB ea RAM, Wi-Fi 802.11ac, Bluetooth 4.2 le adaptara ea gigabit Ethernet e sebetsang ka USB 2.0 .

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Ho kopanya molaoli ho bonolo haholo - microcomputer (1) e kentsoe ka mokotlaneng oa polasetiki (2), ebe karete ea memori ea 8 GB ka sebopeho sa microSD e nang le software (3) le molaoli oa marang-rang oa USB Z-Wave (4) o kentsoe kahare. libaka tse lumellanang. Taolo e bohlale ea lapeng e hoketsoe ho phepelo ea motlakase ka 5V, 2.1A adaptara ea motlakase (5) le thapo ea USB - micro-USB (6). Molaoli e mong le e mong o na le nomoro ea boitsebahatso e ikhethang, e ngotsoeng faeleng ea tlhophiso ha e qala ho qala mme e hlokahala ho sebelisana le lits'ebeletso tsa lapeng tse bohlale.

Software e bohlale ea taolo ea lapeng e entsoe ke mongoli oa sengoloa sena ho latela sistimi e sebetsang Linux Raspbian Stretch. Оно состоит из следующих основных подсистем:

  • серверного процесса для взаимодействия с оборудованием умного дома и облаком;
  • segokanyimmediamentsi sa sebolokigolo bakeng sa ho seta tlhophiso le paramente ea ts'ebetso ea molaoli;
  • database bakeng sa ho boloka tlhophiso ea taolo.

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Sebaka sa polokelo ea litaba контроллера умного дома реализована на основе встраиваемой СУБД SQLite mme ke faele e kareteng ea SD e nang le software ea sistimi. E sebetsa e le polokelo bakeng sa tlhophiso ea molaoli - tlhahisoleseding e mabapi le thepa e hokahaneng le boemo ba eona ba hona joale, thibelo ea melao e utloahalang ea tlhahiso, hammoho le tlhahisoleseding e hlokang indexing (mohlala, mabitso a lifaele tsa polokelo ea video ea lehae). Ha molaoli a tsosolosoa, tlhahisoleseding ena e bolokiloe, e etsa hore ho khonehe ho tsosolosa molaoli ha ho e-na le ho hlōleha ha matla.

Graphical segokanyimmediamentsi sa sebolokigolo taolo ea lapeng e bohlale e ntlafalitsoeng ka PHP 7 e sebelisa microframework Slim. Seva ea tepo e ikarabella bakeng sa ho tsamaisa ts'ebeliso. bobebe, e atisang ho sebelisoa lisebelisoa tse kentsoeng ka lebaka la ts'ebetso ea eona e ntle le litlhoko tse tlaase tsa lisebelisoa.

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor
(tobetsa setšoantšong ho se bula ka qeto e phahameng)

Mosebetsi o ka sehloohong oa sebopeho sa graphical ke ho hokahanya lisebelisoa tse bohlale tsa lapeng (IP surveillance cameras and sensors) ho molaoli. Sesebelisoa sa marang-rang se bala tlhophiso le boemo ba hajoale ba molaoli le lisebelisoa tse hoketsoeng ho eona ho tsoa polokelong ea SQLite. Ho fetola tlhophiso ea taolo, e romela litaelo tsa taolo ka sebopeho sa JSON ka sebopeho sa RESTful API sa ts'ebetso ea seva.

Ts'ebetso ea seva

Ts'ebetso ea seva - karolo ea bohlokoa e etsang mosebetsi oohle oa mantlha oa ho iketsetsa lits'ebetso tsa tlhahisoleseling tse theha motheo oa lehae le bohlale: ho amohela le ho sebetsana le data ea kutlo, ho fana ka liketso tsa taolo ho latela mohopolo o kentsoeng. Sepheo sa ts'ebetso ea seva ke ho sebelisana le lisebelisoa tse bohlale tsa lapeng, ho phethahatsa melao e utloahalang ea tlhahiso, ho amohela le ho sebetsana le litaelo tse tsoang ho graphical interface le leru. Ts'ebetso ea seva ho molaoli ea bohlale oa lapeng e ntseng e nahanoa e kengoa ts'ebetsong joalo ka ts'ebeliso e nang le likhoele tse ngata e ntlafalitsoeng ho C++ mme e qalisoa joalo ka ts'ebeletso e arohaneng. systemd mokhoa oa tšebetso Linux Raspbian.

Li-block tsa mantlha tsa ts'ebetso ea seva ke:

  1. Motsamaisi oa Molaetsa;
  2. Seva ea khamera ea IP;
  3. Seva ea sesebelisoa sa Z-Wave;
  4. Seva ea melao e utloahalang ea tlhahiso;
  5. Database ea tlhophiso ea molaoli le thibela ea melao e utloahalang;
  6. Seva ea RESTful API bakeng sa ho sebelisana le sebopeho sa graphical;
  7. Moreki oa MQTT bakeng sa ho sebelisana le leru.

Li-block tsa ts'ebetso ea seva li kenngoa ts'ebetsong e le likhoele tse arohaneng, tlhahisoleseding pakeng tsa eona e fetisetsoang ka mokhoa oa melaetsa ka mokhoa oa JSON (kapa mehaho ea data e emelang mokhoa ona mohopolong oa ts'ebetso).

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Karolo e ka sehloohong ea ts'ebetso ea seva ke molaoli oa molaetsa, e tsamaisang melaetsa ea JSON ho li-blocks tsohle tsa ts'ebetso ea seva. Mefuta ea likarolo tsa tlhaiso-leseling ea molaetsa oa JSON le litekanyetso tseo ba ka li amohelang li thathamisitsoe tafoleng:

deviceType
protocol
molaetsaType
deviceState
taelo ea

khamera
onvif
sensorData
on
ho phallela(O butle/Timme)

kutlo
zwave
taelo ea
tima
ho rekota(O butle/Ho tima)

sebatli
mqtt
businessLogicRule
ho phallela(O butle/Timme)
evice(Eketsa/Tlosa)

khoeboLogic
configurationData
ho rekota(O butle/Ho tima)

bluetooth
deviceState
phosong

WiFi

rf

Mohlala, molaetsa o tsoang ho sesebelisoa sa motsamao oa khamera o shebahala tjena:

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

Maikutlo a tlhahiso

Ho amohela kapa ho romella molaetsa ho tsoa ho dispatcher, block process ea seva e ngolisa melaetsa ea mofuta o itseng. Ngoliso ke molao oa tlhahiso ea tlhahiso ea mofuta "Haeba ... joale...", e hlahisitsoeng ka mokhoa oa JSON, le sehokelo ho motho ea sebetsanang le molaetsa ka har'a block process ea seva. Mohlala, ho lumella seva ea kh'amera ea IP ho amohela litaelo ho tsoa ho GUI le leru, o hloka ho kenyelletsa molao o latelang:

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

Haeba maemo a boletsoeng ho pelehi (lehlakore le letšehali) melao ke 'nete, joale e khotsofetse sephetho (lehlakoreng le letona) melao, 'me mohlokomeli o fumana' mele oa molaetsa oa JSON. Sehlahisoa se tšehetsa li-operators tse utloahalang tse bapisang lipara tsa bohlokoa tsa JSON:

  1. lekana "lekana";
  2. не равно «not_equal»;
  3. tlase "tlase";
  4. ho feta "e kholo";
  5. ka tlase ho kapa ho lekana le "tlase_kapa_lekana";
  6. e kholo ho feta kapa e lekanang le "greer_or_equal".

Liphetho tsa papiso li ka amahanngoa ho sebelisa li-opereishene tsa Boolean algebra:

  1. Mme "mme"
  2. KAPA "kapa";
  3. HA SE "che".

Kahoo, ka ho ngola li-operators le li-operands ka notation ea Sepolishe, o ka theha maemo a rarahaneng ka palo e kholo ea li-parameter.

Точно такой же механизм, основанный на JSON-сообщениях и правилах продукций в JSON формате, применяется в блоке сервера продукционной логики для представления знаний и осуществления логического вывода с использованием сенсорных данных с датчиков умного дома.

A sebelisa sesebelisoa sa mohala, mosebelisi o etsa maemo ho latela hore na ntlo e bohlale e lokela ho sebetsa joang. Ka mohlala: "Haeba sensor ea ho bula lemati le ka pele e hlahisitsoe, bulela mabone a phasejeng". Sesebelisoa se bala li-identifiers tsa li-sensor (sensor e bulang) le li-actuator (smart socket kapa lebone le bohlale) ho tsoa ho database mme e hlahisa molao o utloahalang ka mokhoa oa JSON, o romelloang ho molaoli ea bohlale oa lapeng. Mochine ona o tla tšohloa ka ho qaqileng haholoanyane sehloohong sa boraro sa letoto la rona, moo re tla bua ka kopo ea bareki bakeng sa ho laola ntlo e bohlale.

Mokhoa oa tlhahiso-leseling o boletsoeng ka holimo o kengoa ts'ebetsong ho sebelisoa laebrari RapidJSON - SAX parser bakeng sa sebopeho sa JSON ka C++. Ho bala ka tatellano le ho arola melaoana e mengata ea tlhahiso ho u lumella ho kenya tšebetsong ts'ebetso ea papiso ea data habonolo ka har'a li-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);
        }
    }
}

ke pNnete - sebopeho se nang le lipara tsa bohlokoa ho tsoa ho molaetsa oa JSON, m_Rules - letoto la melao ea tlhahiso. Papiso ea molaetsa o kenang le molao oa tlhahiso o etsoa mosebetsing 'mali.Arola(ruleStream, ruleHandler)kae ruleHandler ke ntho e nang le mabaka a Boolean le basebedisi ba papiso. sRuleId - sekhetho se ikhethileng sa melao, ka lebaka leo ho khonahalang ho boloka le ho hlophisa melao ka har'a polokelo ea polokelo ea taolo ea lapeng e bohlale. m_pActions - lethathamo le nang le liphetho tsa boithuto bo utloahalang: Melaetsa ea JSON e nang le litlamorao ho tsoa motheong oa melao mme e rometsoe ho mookameli oa molaetsa e le hore likhoele tsa ba ngolisitseng li ka li sebetsa.

Производительность RapidJSON сопоставима с функцией strlen(), 'me litlhoko tse fokolang tsa lisebelisoa tsa tsamaiso li lumella tšebeliso ea laebrari ena lisebelisoa tse kenyelelitsoeng. Tšebeliso ea melaetsa le melao e utloahalang ka mokhoa oa JSON e u lumella ho kenya ts'ebetsong mokhoa o feto-fetohang oa phapanyetsano ea tlhahisoleseding pakeng tsa likarolo tsohle tsa molaoli ea bohlale oa lapeng.

Li-sensor tsa Z-Wave le li-Actuator

Monyetla o ka sehloohong oa ntlo e bohlale ke hore e khona ho lekanya ka boikemelo litekanyo tse fapaneng tsa tikoloho ea kantle le ho etsa mesebetsi e metle ho latela maemo. Ho etsa sena, li-sensor le li-actuator li hokahantsoe le molaoli oa lapeng o bohlale. Phetolelong ea hajoale, tsena ke lisebelisoa tse se nang mohala tse sebelisang protocol Z-tsokoang ka leqhubu le abetsoeng ka ho khetheha 869 MHz Bakeng sa Russia. E le hore li sebetse, li kopantsoe ho ba marang-rang a marang-rang, a nang le li-peaters tsa matšoao ho eketsa sebaka sa tšireletso. Lisebelisoa li boetse li na le mokhoa o khethehileng oa ho boloka matla - li qeta nako e ngata li le boemong ba ho robala 'me li romela boitsebiso feela ha boemo ba bona bo fetoha, bo ka eketsang haholo bophelo ba betri e hahiloeng.

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Hona joale o ka fumana palo e kholo ea lisebelisoa tse fapaneng tsa Z-Wave 'marakeng. Ha re shebeng mehlala e seng mekae:

  1. Умная розетка Zipato PAN16 может измерять следующие параметры: потребление электроэнергии (кВт/ч), мощность (Вт), напряжение (В) и ток (А) в электросети. Также она имеет встроенный выключатель, с помощью которого можно управлять подключенным электроприбором;
  2. Neo Coolcam leak sensor e lemoha boteng ba mokelikeli o qhalaneng ka ho koala likhokahano tsa probe e hole;
  3. Sensor ea mosi ea Zipato PH-PSG01 e hlahisoa ha likaroloana tsa mosi li kena ka kamoreng ea ho hlahloba khase;
  4. Neo Coolcam motion sensor e sekaseka mahlaseli a infrared a 'mele oa motho. Ho feta moo ho na le sensor ea leseli (Lx);
  5. Multisensor Philio PST02-A e lekanya mocheso (°C), leseli (%), ho bula lemati, boteng ba motho ka kamoreng;
  6. Z-Wave USB Stick molaoli oa marang-rang oa ZME E UZB1, eo li-sensor li hokahaneng ho eona.

Ho bohlokoa haholo hore lisebelisoa le molaoli li sebetse ka lebelo le ts'oanang, ho seng joalo li ke ke tsa bonana ka nako ea khokahano. Lisebelisoa tse fihlang ho 232 li ka hokeloa ho molaoli a le mong oa marang-rang oa Z-Wave, e lekaneng bakeng sa folete kapa ntlo ea naha. Ho atolosa sebaka sa marang-rang sa marang-rang ka tlung, sokete e bohlale e ka sebelisoa e le pontšo ea ho pheta-pheta.

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Ts'ebetsong ea li-server tse bohlale tse boletsoeng serapeng se fetileng, seva sa Z-Wave se na le boikarabello ba ho sebelisana le lisebelisoa tsa Z-Wave. E sebelisa laebrari ho amohela tlhahisoleseling ho tsoa ho li-sensor OpenZWave ho C ++, e fanang ka sebopeho sa ho sebelisana le molaoli oa USB oa marang-rang oa Z-Wave mme e sebetsa ka mefuta e fapaneng ea li-sensor le li-activator. Boleng ba parameter ea tikoloho e lekantsoeng ke sensor e tlalehiloe ke seva sa Z-Wave ka mokhoa oa molaetsa oa 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"
}

E ntan'o fetisetsoa ho mookameli oa melaetsa ea tsamaiso ea seva e le hore likhoele tsa ba ngolisitseng li ka e fumana. Motho ea ngolisitseng ea ka sehloohong ke seva sa logic sa tlhahiso, se lumellanang le boleng ba tšimo ea molaetsa ho li-antecedents tsa melao ea logic. Liphetho tse nang le litaelo tse nang le litaelo tsa taolo li khutlisetsoa ho mookameli oa melaetsa 'me ho tloha moo li ea ho seva sa Z-Wave, se li khethollang ebe se li romela ho molaoli oa USB oa marang-rang oa Z-Wave. Ebe ba kena ka actuator, e fetolang boemo ba lintho tsa tikoloho, 'me ntlo e bohlale ka hona e etsa mosebetsi o molemo.

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor
(tobetsa setšoantšong ho se bula ka qeto e phahameng)

Ho hokela lisebelisoa tsa Z-Wave ho etsoa ka sebopeho sa graphical sa molaoli ea bohlale oa lapeng. Ho etsa sena, e ea leqepheng le nang le lethathamo la lisebelisoa ebe o tobetsa konopo ea "Eketsa". Taelo ea ho eketsa ka sebopeho sa RESTful API e kena ts'ebetsong ea seva ebe e romelloa ke mookameli oa molaetsa ho seva sa Z-Wave, se behang molaoli oa USB oa marang-rang oa Z-Wave ka mokhoa o khethehileng oa ho eketsa lisebelisoa. Ka mor'a moo, mochine oa Z-Wave o hloka ho etsa letoto la mechine ea khatiso e potlakileng (3 o hatisa ka har'a metsotsoana e 1,5) ea konopo ea tšebeletso. Molaoli oa USB o hokahanya sesebelisoa le marang-rang mme o romela tlhahisoleseding e mabapi le eona ho seva sa Z-Wave. Seo, le sona, se etsa hore ho be le mokhoa o mocha oa ho kena sebakeng sa polokelo ea litaba sa SQLite ka li-parameter tsa sesebelisoa se secha. Kamora nako e behiloeng, sebopeho sa graphical se khutlela leqepheng la lethathamo la lisebelisoa tsa Z-Wave, se bala tlhahisoleseling ho tsoa ho database mme se bonts'a sesebelisoa se secha lenaneng. Sesebelisoa se seng le se seng se fumana sekhetho sa sona se ikhethileng, se sebelisoang melaong ea tlhahiso ea tlhahiso le ha se sebetsa marung. Ts'ebetso ea algorithm ena e bonts'oa setšoantšong sa UML:

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor
(tobetsa setšoantšong ho se bula ka qeto e phahameng)

Ho hokela lik'hamera tsa IP

The cloud smart home system eo ho buisanoang ka eona sehloohong sena ke ntlafatso ea tsamaiso ea ho shebella video ea leru, e boetse e hlahisoa ke mongoli, e 'nileng ea e-ba' marakeng ka lilemo tse 'maloa' me e na le lisebelisoa tse ngata Russia.

Bakeng sa lits'ebetso tsa ho shebella livideo tsa leru, e 'ngoe ea mathata a tebileng ke khetho e lekanyelitsoeng ea lisebelisoa tseo ho kopanngoa ho tsona ho ka etsoang. Software e ikarabellang bakeng sa ho hokahanya leru e kenngoa ka hare ho khamera ea video, eo hang-hang e behang litlhoko tse tebileng ho hardware ea eona - processor le palo ea memori ea mahala. Sena se hlalosa haholo-holo theko e phahameng ea lik'hamera tsa CCTV tsa leru ha li bapisoa le lik'hamera tse tloaelehileng tsa IP. Ntle le moo, ho hlokahala mohato o molelele oa lipuisano le lik'hamphani tse etsang likhamera tsa CCTV ho fihlella sistimi ea faele ea khamera le lisebelisoa tsohle tse hlokahalang tsa nts'etsopele.

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Ka lehlakoreng le leng, lik'hamera tsohle tsa morao-rao tsa IP li na le mekhoa e tloaelehileng ea ho sebelisana le lisebelisoa tse ling (haholo-holo, lirekoto tsa video). Ka hona, tšebeliso ea molaoli ea arohaneng o hokahanyang ka mokhoa o tloaelehileng oa protocol le ho phatlalatsa melaetsa ea video ho tloha lik'hamera tsa IP ho ea marung ho fana ka melemo e mengata ea tlhōlisano bakeng sa mekhoa ea ho shebella video ea leru. Ho feta moo, haeba moreki a se a kentse mokhoa oa ho shebella video o thehiloeng ho lik'hamera tse bonolo tsa IP, joale hoa khoneha ho e atolosa le ho e fetola hore e be ntlo e bohlale ea leru e tletseng maru.

Protocol e tsebahalang haholo bakeng sa lits'ebetso tsa ho shebella video tsa IP, tseo hona joale li tšehetsoang ke baetsi bohle ba likhamera tsa IP ntle le mokhelo, ke Pale ea ONVIF S, bao litlhaloso tsa bona li leng teng ka puo e hlalosang litšebeletso tsa tepo wsdl. Ho sebelisa lisebelisoa tse tsoang ka har'a sesebelisoa gSEPA Hoa khoneha ho hlahisa khoutu ea mohloli bakeng sa lits'ebeletso tse sebetsang ka lik'hamera tsa 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

Ka lebaka leo, re fumana sehlopha sa lihlooho tsa "*.h" le mohloli oa "* .cpp" lifaele ho C ++, tse ka kenngoa ka ho toba ka har'a kopo kapa laebraring e fapaneng 'me e hlophisitsoe ho sebelisa moqapi oa GCC. Ka lebaka la mesebetsi e mengata, khoutu e kholo ebile e hloka ntlafatso e eketsehileng. Microcomputer ea Raspberry Pi 3 ea mofuta oa B+ e na le ts'ebetso e lekaneng ea ho etsa khoutu ena, empa haeba ho hlokahala ho isa khoutu sethaleng se seng, hoa hlokahala ho khetha meralo e nepahetseng ea meralo le lisebelisoa tsa sistimi.

Likh'amera tsa IP tse tšehetsang maemo a ONVIF, ha li sebetsa marang-rang a lehae, li hokahane le sehlopha se ikhethileng sa multicast se nang le aterese. 239.255.255.250. Ho na le protocol Ho fumanoa ha WS, e u lumellang hore u iketsetse patlo ea lisebelisoa marang-rang a lehae.

Sebopeho sa graphical sa molaoli ea bohlale oa lapeng se sebelisa mosebetsi oa ho batla lik'hamera tsa IP ho PHP, e leng bonolo haholo ha u sebelisana le lits'ebeletso tsa marang-rang ka melaetsa ea XML. Ha u khetha lintho tsa menu Lisebelisoa > Likhamera tsa IP > Ho hlahloba Ho qalisoa algorithm ea ho batla lik'hamera tsa IP, e bonts'a sephetho ka mokhoa oa tafole:

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor
(tobetsa setšoantšong ho se bula ka qeto e phahameng)

Ha o eketsa khamera ho molaoli, o ka hlalosa litlhophiso ho latela hore na e tla sebelisana joang le leru. Hape mothating ona, e abeloa sesebelisoa se ikhethileng sa sesebelisoa, seo hamorao se ka tsejoang habonolo ka har'a leru.

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Ka mor'a moo, molaetsa o hlahisoa ka mokhoa oa JSON o nang le likarolo tsohle tsa khamera e kenyelletsoeng 'me o romelloa ts'ebetsong ea seva ea molaoli ea bohlale oa lapeng ka taelo ea RESTful API, moo li-parameter tsa khamera li khetholloang le ho bolokoa sebakeng sa polokelo ea ka hare ea SQLite. e boetse e sebelisoa ho qala likhoele tse latelang tsa ts'ebetso:

  1. ho theha khokahano ea RTSP ho amohela melapo ea video le molumo;
  2. transcoding audio from G.711 mu-Law, G.711 A-Law, G.723, etc. formats. ho sebopeho sa AAC;
  3. li-transcoding video streams ka sebopeho sa H.264 le li-audio ka mokhoa oa AAC ka har'a setshelo sa FLV le ho e fetisetsa marung ka protocol ea RTMP;
  4. ho theha khokahano le ntlha ea ho qetela ea mochine oa motsamao oa khamera ea IP ka protocol ea ONVIF le ho e khetha nako le nako;
  5. nako le nako ho hlahisa setšoantšo sa ponelopele ea li-thumbnail le ho se romella marung ka protocol ea MQTT;
  6. Rekoto ea lehae ea livideo le melapo ea molumo ka mokhoa oa lifaele tse arohaneng ka sebopeho sa MP4 ho SD kapa Flash card ea molaoli ea bohlale oa lapeng.

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Ho theha khokahano le lik'hamera, transcode, ts'ebetso le ho rekota melapo ea video ts'ebetsong ea seva, ho sebelisoa mesebetsi e tsoang laeboraring. FFmpeg 4.1.0.

Tekong ea tlhahlobo ea ts'ebetso, lik'hamera tse 3 li hokahantsoe le molaoli:

  1. HiWatch DS-I114W (qeto - 720p, sebopeho sa compression - H.264, bitrate - 1 Mb / s, molumo oa G.711 mu-Law);
  2. Microdigital MDC-M6290FTD-1 (qeto - 1080p, compression format - H.264, bitrate - 1 Mb / s, ha ho na molumo);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (qeto - 1080p, sebopeho sa compression - H.264, bitrate - 1.5 Mb / s, molumo oa AAC).

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Melapo eohle e meraro e ile ea hlahisoa ka nako e le 'ngoe ho ea lerung, audio transcoding e ne e etsoa ho tsoa ho kh'amera e le' ngoe feela, 'me ho rekota polokelong ea lehae ho ile ha koaloa. Moroalo oa CPU o ne o ka ba 5%, tšebeliso ea RAM e ne e le 32 MB (ka ts'ebetso), 56 MB (kakaretso e kenyelletsa OS).

Kahoo, lik'hamera tse ka bang 20 - 30 li ka kopanngoa le molaoli ea bohlale oa lapeng (ho itšetlehile ka qeto le bitrate), e lekaneng bakeng sa tsamaiso ea ho shebella video bakeng sa ntlo ea mekato e meraro kapa ntlo e nyenyane ea polokelo. Bakeng sa mesebetsi e hlokang ts'ebetso e kholoanyane, o ka sebelisa nettop e nang le multi-core Intel processor le Linux Debian Sarge OS. Hajoale molaoli o ntse a lekoa, 'me lintlha tse mabapi le ts'ebetso ea eona li tla nchafatsoa.

Tšebelisano le leru

Lehae le bohlale le thehiloeng marung le boloka lintlha tsa basebelisi (litekanyo tsa video le sensor) marung. Mehaho ea polokelo ea leru e tla tšohloa ka ho qaqileng haholoanyane sehloohong se latelang letotong la rona. Joale ha re bue ka sebopeho sa ho fetisa melaetsa ea tlhahisoleseling ho tloha ho molaoli ea bohlale oa lapeng ho ea ho leru.

Maemo a lisebelisoa tse hokahaneng le litekanyo tsa sensor li fetisoa ka protocol MQTT, eo hangata e sebelisoang mererong ea Marang-rang ea Lintho ka lebaka la bonolo le matla a matla. MQTT e sebelisa mohlala oa li-client-server, moo bareki ba ingolisang ho lihlooho tse itseng ka har'a broker le ho phatlalatsa melaetsa ea bona. Morekisi o romella melaetsa ho bohle ba ngolisitseng ho latela melao e behiloeng ke boemo ba QoS (Boleng ba Tšebeletso):

  • QoS 0 — максимум один раз (нет гарантии доставки);
  • QoS 1 - bonyane hang (ka netefatso ea ho pepa);
  • QoS 2 - hantle hang (ka netefatso e eketsehileng ea ho fana).

Tabeng ea rona, re sebelisa Eclipse Monoang. Lebitso la sehlooho ke sekhetho se ikhethileng sa molaoli oa lapeng ea bohlale. Mofani oa MQTT ka hare ho ts'ebetso ea seva o ngolisa sehlooho sena mme o fetolela melaetsa ea JSON e tsoang ho mookameli oa molaetsa ho eona. Ka lehlakoreng le leng, melaetsa e tsoang ho morekisi oa MQTT e fetisetsoa ke eona ho mookameli oa molaetsa, ebe o e fetisetsa ho ba ngolisitseng ka har'a ts'ebetso ea seva:

Cloud Smart Home. Karolo ea 1: Taolo le li-sensor

Ho fetisa melaetsa e mabapi le boemo ba molaoli ea bohlale oa lapeng, ho sebelisoa mochine oa melaetsa e bolokiloeng melaetsa e bolokilweng протокола MQTT. Это позволяет правильно отслеживать моменты переподключений при сбоях электропитания.

Moreki oa MQTT o entsoe ho ipapisitsoe le ts'ebetsong ea laeborari Eclipse Paho ka puo ea C++.

H.264 + AAC media streams e romelloa marung ka protocol ea RTMP, moo sehlopha sa li-server tsa mecha ea litaba se nang le boikarabelo ba ho li sebetsa le ho li boloka. Ho aba mojaro ka botlalo sehlopheng le ho khetha seva sa media se laetsoeng hanyane, molaoli ea bohlale oa lapeng o etsa kopo ea pele ho cloud load balancer mme ka mor'a moo o romela mecha ea litaba.

fihlela qeto e

Sengoliloeng sena se ile sa hlahloba ts'ebetsong e le 'ngoe e khethehileng ea molaoli ea bohlale oa lapeng o thehiloeng ho microcomputer ea Raspberry Pi 3 B +, e ka amohelang, ho sebetsana le tlhahisoleseling le lisebelisoa tsa taolo ka protocol ea Z-Wave, ho sebelisana le lik'hamera tsa IP ka protocol ea ONVIF, hape le ho fapanyetsana data le E fana ka litaelo ka leru tšebeletso ka MQTT le RTMP protocol. Enjene ea tlhahiso ea logic e entsoe ho ipapisitsoe le melao le lintlha tse hlakileng tse hlahisitsoeng ka sebopeho sa JSON.

Mookameli oa lehae ea bohlale o ntse a sebetsa ka liteko libakeng tse 'maloa tsa Moscow le sebakeng sa Moscow.

Mofuta o latelang oa molaoli o rera ho hokahanya mefuta e meng ea lisebelisoa (RF, Bluetooth, WiFi, wired). Bakeng sa boiketlo ba basebelisi, mokhoa oa ho hokahanya li-sensor le lik'hamera tsa IP li tla fetisetsoa ts'ebelisong ea mehala. Ho boetse ho na le mehopolo ea ho ntlafatsa khoutu ea ts'ebetso ea seva le ho tsamaisa software ho sistimi e sebetsang openwrt. Sena se tla u lumella ho boloka ho molaoli o arohaneng le ho fetisetsa ts'ebetso ea ntlo e bohlale ho router e tloaelehileng ea ntlo.

Source: www.habr.com

Eketsa ka tlhaloso