Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Имрӯз, ба шарофати рушди босуръати микроэлектроника, каналҳои коммуникатсионӣ, технологияҳои интернетӣ ва зеҳни сунъӣ, мавзӯи хонаҳои интеллектуалӣ рӯз аз рӯз муҳимтар мегардад. Манзили инсонӣ аз давраи сангин ва дар давраи инқилоби саноатӣ 4.0 ва Интернети чизҳо ба тағйироти ҷиддӣ дучор шуд, он бароҳат, функсионалӣ ва бехатар гардид. Қарорҳо ба бозор меоянд, ки квартира ё хонаи деҳотро ба системаҳои мураккаби иттилоотӣ табдил медиҳанд, ки аз ҳар гӯшаи ҷаҳон бо истифода аз смартфон идора мешаванд. Гузашта аз ин, ҳамкории инсон ва мошин дигар дониши забонҳои барномасозиро талаб намекунад - ба шарофати алгоритмҳои шинохти нутқ ва синтез, шахс бо хонаи интеллектуалӣ бо забони модарии худ сӯҳбат мекунад.

Баъзе системаҳои хонагии интеллектуалӣ, ки ҳоло дар бозор мавҷуданд, рушди мантиқии системаҳои назорати видеоии абрӣ мебошанд, ки таҳиягарони онҳо зарурати ҳалли ҳамаҷонибаи на танҳо барои мониторинг, балки барои идоракунии объектҳои дурдастро дарк кардаанд.

Мо ба диққати шумо як силсилаи се мақоларо пешниҳод мекунем, ки дар бораи ҳамаи ҷузъҳои асосии системаи абрии хонаи интеллектуалӣ, ки аз ҷониби муаллиф шахсан таҳия ва ба истифода дода шудаанд, нақл мекунанд. Мақолаи аввал ба таҷҳизоти терминали муштарӣ, ки дар дохили хонаи интеллектуалӣ насб шудааст, дуюм ба меъмории системаи нигоҳдории абрӣ ва коркарди маълумот ва ниҳоят, сеюм ба замимаи муштарӣ барои идоракунии система дар дастгоҳҳои мобилӣ ва статсионарӣ бахшида шудааст.

Таҷҳизоти хонагии интеллектуалӣ

Аввалан, биёед дар бораи чӣ гуна сохтани хонаи оқил аз як квартира, дача ё коттеҷи оддӣ сӯҳбат кунем. Барои ин, чун қоида, дар хона ҷойгир кардани таҷҳизоти зерин зарур аст:

  1. сенсорҳо, ки параметрҳои гуногуни муҳити зистро чен мекунанд;
  2. фаъолкунандаҳо, ки ба объектҳои беруна амал мекунанд;
  3. контролер, ки мувофиқи ченакҳои сенсорӣ ва мантиқи дохилшуда ҳисобҳоро анҷом медиҳад ва ба фаъолкунандаҳо фармон медиҳад.

Дар расми зерин диаграммаи хонаи интеллектуалӣ нишон дода шудааст, ки дар он сенсорҳо барои ихроҷи об (1) дар ҳаммом, ҳарорат (2) ва равшанӣ (3) дар хоб, розеткаи интеллектуалӣ (4) дар ошхона ва камераи назорати видеоӣ (5) дар долон.

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Дар айни замон, сенсорҳои бесим, ки бо протоколҳои RF433, Z-Wave, ZigBee, Bluetooth ва WiFi кор мекунанд, васеъ истифода мешаванд. Афзалиятҳои асосии онҳо осонии насб ва истифода, инчунин арзиши паст ва эътимоднокӣ мебошанд, зеро Истеҳсолкунандагон кӯшиш мекунанд, ки дастгоҳҳои худро ба бозори оммавӣ расонанд ва онҳоро барои корбари оддӣ дастрас кунанд.

Сенсорҳо ва фаъолкунандаҳо, чун қоида, тавассути интерфейси бесим ба контроллерҳои хонагии интеллектуалӣ (6) пайваст карда мешаванд - микрокомпьютери махсус, ки ҳамаи ин дастгоҳҳоро дар як шабакаи ягона муттаҳид мекунад ва онҳоро идора мекунад.

Аммо, баъзе қарорҳо метавонанд дар як вақт сенсор, фаъолкунанда ва контроллерро муттаҳид кунанд. Масалан, як сими интеллектуалӣ метавонад мувофиқи ҷадвал барои фурӯзон ё хомӯш кардани он барномарезӣ карда шавад ва камераи назорати видеоии абрӣ метавонад дар асоси сигнали детектори ҳаракат видео сабт кунад. Дар соддатарин ҳолатҳо, шумо метавонед бе контролери алоҳида кор кунед, аммо барои сохтани системаи чандир бо бисёр сенарияҳо зарур аст.

Барои пайваст кардани контролери хонагии интеллектуалӣ ба шабакаи глобалӣ роутери муқаррарии интернетиро (7) истифода бурдан мумкин аст, ки кайҳо боз як асбоби маъмулии рӯзгор дар ҳама хонаҳо шудааст. Дар ин ҷо як далели дигар ба манфиати контролери хонагии интеллектуалӣ вуҷуд дорад - агар пайвастшавӣ ба Интернет қатъ шавад, хонаи оқил ба шарофати блоки мантиқии дар дохили контроллер нигоҳ дошташуда кори муқаррариро идома медиҳад, на дар хидмати абр.

Назорати хонагии интеллектуалӣ

Назоратчии системаи абрии хонагии интеллектуалӣ, ки дар ин мақола муҳокима карда мешавад, дар асоси микрокомпьютери як тахта таҳия шудааст Модели Raspberry Pi 3 B+, ки моҳи марти соли 2018 бароварда шудааст ва дорои захираҳои кофӣ ва иҷрои вазифаҳои хонагии интеллектуалӣ мебошад. Он дорои протсессори чоргонаи Cortex-A53 дар асоси меъмории 64-битии ARMv8-A, ки дар 1.4 ГГц кор мекунад, инчунин 1 ГБ хотираи оперативӣ, Wi-Fi 802.11ac, Bluetooth 4.2 ва адаптери гигабити Ethernet тавассути USB 2.0 кор мекунад. .

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Ҷамъоварии контроллер хеле осон аст - микрокомпьютер (1) дар қуттии пластикӣ (2) насб карда мешавад, пас корти хотираи 8 ГБ дар формати microSD бо нармафзор (3) ва контроллери шабакаи USB Z-Wave (4) слотҳои мувофиқ. Назорати хонагии интеллектуалӣ ба таъминоти барқ ​​тавассути адаптери барқи 5V, 2.1А (5) ва сими USB - micro-USB (6) пайваст карда шудааст. Ҳар як контроллер рақами мушаххаси мушаххас дорад, ки ҳангоми бори аввал дар файли конфигуратсия навишта шудааст ва барои ҳамкорӣ бо хидматҳои интеллектуалии абрии хона зарур аст.

Нармафзори нозири хонагии интеллектуалӣ аз ҷониби муаллифи ин мақола дар асоси системаи оператсионӣ таҳия шудааст Linux Raspbian Stretch. Он аз зерсистемаҳои асосии зерин иборат аст:

  • раванди сервер барои ҳамкорӣ бо таҷҳизоти хонагии интеллектуалӣ ва абр;
  • интерфейси графикии корбар барои танзими конфигуратсия ва параметрҳои кори контроллер;
  • пойгоҳи додаҳо барои нигоҳ доштани конфигуратсияи контроллер.

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Пойгоҳи додаҳо контролери хонагии интеллектуалӣ дар асоси DBMS дарунсохташуда амалӣ карда мешавад SQLite ва файл дар корти SD бо нармафзори система аст. Он ҳамчун анбор барои конфигуратсияи контроллер хизмат мекунад - маълумот дар бораи таҷҳизоти пайвастшуда ва ҳолати кунунии он, блоки қоидаҳои истеҳсолии мантиқӣ, инчунин маълумоте, ки индексатсияро талаб мекунад (масалан, номҳои файлҳои бойгонии видеоии маҳаллӣ). Вақте ки контроллер бозоғоз мешавад, ин маълумот захира карда мешавад, ки имкон медиҳад контроллер дар ҳолати қатъи барқ ​​барқарор карда шавад.

GUI контролери хонагии интеллектуалӣ дар PHP 7 бо истифода аз микрофреймворк таҳия шудааст ночиз. Веб-сервер барои иҷрои барнома масъул аст. lighttpd, аксар вақт дар дастгоҳҳои дарунсохт аз сабаби иҷрои хуб ва талаботи ками захираҳо истифода мешавад.

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо
(барои кушодани қарори калонтар ба расм клик кунед)

Вазифаи асосии интерфейси графикӣ пайваст кардани таҷҳизоти интеллектуалии хонагӣ (камераҳои назорати IP ва сенсорҳо) ба контроллер мебошад. Барномаи веб конфигуратсия ва ҳолати кунунии контроллер ва дастгоҳҳои ба он пайвастшударо аз пойгоҳи додаҳои SQLite мехонад. Барои тағир додани конфигуратсияи контроллер, он фармонҳои идоракуниро дар формати JSON тавассути интерфейси RESTful API раванди сервер мефиристад.

Раванди сервер

Раванди сервер - ҷузъи асосӣ, ки тамоми корҳои асосиро оид ба автоматикунонии равандҳои иттилоотие, ки асоси хонаи интеллектуалиро ташкил медиҳанд, иҷро мекунад: қабул ва коркарди маълумоти ҳассос, додани амалҳои назоратӣ вобаста ба мантиқи воридшуда. Мақсади раванди сервер ин ҳамкорӣ бо таҷҳизоти хонагии интеллектуалӣ, иҷрои қоидаҳои мантиқии истеҳсолот, қабул ва коркарди фармонҳо аз интерфейси графикӣ ва абр мебошад. Раванди сервер дар контролери хонагии интеллектуалӣ, ки мавриди баррасӣ қарор дорад, ҳамчун як замимаи бисёрсоҳавӣ дар C++ таҳия ва ҳамчун хидмати алоҳида оғоз карда мешавад. systemd низоми амал Linux Raspbian.

Блокҳои асосии раванди сервер инҳоянд:

  1. Менеҷери паёмҳо;
  2. сервери камераи IP;
  3. Сервери дастгоҳи Z-Wave;
  4. Сервери қоидаҳои мантиқии истеҳсолот;
  5. Махзани конфигуратсияи контроллер ва блоки қоидаҳои мантиқӣ;
  6. Сервери RESTful API барои ҳамкорӣ бо интерфейси графикӣ;
  7. Мизоҷи MQTT барои ҳамкорӣ бо абр.

Блокҳои равандҳои сервер ҳамчун риштаҳои алоҳида амалӣ карда мешаванд, ки маълумот дар байни онҳо дар шакли паёмҳо дар формати JSON интиқол дода мешавад (ё сохторҳои маълумоте, ки ин форматро дар хотираи равандҳо намояндагӣ мекунанд).

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Қисмати асосии раванди сервер мебошад мудири паём, ки паёмҳои JSON-ро ба ҳама блокҳои раванди сервер равона мекунад. Намудҳои майдонҳои иттилоотии JSON ва арзишҳое, ки онҳо метавонанд қабул кунанд, дар ҷадвал оварда шудаанд:

навъи дастгоҳ
протокол
Навъи паём
ҳолати дастгоҳ
фармоиш

камера
onvif
сенсор
on
ҷараён (фаъол/хомӯш)

санҷандаро
zwave
фармоиш
хомӯш кардан
сабт (фаъол/хомӯш)

самаранок
мктт
BusinessLogicRule
ҷараён (фаъол/хомӯш)
evice (Илова кардан/Нест кардан)

BusinessLogic
ConfigurationData
сабт (фаъол/хомӯш)

блутуз
ҳолати дастгоҳ
хатогӣ

Вай-фай

rf

Масалан, паём аз детектори ҳаракати камера чунин менамояд:

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

Мантиқи истеҳсолот

Барои қабул ё фиристодани паём аз диспетчер, блоки протсесси сервер ба паёмҳои навъи муайян обуна мешавад. Обуна як қоидаи мантиқии истеҳсолии намуд аст "Агар... пас ...", ки дар формати JSON пешниҳод шудааст ва истинод ба коркарди паём дар дохили блоки раванди сервер. Масалан, барои иҷозат додан ба сервери IP камера барои гирифтани фармонҳо аз GUI ва абр, шумо бояд қоидаҳои зеринро илова кунед:

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

Агар шартхои дар пешгузашта (тарафи чап) коидахо дурустанд, пас конеъ мешавад оқибат (тарафи рост) қоидаҳо ва коркардкунанда ба матни паёми JSON дастрасӣ пайдо мекунад. Антеседент операторҳои мантиқиро дастгирӣ мекунад, ки ҷуфтҳои калид-арзиши JSON-ро муқоиса мекунанд:

  1. баробар "баробар";
  2. ба "но_баробар" баробар нест;
  3. камтар "камтар";
  4. бештар "бузургтар";
  5. камтар ё баробар ба "кам_ё_баробар";
  6. бузургтар ё баробар ба "калонтар_ё_баробар".

Натиҷаҳои муқоисаро бо истифода аз операторҳои алгебраи булӣ метавон бо ҳамдигар алоқаманд кард:

  1. Ва "ва"
  2. Ё "ё";
  3. НЕ "не".

Ҳамин тариқ, бо навиштани операторҳо ва операндҳо бо нотаҳои лаҳистонӣ, шумо метавонед бо миқдори зиёди параметрҳо шароити хеле мураккаб эҷод кунед.

Маҳз ҳамон механизм, ки ба паёмҳои JSON ва қоидаҳои истеҳсолӣ дар формати JSON асос ёфтааст, дар блоки сервери мантиқии истеҳсолӣ барои муаррифии дониш ва анҷом додани хулосаи мантиқӣ бо истифода аз маълумоти ҳассос аз сенсорҳои хонагии интеллектуалӣ истифода мешавад.

Бо истифода аз замимаи мобилӣ корбар сенарияҳоеро эҷод мекунад, ки мувофиқи он хонаи интеллектуалӣ бояд кор кунад. Барои намуна: "Агар сенсори кушодани дари пеш ба кор андохта шавад, пас чароғро дар долон фурӯзон кунед". Барнома идентификаторҳои сенсорҳо (сенсори кушода) ва фаъолкунандаҳоро (розеткаи интеллектуалӣ ё лампаи интеллектуалӣ) аз пойгоҳи додаҳо мехонад ва қоидаи мантиқӣ дар формати JSON тавлид мекунад, ки ба контролери хонагии интеллектуалӣ фиристода мешавад. Ин механизм дар мақолаи сеюми силсилаи мо муфассалтар баррасӣ карда мешавад, ки дар он мо дар бораи барномаи муштарӣ барои идоракунии хонаи оқил сӯҳбат хоҳем кард.

Механизми мантиқии истеҳсолӣ, ки дар боло баррасӣ шуд, бо истифода аз китобхона амалӣ карда мешавад RapidJSON — Таҳлилгари SAX барои формати JSON дар C++. Хондан ва таҳлили пайдарпайи як қатор қоидаҳои истеҳсолот ба шумо имкон медиҳад, ки функсияи муқоисаи маълумотро дар дохили пешинҳо ба осонӣ амалӣ кунед:

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

Ин аст, Факт — сохторе, ки дорои ҷуфтҳои калид-арзиш аз паёми JSON, m_Қоидаҳо — қатори қоидаҳои истеҳсолот. Муқоисаи паёми воридотӣ ва қоидаи истеҳсолӣ дар функсия амалӣ карда мешавад reader.Parse(ruleStream, ruleHandler)ки дар ruleHandler объектест, ки мантиқи мантиқӣ ва операторҳои муқоисавӣ дорад. RuleId — идентификатори беназири қоида, ки ба шарофати он қоидаҳоро дар дохили махзани идоракунии хонагии интеллектуалӣ нигоҳ доштан ва таҳрир кардан мумкин аст. m_pActions — массив бо натиҷаҳои хулосаи мантиқӣ: паёмҳои JSON, ки натиҷаҳоро аз пойгоҳи қоидаҳо дар бар мегиранд ва минбаъд ба мудири паём фиристода мешаванд, то риштаҳои муштарӣ онҳоро коркард кунанд.

Иҷрои RapidJSON бо функсия муқоисашаванда аст стрлен (), ва талаботи ҳадди ақали захираҳои система имкон медиҳад, ки ин китобхона дар дастгоҳҳои дарунсохт истифода шавад. Истифодаи паёмҳо ва қоидаҳои мантиқӣ дар формати JSON ба шумо имкон медиҳад, ки системаи тағйирпазири мубодилаи иттилоот байни ҳама ҷузъҳои контролери хонагии интеллектуалиро амалӣ кунед.

Датчикҳои Z-Wave ва фаъолкунандаҳо

Бартарии асосии хонаи интеллектуалӣ дар он аст, ки вай метавонад параметрҳои гуногуни муҳити берунаро мустақилона чен кунад ва вобаста ба вазъият вазифаҳои муфидро иҷро кунад. Барои ин сенсорҳо ва фаъолкунандаҳо ба контролери хонагии интеллектуалӣ пайваст карда мешаванд. Дар версияи ҷорӣ, инҳо дастгоҳҳои бесим мебошанд, ки бо истифода аз протокол кор мекунанд Мавҷи Z аз рӯи басомади махсус ҷудошуда 869 MHz Барои Русия. Барои кор, онҳо ба як шабакаи торӣ муттаҳид карда мешаванд, ки дар он ретрансляторҳои сигнал барои зиёд кардани майдони фарогирӣ мавҷуданд. Дастгоҳҳо инчунин режими махсуси сарфаи энергия доранд - онҳо бештари вақтро дар ҳолати хоб мегузаронанд ва танҳо ҳангоми тағир ёфтани ҳолати онҳо маълумот мефиристанд, ки ин метавонад мӯҳлати батареяи дарунсохтро хеле дароз кунад.

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Ҳоло шумо метавонед дар бозор шумораи хеле зиёди дастгоҳҳои гуногуни Z-Wave пайдо кунед. Биёед ба чанд мисол назар андозем:

  1. Розеткаи интеллектуалии Zipato PAN16 метавонад параметрҳои зеринро чен кунад: масрафи нерӯи барқ ​​(кВт/соат), қудрат (Вт), шиддат (V) ва ҷараёни (A) дар шабакаи барқ. Он инчунин дорои калиди дарунсохташуда мебошад, ки бо он шумо метавонед асбоби электрикии пайвастшударо идора кунед;
  2. Сенсори ихроҷи Neo Coolcam мавҷудияти моеъи рехташударо тавассути бастани контактҳои зондҳои дурдаст муайян мекунад;
  3. Сенсори дуди Zipato PH-PSG01 вақте ба кор андохта мешавад, ки зарраҳои дуд ба камераи анализатори газ ворид мешаванд;
  4. Сенсори ҳаракати Neo Coolcam радиатсияи инфрасурхи бадани инсонро таҳлил мекунад. Илова бар ин, сенсори нур (Lx) мавҷуд аст;
  5. Multisensor Philio PST02-A ҳарорат (°C), рӯшноӣ (%), кушодани дар, ҳузури шахсро дар ҳуҷра чен мекунад;
  6. Z-Wave USB Stick контролери шабакавии ZME E UZB1, ки ба он сенсорҳо пайваст шудаанд.

Хеле муҳим аст, ки дастгоҳҳо ва контроллер дар як басомад кор кунанд, вагарна онҳо дар лаҳзаи пайвастшавӣ ҳамдигарро нахоҳанд дид. То 232 дастгоҳро метавон ба як контролери шабакаи Z-Wave пайваст кард, ки ин барои квартира ё хонаи деҳот кофӣ аст. Барои васеъ кардани минтақаи фарогирии шабака дар дохили хона, васлаки интеллектуалӣ метавонад ҳамчун такроркунандаи сигнал истифода шавад.

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Дар раванди сервери нозири хонагии интеллектуалӣ, ки дар банди қаблӣ баррасӣ шудааст, сервери Z-Wave барои ҳамкорӣ бо дастгоҳҳои Z-Wave масъул аст. Он китобхонаро барои гирифтани маълумот аз сенсорҳо истифода мебарад OpenZWave дар C++, ки интерфейсро барои ҳамкорӣ бо контролери USB шабакаи Z-Wave таъмин мекунад ва бо сенсорҳо ва фаъолкунакҳои гуногун кор мекунад. Арзиши параметри муҳити зист, ки аз ҷониби сенсор чен карда мешавад, аз ҷониби сервери Z-Wave дар шакли паёми 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"
}

Сипас он ба мудири паёми раванди сервер фиристода мешавад, то риштаҳои муштарӣ онро қабул кунанд. Муштарии асосӣ сервери мантиқии истеҳсолӣ мебошад, ки ба арзишҳои майдони паём дар пешгӯиҳои қоидаҳои мантиқӣ мувофиқат мекунад. Натиҷаҳои хулосабарорӣ, ки дорои фармонҳои назорат мебошанд, ба мудири паём баргардонида мешаванд ва аз он ҷо ба сервери Z-Wave меравад, ки онҳоро рамзкушоӣ мекунад ва ба контроллери шабакаи Z-Wave USB мефиристад. Сипас онҳо ба фаъолкунанда ворид мешаванд, ки ҳолати объектҳои муҳити зистро тағир медиҳад ва хонаи интеллектуалӣ ҳамин тавр кори муфидро иҷро мекунад.

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо
(барои кушодани қарори калонтар ба расм клик кунед)

Пайваст кардани дастгоҳҳои Z-Wave дар интерфейси графикии контролери хонагии интеллектуалӣ анҷом дода мешавад. Барои ин, ба саҳифа бо рӯйхати дастгоҳҳо гузаред ва тугмаи "Илова кардан" -ро клик кунед. Фармони илова тавассути интерфейси RESTful API ба раванди сервер ворид мешавад ва сипас аз ҷониби мудири паём ба сервери Z-Wave фиристода мешавад, ки он контроллери шабакаи Z-Wave USB-ро ба ҳолати махсус барои илова кардани дастгоҳҳо мегузорад. Баъдан, дар дастгоҳи Z-Wave шумо бояд як қатор пахшкунии зудро (3 пахш дар давоми 1,5 сония) тугмаи хидматрасониро иҷро кунед. Назоратчии USB дастгоҳро ба шабака пайваст мекунад ва маълумот дар бораи он ба сервери Z-Wave мефиристад. Ин, дар навбати худ, дар пойгоҳи додаҳои SQLite бо параметрҳои дастгоҳи нав сабти нав эҷод мекунад. Пас аз фосилаи вақти муайян, интерфейси графикӣ ба саҳифаи рӯйхати дастгоҳҳои Z-Wave бармегардад, маълумотро аз пойгоҳи додаҳо мехонад ва дастгоҳи навро дар рӯйхат намоиш медиҳад. Ҳар як дастгоҳ идентификатори беназири худро мегирад, ки дар қоидаҳои хулосабарории истеҳсолот ва ҳангоми кор дар абр истифода мешавад. Амали ин алгоритм дар диаграммаи UML нишон дода шудааст:

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо
(барои кушодани қарори калонтар ба расм клик кунед)

Пайваст кардани камераҳои IP

Системаи абрии хонаи интеллектуалӣ, ки дар ин мақола баррасӣ мешавад, навсозии системаи назорати видеоии абрӣ мебошад, ки онро муаллиф низ таҳия кардааст, ки дар тӯли чанд сол дар бозор қарор дорад ва дар Русия насбҳои зиёде дорад.

Барои системаҳои назорати видеоии абрӣ, яке аз мушкилоти шадид интихоби маҳдуди таҷҳизот мебошад, ки бо онҳо ҳамгироӣ кардан мумкин аст. Нармафзоре, ки барои пайвастшавӣ ба абр масъул аст, дар дохили камераи видеоӣ насб карда шудааст, ки фавран ба сахтафзори он - протсессор ва ҳаҷми хотираи холӣ талаботи ҷиддӣ мегузорад. Ин асосан нархи баландтари камераҳои абрии CCTV-ро нисбат ба камераҳои муқаррарии IP шарҳ медиҳад. Илова бар ин, як марҳилаи тӯлонии гуфтушунидҳо бо ширкатҳои истеҳсолкунандаи камераҳои CCTV барои дастрасӣ ба системаи файлии камера ва ҳама воситаҳои зарурии рушд талаб карда мешавад.

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Аз тарафи дигар, ҳама камераҳои муосири IP дорои протоколҳои стандартӣ барои ҳамкорӣ бо дигар таҷҳизот (хусусан, сабти видео). Ҳамин тариқ, истифодаи як контролери алоҳида, ки тавассути протоколи стандартӣ пайваст мешавад ва ҷараёнҳои видеоиро аз камераҳои IP ба абр пахш мекунад, барои системаҳои назорати видеоии абрӣ бартариҳои назарраси рақобатиро фароҳам меорад. Ғайр аз он, агар муштарӣ аллакай системаи назорати видеоиро дар асоси камераҳои оддии IP насб карда бошад, пас онро васеъ кардан ва онро ба хонаи интеллектуалии абрии мукаммал табдил додан мумкин аст.

Протоколи маъмултарин барои системаҳои назорати видеоии IP, ки ҳоло аз ҷониби ҳама истеҳсолкунандагони камераи IP бидуни истисно дастгирӣ карда мешавад. Профили ONVIF S, ки мушаххасоти он дар забони тавсифи хидматҳои веб мавҷуд аст wsdl. Истифодаи утилитҳо аз асбобҳо gSOAP Барои хидматҳое, ки бо камераҳои 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

Дар натиҷа, мо маҷмӯи сарлавҳаи "*.h" ва файлҳои сарчашмаи "*.cpp"-ро дар C++ мегирем, ки онҳоро мустақиман дар барнома ё китобхонаи алоҳида ҷойгир кардан ва бо истифода аз компилятори GCC тартиб додан мумкин аст. Аз сабаби бисёр вазифаҳо, код калон аст ва оптимизатсияи иловагиро талаб мекунад. Микрокомпьютери Raspberry Pi 3 модели B+ барои иҷрои ин код дорои қобилияти кофӣ дорад, аммо агар зарурати интиқоли код ба платформаи дигар вуҷуд дошта бошад, бояд меъмории дурусти протсессор ва захираҳои системаро интихоб кард.

Камераҳои IP, ки стандарти ONVIF-ро дастгирӣ мекунанд, ҳангоми кор дар шабакаи маҳаллӣ, ба гурӯҳи махсуси мултимедиявӣ бо суроға пайваст карда мешаванд. 239.255.255.250. Протокол вуҷуд дорад WS Discovery, ки ба шумо имкон медиҳад, ки ҷустуҷӯи дастгоҳҳоро дар шабакаи маҳаллӣ автоматӣ кунед.

Интерфейси графикии контролери хонагии интеллектуалӣ вазифаи ҷустуҷӯии камераҳои IP-ро дар PHP амалӣ мекунад, ки ҳангоми муошират бо хидматҳои веб тавассути паёмҳои XML хеле қулай аст. Ҳангоми интихоби ҷузъҳои меню Дастгоҳҳо > Камераҳои IP > Сканкунӣ Алгоритми ҷустуҷӯи камераҳои IP оғоз шудааст, ки натиҷаро дар шакли ҷадвал нишон медиҳад:

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо
(барои кушодани қарори калонтар ба расм клик кунед)

Вақте ки шумо камераро ба контроллер илова мекунед, шумо метавонед танзимотеро муайян кунед, ки мувофиқи он он бо абр ҳамкорӣ мекунад. Инчунин дар ин марҳила ба он ба таври худкор идентификатори беназири дастгоҳ таъин карда мешавад, ки тавассути он баъдтар онро дар дохили абр ба осонӣ муайян кардан мумкин аст.

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Баъдан, паём дар формати JSON тавлид мешавад, ки дорои тамоми параметрҳои камераи иловашуда мебошад ва ба раванди сервери контролери хонагии интеллектуалӣ тавассути фармони RESTful API фиристода мешавад, ки дар он параметрҳои камера рамзкушоӣ ва дар базаи дохилии SQLite захира карда мешаванд. инчунин барои оғоз кардани риштаҳои коркарди зерин истифода мешавад:

  1. таъсиси пайвасти RTSP барои қабули ҷараёнҳои видео ва аудио;
  2. рамзгузории аудио аз форматҳои G.711 mu-Law, G.711 A-Law, G.723 ва ғайра. ба формати AAC;
  3. рамзгузории ҷараёнҳои видеоӣ дар формати H.264 ва аудио дар формати AAC ба контейнери FLV ва интиқоли он ба абр тавассути протоколи RTMP;
  4. барқарор кардани пайвастшавӣ бо нуқтаи ниҳоии детектори ҳаракати IP камера тавассути протоколи ONVIF ва давра ба давра пурсиш кардани он;
  5. давра ба давра тавлид кардани тасвири пешнамоиши ангора ва фиристодани он ба абр тавассути протоколи MQTT;
  6. сабти маҳаллии ҷараёнҳои видео ва аудио дар шакли файлҳои алоҳида дар формати MP4 ба корти SD ё Flash-и контролери хонагии интеллектуалӣ.

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Барои барқарор кардани пайвастшавӣ бо камераҳо, рамзгузорӣ, коркард ва сабт кардани ҷараёнҳои видео дар раванди сервер, функсияҳои китобхона истифода мешаванд FFmpeg 4.1.0.

Дар озмоиши санҷиши самаранокӣ, 3 камера ба контроллер пайваст карда шуданд:

  1. HiWatch DS-I114W (тасвир - 720p, формати фишурдасозӣ - H.264, суръати бит - 1 Мб/с, садо G.711 mu-Law);
  2. Microdigital MDC-M6290FTD-1 (ҳатман - 1080p, формати фишурдасозӣ - H.264, суръати бит - 1 Мб/с, садо нест);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (қарори - 1080p, формати фишурдан - H.264, суръати бит - 1.5 Мб/с, аудио AAC).

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Ҳар се ҷараён ҳамзамон ба абр бароварда шуданд, рамзгузории аудио танҳо аз як камера анҷом дода шуд ва сабти бойгонии маҳаллӣ хомӯш карда шуд. Сарбории CPU тақрибан 5% буд, истифодаи RAM 32 МБ (дар як раванд), 56 МБ (бо назардошти ОС) буд.

Ҳамин тариқ, тақрибан 20 - 30 камераро метавон ба контроллери хонагии интеллектуалӣ пайваст кард (вобаста ба ҳалли ва суръати бит), ки барои системаи назорати видеоӣ барои коттеҷи сеошёна ё анбори хурд кофӣ аст. Барои вазифаҳое, ки иҷрои бештарро талаб мекунанд, шумо метавонед неттопро бо протсессори бисёраслии Intel ва Linux Debian Sarge OS истифода баред. Айни замон контроллер аз санҷиши корӣ мегузарад ва маълумот дар бораи иҷрои он нав карда мешавад.

Муносибат бо абр

Хонаи интеллектуалии ба абр асосёфта маълумоти корбарро (ченкуниҳои видео ва сенсор) дар абр нигоҳ медорад. Меъмории нигоҳдории абр дар мақолаи навбатии силсилаи мо муфассалтар баррасӣ карда мешавад. Акнун биёед дар бораи интерфейси интиқоли паёмҳои иттилоотӣ аз контролери хонагии интеллектуалӣ ба абр сӯҳбат кунем.

Ҳолати дастгоҳҳои пайвастшуда ва андозагирии сенсор тавассути протокол интиқол дода мешавад MQTT, ки аксар вақт дар лоиҳаҳои Интернети ашё бо сабаби соддагӣ ва самаранокии энергия истифода мешавад. MQTT модели муштарӣ-серверро истифода мебарад, ки дар он муштариён ба мавзӯъҳои мушаххаси брокер обуна мешаванд ва паёмҳои худро нашр мекунанд. Брокер ба ҳамаи муштариён мувофиқи қоидаҳои муайянкардаи сатҳи QoS (сифати хидмат) паёмҳо мефиристад:

  • QoS 0 - ҳадди аксар як маротиба (бе кафолати интиқол);
  • QoS 1 - на камтар аз як маротиба (бо тасдиқи таҳвил);
  • QoS 2 - маҳз як маротиба (бо тасдиқи интиқоли иловагӣ).

Дар ҳолати мо, мо истифода мебарем Гирифтани магас. Номи мавзӯъ идентификатори беназири контролери хонагии интеллектуалӣ мебошад. Мизоҷи MQTT дар дохили раванди сервер ба ин мавзӯъ обуна мешавад ва паёмҳои JSON-ро аз мудири паём ба он тарҷума мекунад. Баръакс, паёмҳо аз брокери MQTT аз ҷониби он ба менеҷери паём ирсол карда мешаванд, ки сипас онҳоро ба муштариёни худ дар дохили раванди сервер мултиплекс мекунад:

Cloud Smart Home. Қисми 1: Контроллер ва сенсорҳо

Барои интиқоли паёмҳо дар бораи ҳолати контролери хонагии интеллектуалӣ, механизми паёмҳои захирашуда истифода мешавад паёмҳои нигоҳ дошташуда Протоколи MQTT. Ин ба шумо имкон медиҳад, ки вақти васлшавиро ҳангоми қатъи барқ ​​​​дуруст назорат кунед.

Мизоҷи MQTT дар асоси татбиқи китобхона таҳия шудааст Гирифтани Пахо бо забони C++.

Ҷараёни медиаи H.264 + AAC тавассути протоколи RTMP ба абр фиристода мешаванд, ки дар он кластери серверҳои медиа барои коркард ва нигоҳдории онҳо масъул аст. Барои ба таври оптималӣ тақсим кардани сарборӣ дар кластер ва интихоби сервери медиаи камтар боршуда, контролери хонагии интеллектуалӣ ба мувозинати сарбории абр дархости пешакӣ медиҳад ва танҳо пас аз он ҷараёни медиаро мефиристад.

хулоса

Дар мақола як татбиқи мушаххаси контролери хонагии интеллектуалӣ дар асоси микрокомпьютери Raspberry Pi 3 B+ баррасӣ шудааст, ки метавонад тавассути протоколи Z-Wave иттилоот ва таҷҳизоти идоракуниро қабул, коркард кунад, бо камераҳои IP тавассути протоколи ONVIF ҳамкорӣ кунад, инчунин мубодилаи маълумот ва фармонҳоро бо хидмати абрӣ тавассути протоколҳои MQTT ва RTMP. Муҳаррики мантиқии истеҳсолӣ дар асоси муқоисаи қоидаҳо ва далелҳои мантиқӣ дар формати JSON таҳия шудааст.

Айни замон контролери хонагии интеллектуалӣ дар якчанд сайтҳои Маскав ва вилояти Маскав мавриди озмоиш қарор дорад.

Версияи навбатии контроллер ба нақша гирифтааст, ки дигар намудҳои дастгоҳҳоро (RF, Bluetooth, WiFi, симдор) пайваст кунад. Барои роҳати истифодабарандагон тартиби пайваст кардани сенсорҳо ва камераҳои IP ба замимаи мобилӣ интиқол дода мешавад. Инчунин идеяҳо барои оптимизатсияи коди раванди сервер ва интиқоли нармафзор ба системаи оператсионӣ мавҷуданд openwrt. Ин ба шумо имкон медиҳад, ки дар як контролери алоҳида сарфа кунед ва вазифаи хонаи интеллектуалиро ба роутери муқаррарии хонагӣ интиқол диҳед.

Манбаъ: will.com

Илова Эзоҳ