Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Sot, falë zhvillimit të shpejtë të mikroelektronikës, kanaleve të komunikimit, teknologjive të internetit dhe Inteligjencës Artificiale, tema e shtëpive inteligjente po bëhet gjithnjë e më e rëndësishme. Strehimi njerëzor ka pësuar ndryshime të rëndësishme që nga Epoka e Gurit dhe në epokën e Revolucionit Industrial 4.0 dhe Internetit të Gjërave, ai është bërë i rehatshëm, funksional dhe i sigurt. Në treg po vijnë zgjidhje që e kthejnë një apartament ose një shtëpi fshati në sisteme komplekse informacioni të kontrolluara nga kudo në botë duke përdorur një smartphone. Për më tepër, ndërveprimi njeri-makinë nuk kërkon më njohuri për gjuhët e programimit - falë algoritmeve të njohjes dhe sintezës së të folurit, një person flet me një shtëpi të zgjuar në gjuhën e tij amtare.

Disa sisteme të shtëpive inteligjente aktualisht në treg janë një zhvillim logjik i sistemeve të mbikqyrjes video cloud, zhvilluesit e të cilave kuptuan nevojën për një zgjidhje gjithëpërfshirëse jo vetëm për monitorimin, por edhe për menaxhimin e objekteve në distancë.

Ne paraqesim në vëmendjen tuaj një seri prej tre artikujsh, të cilët do t'ju tregojnë për të gjithë përbërësit kryesorë të një sistemi shtëpie inteligjente cloud, të zhvilluar personalisht nga autori dhe të vënë në veprim. Artikulli i parë i kushtohet pajisjes së klientit terminal të instaluar brenda një shtëpie inteligjente, i dyti arkitekturës së sistemit të ruajtjes së cloud dhe përpunimit të të dhënave dhe së fundi, i treti aplikacionit të klientit për menaxhimin e sistemit në pajisje të lëvizshme dhe të palëvizshme.

Pajisjet inteligjente të shtëpisë

Së pari, le të flasim se si të bëjmë një shtëpi të zgjuar nga një apartament, dacha ose vilë e zakonshme. Për ta bërë këtë, si rregull, është e nevojshme të vendosni pajisjet e mëposhtme në shtëpi:

  1. sensorë që matin parametra të ndryshëm mjedisorë;
  2. Aktivizuesit që veprojnë në objekte të jashtme;
  3. një kontrollues që kryen llogaritjet në përputhje me matjet e sensorit dhe logjikën e integruar, dhe lëshon komanda për aktivizuesit.

Figura e mëposhtme tregon një diagram të një shtëpie inteligjente, në të cilën ka sensorë për rrjedhjen e ujit (1) në banjë, temperaturën (2) dhe ndriçimin (3) në dhomën e gjumit, një prizë inteligjente (4) në kuzhinë dhe një kamera video survejimi (5) në korridor.

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Aktualisht, sensorët me valë që funksionojnë duke përdorur protokollet RF433, Z-Wave, ZigBee, Bluetooth dhe WiFi janë përdorur gjerësisht. Përparësitë e tyre kryesore janë lehtësia e instalimit dhe përdorimit, si dhe kostoja dhe besueshmëria e ulët, sepse Prodhuesit po përpiqen t'i sjellin pajisjet e tyre në tregun masiv dhe t'i bëjnë ato të aksesueshme për përdoruesit mesatar.

Sensorët dhe aktivizuesit, si rregull, lidhen përmes një ndërfaqeje pa tel me një kontrollues të zgjuar të shtëpisë (6) - një mikrokompjuter i specializuar që kombinon të gjitha këto pajisje në një rrjet të vetëm dhe i kontrollon ato.

Megjithatë, disa zgjidhje mund të kombinojnë një sensor, një aktivizues dhe një kontrollues në të njëjtën kohë. Për shembull, një prizë inteligjente mund të programohet për t'u ndezur ose fikur sipas një plani dhe një kamerë vëzhgimi video në re mund të regjistrojë video bazuar në një sinjal të detektorit të lëvizjes. Në rastet më të thjeshta, ju mund të bëni pa një kontrollues të veçantë, por për të krijuar një sistem fleksibël me shumë skenarë, është e nevojshme.

Për të lidhur kontrolluesin e shtëpisë inteligjente me rrjetin global, mund të përdoret një ruter i rregullt në internet (7), i cili prej kohësh është bërë një pajisje shtëpiake e zakonshme në çdo shtëpi. Këtu ka një argument tjetër në favor të një kontrolluesi të shtëpisë inteligjente - nëse lidhja me internetin humbet, shtëpia inteligjente do të vazhdojë të funksionojë normalisht falë bllokut logjik të ruajtur brenda kontrolluesit, dhe jo në shërbimin cloud.

Kontrollues i zgjuar i shtëpisë

Kontrolluesi për sistemin e shtëpisë inteligjente cloud i diskutuar në këtë artikull është zhvilluar bazuar në një mikrokompjuter me një bord Raspberry Pi 3 model B+, i cili u publikua në mars 2018 dhe ka burime dhe performancë të mjaftueshme për detyrat e shtëpisë inteligjente. Ai përfshin një procesor me katër bërthama Cortex-A53 të bazuar në arkitekturën 64-bit ARMv8-A, me orë 1.4 GHz, si dhe 1 GB RAM, Wi-Fi 802.11ac, Bluetooth 4.2 dhe një përshtatës Ethernet gigabit që funksionon përmes USB 2.0 .

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Montimi i kontrolluesit është shumë i thjeshtë - mikrokompjuteri (1) është instaluar në një kuti plastike (2), më pas një kartë memorie 8 GB në formatin microSD me softuer (3) dhe një kontrollues i rrjetit USB Z-Wave (4) janë instaluar në slotet përkatëse. Kontrolluesi i shtëpisë inteligjente është i lidhur me furnizimin me energji elektrike nëpërmjet një përshtatësi të energjisë 5V, 2.1A (5) dhe një kabllo USB - mikro-USB (6). Çdo kontrollues ka një numër unik identifikimi, i cili shkruhet në skedarin e konfigurimit kur lansohet për herë të parë dhe është i nevojshëm për të bashkëvepruar me shërbimet e shtëpisë inteligjente cloud.

Softueri i kontrollit të shtëpisë inteligjente u zhvillua nga autori i këtij artikulli bazuar në sistemin operativ Linux Raspbian Stretch. Ai përbëhet nga nënsistemet kryesore të mëposhtme:

  • procesi i serverit për ndërveprim me pajisjet inteligjente të shtëpisë dhe cloud;
  • ndërfaqe grafike e përdoruesit për vendosjen e konfigurimit dhe parametrave të funksionimit të kontrolluesit;
  • bazën e të dhënave për ruajtjen e konfigurimit të kontrolluesit.

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

bazës së të dhënave kontrolluesi inteligjent i shtëpisë është implementuar bazuar në një DBMS të integruar SQLite dhe është një skedar në një kartë SD me softuer të sistemit. Ai shërben si një ruajtje për konfigurimin e kontrolluesit - informacion në lidhje me pajisjet e lidhura dhe gjendjen e tij aktuale, një bllok rregullash logjike të prodhimit, si dhe informacione që kërkojnë indeksim (për shembull, emrat e skedarëve të një arkiv video lokal). Kur kontrolluesi rindizet, ky informacion ruhet, duke bërë të mundur rikthimin e kontrolluesit në rast të ndërprerjes së energjisë.

Ndërfaqja grafike kontrollues inteligjent i shtëpisë i zhvilluar në PHP 7 duke përdorur një mikrokornizë i hollë. Ueb serveri është përgjegjës për ekzekutimin e aplikacionit. lighttpd, përdoret shpesh në pajisjet e integruara për shkak të performancës së mirë dhe kërkesave të ulëta për burime.

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët
(kliko mbi foto për ta hapur me rezolucion më të lartë)

Funksioni kryesor i ndërfaqes grafike është lidhja e pajisjeve inteligjente të shtëpisë (kamerat e mbikëqyrjes IP dhe sensorët) me kontrolluesin. Aplikacioni ueb lexon konfigurimin dhe gjendjen aktuale të kontrolluesit dhe pajisjeve të lidhura me të nga baza e të dhënave SQLite. Për të ndryshuar konfigurimin e kontrolluesit, ai dërgon komanda kontrolli në format JSON përmes ndërfaqes RESTful API të procesit të serverit.

Procesi i serverit

Procesi i serverit - një komponent kyç që kryen të gjithë punën kryesore për automatizimin e proceseve të informacionit që formojnë bazën e një shtëpie inteligjente: marrjen dhe përpunimin e të dhënave ndijore, lëshimin e veprimeve të kontrollit në varësi të logjikës së ngulitur. Qëllimi i procesit të serverit është të ndërveprojë me pajisjet inteligjente të shtëpisë, të ekzekutojë rregullat logjike të prodhimit, të marrë dhe përpunojë komanda nga ndërfaqja grafike dhe cloud. Procesi i serverit në kontrolluesin e shtëpisë inteligjente në shqyrtim zbatohet si një aplikacion me shumë fije i zhvilluar në C++ dhe i lançuar si një shërbim i veçantë systemd sistemi operativ Linux Raspbian.

Blloqet kryesore të procesit të serverit janë:

  1. Menaxher i mesazheve;
  2. Server i kamerës IP;
  3. Serveri i pajisjes Z-Wave;
  4. Serveri i rregullave logjike të prodhimit;
  5. Baza e të dhënave e konfigurimit të kontrolluesit dhe blloku i rregullave logjike;
  6. Server API RESTful për ndërveprim me ndërfaqen grafike;
  7. Klient MQTT për ndërveprim me cloud.

Blloqet e procesit të serverit zbatohen si fije të veçanta, informacioni ndërmjet të cilave transferohet në formën e mesazheve në formatin JSON (ose strukturat e të dhënave që përfaqësojnë këtë format në kujtesën e procesit).

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Komponenti kryesor i procesit të serverit është menaxher i mesazheve, i cili drejton mesazhet JSON në të gjitha blloqet e procesit të serverit. Llojet e fushave të informacionit të mesazheve JSON dhe vlerat që mund të pranojnë janë renditur në tabelë:

Lloji i pajisjes
protokoll
Lloji i mesazhit
shteti i pajisjes
komandë

aparat fotografik
onvif
Të dhënat e sensorit
on
transmetim (Aktiv/Fikur)

sensor
valë zwave
komandë
nga
regjistrimi (Ndezur/Fikur)

efektore
mqtt
Rregulla Logjike e biznesit
transmetim (Aktiv/Fikur)
pajisje (Shto/Hiq)

Logjika e biznesit
të dhënat e konfigurimit
regjistrimi (Ndezur/Fikur)

Bluetooth
shteti i pajisjes
gabim

wifi

rf

Për shembull, një mesazh nga një detektor i lëvizjes së kamerës duket si ky:

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

Logjika e prodhimit

Për të marrë ose dërguar një mesazh nga dispeçeri, blloku i procesit të serverit pajtohet në mesazhe të një lloji të caktuar. Abonimi është një rregull logjik i prodhimit të llojit "Nese atehere...", i paraqitur në formatin JSON dhe një lidhje me mbajtësin e mesazheve brenda bllokut të procesit të serverit. Për shembull, për të lejuar serverin e kamerës IP të marrë komanda nga GUI dhe cloud, duhet të shtoni rregullin e mëposhtëm:

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

Nëse kushtet e përcaktuara në paraardhës (ana e majtë) rregullat janë të vërteta, atëherë është e kënaqur rrjedhimore (ana e djathtë) rregullon dhe mbajtësi merr akses në trupin e mesazhit JSON. Paraardhësi mbështet operatorët logjikë që krahasojnë çiftet çelës-vlerë JSON:

  1. barazohet "e barabartë";
  2. jo e barabartë me "jo_barabartë";
  3. më pak "më pak";
  4. më "më e madhe";
  5. më pak se ose e barabartë me "më pak_ose_barabartë";
  6. më e madhe ose e barabartë me "më e madhe_ose_barabartë".

Rezultatet e krahasimit mund të lidhen me njëri-tjetrin duke përdorur operatorët e algjebrës Boolean:

  1. Dhe "dhe"
  2. OSE "ose";
  3. JO "jo".

Kështu, duke shkruar operatorë dhe operandë në shënimin polak, mund të krijoni kushte mjaft komplekse me një numër të madh parametrash.

Saktësisht i njëjti mekanizëm, bazuar në mesazhet JSON dhe rregullat e prodhimit në formatin JSON, përdoret në bllokun e serverit logjik të prodhimit për të përfaqësuar njohuritë dhe për të kryer konkluzionet logjike duke përdorur të dhëna ndijore nga sensorët e shtëpisë inteligjente.

Duke përdorur një aplikacion celular, përdoruesi krijon skenarë sipas të cilëve duhet të funksionojë shtëpia inteligjente. Për shembull: "Nëse sensori për hapjen e derës së përparme aktivizohet, atëherë ndizni dritën në korridor". Aplikacioni lexon identifikuesit e sensorëve (sensori i hapjes) dhe aktivizuesit (priza inteligjente ose llamba inteligjente) nga baza e të dhënave dhe gjeneron një rregull logjik në formatin JSON, i cili dërgohet te kontrolluesi i shtëpisë inteligjente. Ky mekanizëm do të diskutohet më në detaje në artikullin e tretë të serisë sonë, ku do të flasim për aplikacionin e klientit për menaxhimin e një shtëpie inteligjente.

Mekanizmi logjik i prodhimit i diskutuar më sipër zbatohet duke përdorur bibliotekën RapidJSON — Parser SAX për formatin JSON në C++. Leximi dhe analizimi sekuencial i një sërë rregullash prodhimi ju lejon të zbatoni lehtësisht funksionin e krahasimit të të dhënave brenda paraardhësve:

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

Këtu pFakt — një strukturë që përmban çifte çelës-vlerë nga një mesazh JSON, m_Rules — vargu i rregullave të prodhimit. Krahasimi i mesazhit në hyrje dhe rregullit të prodhimit kryhet në funksion lexues.Parse(Rrjedha e rregullave, Trajtësi i Rregullave)Ku mbajtës i rregullave është një objekt që përmban logjikën e operatorëve Boolean dhe krahasimit. sRuleId — një identifikues unik rregullash, falë të cilit është e mundur të ruhen dhe modifikohen rregullat brenda bazës së të dhënave të kontrolluesit inteligjent të shtëpisë. m_pVeprimet — një grup me rezultatet e konkluzioneve logjike: mesazhet JSON që përmbajnë konsekuenca nga baza e rregullave dhe i dërgohen më tej menaxherit të mesazheve në mënyrë që temat e pajtimtarëve të mund t'i përpunojnë ato.

Performanca e RapidJSON është e krahasueshme me funksionin strlen (), dhe kërkesat minimale të burimeve të sistemit lejojnë përdorimin e kësaj biblioteke në pajisjet e integruara. Përdorimi i mesazheve dhe rregullave logjike në formatin JSON ju lejon të zbatoni një sistem fleksibël të shkëmbimit të informacionit midis të gjithë komponentëve të kontrolluesit të shtëpisë inteligjente.

Sensorët dhe aktivizuesit e valës Z

Avantazhi kryesor i një shtëpie inteligjente është se ajo mund të matë në mënyrë të pavarur parametra të ndryshëm të mjedisit të jashtëm dhe të kryejë funksione të dobishme në varësi të situatës. Për ta bërë këtë, sensorët dhe aktivizuesit janë të lidhur me kontrolluesin e shtëpisë inteligjente. Në versionin aktual, këto janë pajisje me valë që funksionojnë duke përdorur protokollin Valë-Z në një frekuencë të caktuar posaçërisht 869 MHz Për Rusinë. Për të funksionuar, ato kombinohen në një rrjet rrjetë, i cili përmban përsëritës të sinjalit për të rritur zonën e mbulimit. Pajisjet kanë gjithashtu një modalitet të veçantë të kursimit të energjisë - ato kalojnë shumicën e kohës në modalitetin e gjumit dhe dërgojnë informacion vetëm kur gjendja e tyre ndryshon, gjë që mund të zgjasë ndjeshëm jetën e baterisë së integruar.

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Tani mund të gjeni një numër mjaft të madh pajisjesh të ndryshme Z-Wave në treg. Le të hedhim një vështrim në disa shembuj:

  1. Priza inteligjente Zipato PAN16 mund të matë parametrat e mëposhtëm: konsumin e energjisë elektrike (kWh), fuqinë (W), tensionin (V) dhe rrymën (A) në rrjetin elektrik. Gjithashtu ka një çelës të integruar me të cilin mund të kontrolloni pajisjen elektrike të lidhur;
  2. Sensori i rrjedhjes së Neo Coolcam zbulon praninë e lëngut të derdhur duke mbyllur kontaktet e sondës në distancë;
  3. Sensori i tymit Zipato PH-PSG01 aktivizohet kur grimcat e tymit hyjnë në dhomën e analizuesit të gazit;
  4. Sensori i lëvizjes Neo Coolcam analizon rrezatimin infra të kuqe të trupit të njeriut. Për më tepër ka një sensor drite (Lx);
  5. Multisensori Philio PST02-A mat temperaturën (°C), dritën (%), hapjen e derës, praninë e një personi në dhomë;
  6. Kontrolluesi i rrjetit Z-Wave USB Stick ZME E UZB1, me të cilin janë lidhur sensorët.

Është shumë e rëndësishme që pajisjet dhe kontrolluesi të funksionojnë në të njëjtën frekuencë, përndryshe ata thjesht nuk do ta shohin njëri-tjetrin në momentin e lidhjes. Deri në 232 pajisje mund të lidhen me një kontrollues të rrjetit Z-Wave, i cili është mjaft i mjaftueshëm për një apartament ose një shtëpi të vendit. Për të zgjeruar zonën e mbulimit të rrjetit brenda, një prizë inteligjente mund të përdoret si një përsëritës sinjali.

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Në procesin e serverit të kontrolluesit të shtëpisë inteligjente të diskutuar në paragrafin e mëparshëm, serveri Z-Wave është përgjegjës për ndërveprimin me pajisjet Z-Wave. Ai përdor një bibliotekë për të marrë informacion nga sensorët OpenZWave në C++, i cili ofron një ndërfaqe për ndërveprim me kontrolluesin USB të rrjetit Z-Wave dhe punon me një sërë sensorësh dhe aktivizues. Vlera e parametrit mjedisor të matur nga sensori regjistrohet nga serveri Z-Wave në formën e një mesazhi 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"
}

Më pas i përcillet menaxherit të mesazheve të procesit të serverit në mënyrë që temat e pajtimtarëve të mund ta marrin atë. Abonenti kryesor është serveri logjik i prodhimit, i cili përputhet me vlerat e fushës së mesazhit në pararendësit e rregullave logjike. Rezultatet e konkluzionit që përmbajnë komandat e kontrollit i dërgohen menaxherit të mesazheve dhe prej andej shkojnë te serveri Z-Wave, i cili i deshifron ato dhe i dërgon në kontrolluesin USB të rrjetit Z-Wave. Më pas futen në aktivizues, i cili ndryshon gjendjen e objekteve mjedisore dhe shtëpia inteligjente kryen kështu punë të dobishme.

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët
(kliko mbi foto për ta hapur me rezolucion më të lartë)

Lidhja e pajisjeve Z-Wave bëhet në ndërfaqen grafike të kontrolluesit të shtëpisë inteligjente. Për ta bërë këtë, shkoni në faqen me një listë të pajisjeve dhe klikoni në butonin "Shto". Komanda e shtimit përmes ndërfaqes RESTful API hyn në procesin e serverit dhe më pas dërgohet nga menaxheri i mesazheve te serveri Z-Wave, i cili e vendos kontrolluesin USB të rrjetit Z-Wave në një modalitet të veçantë për shtimin e pajisjeve. Më pas, në pajisjen Z-Wave duhet të bëni një seri shtypjesh të shpejta (3 shtypje brenda 1,5 sekondash) të butonit të shërbimit. Kontrolluesi USB lidh pajisjen me rrjetin dhe dërgon informacion në lidhje me të në serverin Z-Wave. Kjo, nga ana tjetër, krijon një hyrje të re në bazën e të dhënave SQLite me parametrat e pajisjes së re. Pas një intervali kohor të caktuar, ndërfaqja grafike kthehet në faqen e listës së pajisjeve Z-Wave, lexon informacionin nga baza e të dhënave dhe shfaq pajisjen e re në listë. Çdo pajisje merr identifikuesin e saj unik, i cili përdoret në rregullat e konkluzioneve të prodhimit dhe kur punon në re. Funksionimi i këtij algoritmi tregohet në diagramin UML:

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët
(kliko mbi foto për ta hapur me rezolucion më të lartë)

Lidhja e kamerave IP

Sistemi i shtëpisë së zgjuar cloud i diskutuar në këtë artikull është një azhurnim i sistemit të mbikëqyrjes video cloud, i zhvilluar gjithashtu nga autori, i cili ka qenë në treg për disa vite dhe ka shumë instalime në Rusi.

Për sistemet e mbikqyrjes video cloud, një nga problemet akute është përzgjedhja e kufizuar e pajisjeve me të cilat mund të kryhet integrimi. Softueri përgjegjës për lidhjen me renë kompjuterike është instaluar brenda videokamerës, e cila menjëherë vendos kërkesa serioze për harduerin e saj - procesorin dhe sasinë e memories së lirë. Kjo shpjegon kryesisht çmimin më të lartë të kamerave CCTV cloud në krahasim me kamerat e zakonshme IP. Përveç kësaj, kërkohet një fazë e gjatë negociatash me kompanitë e prodhimit të kamerave CCTV për të fituar akses në sistemin e skedarëve të kamerës dhe të gjitha mjetet e nevojshme të zhvillimit.

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Nga ana tjetër, të gjitha kamerat moderne IP kanë protokolle standarde për ndërveprim me pajisje të tjera (në veçanti, videoregjistruesit). Kështu, përdorimi i një kontrolluesi të veçantë që lidhet nëpërmjet një protokolli standard dhe transmeton transmetime video nga kamerat IP në cloud ofron avantazhe të konsiderueshme konkurruese për sistemet e mbikqyrjes video cloud. Për më tepër, nëse klienti ka instaluar tashmë një sistem të mbikqyrjes video bazuar në kamera të thjeshta IP, atëherë bëhet e mundur zgjerimi i tij dhe shndërrimi i tij në një shtëpi inteligjente cloud të plotë.

Protokolli më popullor për sistemet e mbikqyrjes video IP, i mbështetur tani nga të gjithë prodhuesit e kamerave IP pa përjashtim, është Profili i ONVIF S, specifikimet e të cilit ekzistojnë në një gjuhë përshkrimi të shërbimeve të internetit wsdl. Përdorimi i shërbimeve nga paketa e veglave gSOAP Është e mundur të gjenerohet kodi burimor për shërbimet që punojnë me 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

Si rezultat, marrim një grup skedarësh të titullit "*.h" dhe burim "*.cpp" në C++, të cilat mund të vendosen drejtpërdrejt në një aplikacion ose një bibliotekë të veçantë dhe të përpilohen duke përdorur përpiluesin GCC. Për shkak të funksioneve të shumta, kodi është i madh dhe kërkon optimizim shtesë. Mikrokompjuteri Raspberry Pi 3 modeli B+ ka performancë të mjaftueshme për të ekzekutuar këtë kod, por nëse ka nevojë për të transferuar kodin në një platformë tjetër, është e nevojshme të zgjidhni arkitekturën e saktë të procesorit dhe burimet e sistemit.

Kamerat IP që mbështesin standardin ONVIF, kur funksionojnë në një rrjet lokal, lidhen me një grup të veçantë multicast me adresën 239.255.255.250. Ekziston një protokoll Zbulimi i WS, i cili ju lejon të automatizoni kërkimin e pajisjeve në rrjetin lokal.

Ndërfaqja grafike e kontrolluesit të shtëpisë inteligjente zbaton një funksion kërkimi për kamerat IP në PHP, i cili është shumë i përshtatshëm kur ndërveproni me shërbimet e uebit përmes mesazheve XML. Kur zgjidhni artikujt e menysë Pajisjet > Kamera IP > Skanim Nis algoritmi për kërkimin e kamerave IP, duke shfaqur rezultatin në formën e një tabele:

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët
(kliko mbi foto për ta hapur me rezolucion më të lartë)

Kur shtoni një kamerë në kontrollues, mund të specifikoni cilësimet sipas të cilave ajo do të ndërveprojë me renë kompjuterike. Gjithashtu në këtë fazë, i caktohet automatikisht një identifikues unik i pajisjes, me anë të të cilit më vonë mund të identifikohet lehtësisht brenda cloud.

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Më pas, gjenerohet një mesazh në formatin JSON që përmban të gjithë parametrat e kamerës së shtuar dhe dërgohet në procesin e serverit të kontrolluesit të shtëpisë inteligjente nëpërmjet komandës RESTful API, ku parametrat e kamerës deshifrohen dhe ruhen në bazën e të dhënave të brendshme SQLite dhe janë përdoret gjithashtu për të nisur fijet e mëposhtme të përpunimit:

  1. vendosja e një lidhjeje RTSP për të marrë transmetime video dhe audio;
  2. transkodimi i audios nga formatet G.711 mu-Law, G.711 A-Law, G.723, etj. në formatin AAC;
  3. transkodimi i transmetimeve video në formatin H.264 dhe audio në formatin AAC në një kontejner FLV dhe transmetimi i tij në cloud nëpërmjet protokollit RTMP;
  4. vendosja e një lidhjeje me pikën fundore të detektorit të lëvizjes së kamerës IP nëpërmjet protokollit ONVIF dhe sondazhi periodik i tij;
  5. gjenerimi periodik i një imazhi paraprak të miniaturës dhe dërgimi i tij në cloud nëpërmjet protokollit MQTT;
  6. regjistrimi lokal i transmetimeve video dhe audio në formën e skedarëve të veçantë në formatin MP4 në një kartë SD ose Flash të një kontrolluesi shtëpie inteligjente.

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Për të krijuar një lidhje me kamerat, për të transkoduar, përpunuar dhe regjistruar transmetime video në procesin e serverit, përdoren funksione nga biblioteka ffmpeg 4.1.0.

Në eksperimentin e testimit të performancës, 3 kamera u lidhën me kontrolluesin:

  1. HiWatch DS-I114W (rezolucion - 720p, formati i kompresimit - H.264, shpejtësia e biteve - 1 Mb/s, tingulli G.711 mu-Law);
  2. Mikrodixhital MDC-M6290FTD-1 (rezolucion - 1080p, formati i kompresimit - H.264, shpejtësia e biteve - 1 Mb/s, pa zë);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (rezolucion - 1080p, formati i kompresimit - H.264, shpejtësia e biteve - 1.5 Mb/s, audio AAC).

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Të tre transmetimet u dërguan njëkohësisht në cloud, transkodimi i audios u krye vetëm nga një kamerë dhe regjistrimi i arkivit lokal u çaktivizua. Ngarkesa e CPU-së ishte afërsisht 5%, përdorimi i RAM-it ishte 32 MB (për proces), 56 MB (gjithsej duke përfshirë sistemin operativ).

Kështu, afërsisht 20 - 30 kamera mund të lidhen me kontrolluesin e shtëpisë inteligjente (në varësi të rezolucionit dhe shpejtësisë së biteve), gjë që mjafton për një sistem mbikëqyrjeje video për një vilë trekatëshe ose një depo të vogël. Për detyrat që kërkojnë performancë më të madhe, mund të përdorni një rrjetë me një procesor Intel me shumë bërthama dhe Linux Debian Sarge OS. Kontrolluesi aktualisht është duke kaluar në provë dhe të dhënat për performancën e tij do të përditësohen.

Ndërveprimi me renë

Një shtëpi inteligjente e bazuar në cloud ruan të dhënat e përdoruesit (matjet e videos dhe sensorëve) në re. Arkitektura e ruajtjes së cloud do të diskutohet më në detaje në artikullin tjetër në serinë tonë. Tani le të flasim për ndërfaqen për transmetimin e mesazheve të informacionit nga kontrolluesi i shtëpisë inteligjente në cloud.

Gjendjet e pajisjeve të lidhura dhe matjet e sensorëve transmetohen nëpërmjet protokollit MQTT, i cili përdoret shpesh në projektet e Internetit të Gjërave për shkak të thjeshtësisë dhe efikasitetit të energjisë. MQTT përdor një model klient-server, ku klientët abonohen në tema specifike brenda ndërmjetësit dhe publikojnë mesazhet e tyre. Ndërmjetësi u dërgon mesazhe të gjithë abonentëve sipas rregullave të përcaktuara nga niveli QoS (Cilësia e Shërbimit):

  • QoS 0 - maksimumi një herë (pa garanci dorëzimi);
  • QoS 1 - të paktën një herë (me konfirmimin e dorëzimit);
  • QoS 2 - saktësisht një herë (me konfirmim shtesë të dorëzimit).

Në rastin tonë, ne përdorim Mushkonja e eklipsit. Emri i temës është identifikuesi unik i kontrolluesit të shtëpisë inteligjente. Klienti MQTT brenda procesit të serverit pajtohet në këtë temë dhe përkthen mesazhet JSON që vijnë nga menaxheri i mesazheve në të. Në të kundërt, mesazhet nga ndërmjetësi MQTT përcillen nga ai te menaxheri i mesazheve, i cili më pas i shumëfishon ato te pajtimtarët e tij brenda procesit të serverit:

Shtëpia inteligjente në renë kompjuterike. Pjesa 1: Kontrolluesi dhe sensorët

Për të transmetuar mesazhe në lidhje me statusin e kontrolluesit të shtëpisë inteligjente, përdoret mekanizmi i mesazheve të ruajtura mesazhet e ruajtura Protokolli MQTT. Kjo ju lejon të monitoroni saktë kohën e rilidhjeve gjatë ndërprerjeve të energjisë.

Klienti MQTT u zhvillua bazuar në zbatimin e bibliotekës Eklipsi Paho në gjuhën C++.

Transmetimet e mediave H.264 + AAC dërgohen në cloud nëpërmjet protokollit RTMP, ku një grup serverësh mediash është përgjegjës për përpunimin dhe ruajtjen e tyre. Për të shpërndarë në mënyrë optimale ngarkesën në grup dhe për të zgjedhur serverin e medias më pak të ngarkuar, kontrolluesi inteligjent i shtëpisë i bën një kërkesë paraprake balancuesit të ngarkesës në renë kompjuterike dhe vetëm pas kësaj dërgon transmetimin e medias.

Përfundim

Artikulli shqyrtoi një implementim specifik të një kontrolluesi shtëpie inteligjente bazuar në mikrokompjuterin Raspberry Pi 3 B+, ​​i cili mund të marrë, përpunojë informacion dhe kontrollojë pajisjet nëpërmjet protokollit Z-Wave, të ndërveprojë me kamerat IP nëpërmjet protokollit ONVIF, si dhe të shkëmbejë të dhëna dhe komandat me shërbimin cloud nëpërmjet protokolleve MQTT dhe RTMP. Një motor logjik prodhimi është zhvilluar bazuar në një krahasim të rregullave logjike dhe fakteve të paraqitura në formatin JSON.

Kontrolluesi i shtëpisë inteligjente aktualisht po i nënshtrohet një operimi provë në disa vende në Moskë dhe rajonin e Moskës.

Versioni tjetër i kontrolluesit planifikon të lidhë lloje të tjera pajisjesh (RF, Bluetooth, WiFi, me tel). Për lehtësinë e përdoruesve, procedura për lidhjen e sensorëve dhe kamerave IP do të transferohet në aplikacionin celular. Ekzistojnë gjithashtu ide për optimizimin e kodit të procesit të serverit dhe transferimin e softuerit në sistemin operativ openwrt. Kjo do t'ju lejojë të kurseni në një kontrollues të veçantë dhe të transferoni funksionalitetin e një shtëpie inteligjente në një ruter të rregullt shtëpiak.

Burimi: www.habr.com

Shto një koment