Cloud Smart Tsev. Part 1: Controller thiab sensors

Cloud Smart Tsev. Part 1: Controller thiab sensors

Niaj hnub no, ua tsaug rau txoj kev loj hlob sai ntawm microelectronics, kev sib txuas lus, Internet technologies thiab Artificial Intelligence, lub ntsiab lus ntawm cov tsev ntse tau dhau los ua qhov tseem ceeb. Tib neeg vaj tse tau hloov pauv tseem ceeb txij li Hnub Nyoog Pob Zeb thiab nyob rau hauv lub sijhawm ntawm Industrial Revolution 4.0 thiab Internet ntawm Yam, nws tau dhau los ua kev nyiam, ua haujlwm zoo thiab nyab xeeb. Cov kev daws teeb meem tau los rau hauv kev ua lag luam uas tig ib chav tsev lossis lub tsev hauv lub tebchaws mus rau hauv cov ntaub ntawv nyuaj uas tswj los ntawm txhua qhov chaw hauv ntiaj teb siv lub xov tooj smartphone. Ntxiv mus, tib neeg-tshuab sib cuam tshuam tsis tas yuav tsum muaj kev paub txog cov lus programming - ua tsaug rau kev paub txog kev hais lus thiab kev sib txuas lus, tus neeg hais lus rau lub tsev ntse hauv lawv hom lus.

Qee lub tsev ntse hauv tsev tam sim no nyob rau hauv kev ua lag luam yog ib qho kev tsim kho ntawm huab cua kev soj ntsuam cov tshuab, cov neeg tsim khoom pom tau hais tias yuav tsum muaj kev daws teeb meem tsis yog rau kev saib xyuas xwb, tab sis kuj tseem tswj hwm cov khoom nyob deb.

Peb nthuav qhia rau koj kom paub txog peb cov kab lus, uas yuav qhia koj txog txhua yam tseem ceeb ntawm huab cua ntse hauv tsev, tus kheej tsim los ntawm tus sau thiab muab tso rau hauv kev ua haujlwm. Thawj tsab xov xwm yog mob siab rau lub davhlau ya nyob twg cov neeg siv khoom nruab rau hauv lub tsev ntse, qhov thib ob rau kev tsim vaj tsev ntawm huab cia thiab cov ntaub ntawv ua haujlwm, thiab thaum kawg, qhov thib peb rau cov neeg siv khoom siv rau kev tswj hwm lub kaw lus ntawm cov khoom siv txawb thiab chaw nres tsheb.

Cov khoom siv hauv tsev ntse

Ua ntej, cia peb tham txog yuav ua li cas ua kom lub tsev ntse tawm ntawm chav tsev zoo tib yam, dacha lossis tsev me. Txhawm rau ua qhov no, raws li txoj cai, nws yog qhov yuav tsum tau tso cov khoom siv hauv qab no hauv tsev:

  1. sensors uas ntsuas ntau yam ib puag ncig tsis;
  2. actuators ua rau cov khoom siv sab nraud;
  3. ib tug maub los uas ua kev xam raws li sensor ntsuas thiab embedded logic, thiab teeb meem commands rau actuators.

Cov duab hauv qab no qhia txog daim duab ntawm lub tsev ntse, uas muaj cov sensors rau cov dej xau (1) hauv chav dej, qhov kub (2) thiab teeb pom kev zoo (3) hauv chav pw, lub qhov (socket) ntse (4) hauv chav ua noj thiab video soj ntsuam lub koob yees duab (5) nyob rau hauv txoj kev.

Cloud Smart Tsev. Part 1: Controller thiab sensors

Tam sim no, wireless sensors ua haujlwm siv RF433, Z-Wave, ZigBee, Bluetooth thiab WiFi raws tu qauv tau siv dav. Lawv cov txiaj ntsig tseem ceeb yog qhov yooj yim ntawm kev teeb tsa thiab siv, nrog rau tus nqi qis thiab kev ntseeg siab, vim Cov neeg tsim khoom siv zog coj lawv cov cuab yeej mus rau kev lag luam loj thiab ua rau lawv nkag mus rau cov neeg siv nruab nrab.

Sensors thiab actuators, raws li txoj cai, txuas nrog lub wireless interface mus rau lub tsev ntse tswj (6) - lub microcomputer tshwj xeeb uas muab tag nrho cov cuab yeej no rau hauv ib lub network thiab tswj lawv.

Txawm li cas los xij, qee qhov kev daws teeb meem tuaj yeem ua ke lub sensor, tus actuator thiab tus tswj hwm tib lub sijhawm. Piv txwv li, lub ntsaws ntse tuaj yeem tsim los qhib lossis tawm raws li lub sijhawm, thiab lub koob yees duab huab cua saib xyuas lub koob yees duab tuaj yeem kaw cov yeeb yaj kiab raws li lub suab ntsuas lub teeb liab. Hauv qhov yooj yim tshaj plaws, koj tuaj yeem ua yam tsis muaj tus tswj hwm cais, tab sis tsim kom muaj qhov hloov pauv tau nrog ntau qhov xwm txheej, nws yog qhov tsim nyog.

Txhawm rau txuas tus tswj hwm lub tsev ntse mus rau lub ntiaj teb network, siv Internet router (7) li niaj zaus, uas tau ntev dhau los ua khoom siv hauv tsev hauv ib lub tsev. Ntawm no muaj lwm qhov kev sib cav hauv kev pom zoo ntawm tus tswj hwm lub tsev ntse - yog tias kev sib txuas rau Is Taws Nem ploj, lub tsev ntse yuav txuas ntxiv ua haujlwm zoo li qub ua tsaug rau cov logic thaiv khaws cia hauv cov maub los, thiab tsis yog hauv huab kev pabcuam.

Smart tsev maub los

Tus maub los rau huab cua ntse hauv tsev tau tham hauv tsab xov xwm no yog tsim los ntawm ib lub rooj tsavxwm microcomputer Raspberry Pi 3 qauv B+, uas tau tshaj tawm thaum Lub Peb Hlis 2018 thiab muaj cov peev txheej txaus thiab kev ua tau zoo rau kev ua haujlwm hauv tsev ntse. Nws suav nrog quad-core Cortex-A53 processor raws li 64-ntsis ARMv8-A architecture, clocked ntawm 1.4 GHz, nrog rau 1 GB ntawm RAM, Wi-Fi 802.11ac, Bluetooth 4.2 thiab gigabit Ethernet adapter ua haujlwm ntawm USB 2.0 .

Cloud Smart Tsev. Part 1: Controller thiab sensors

Kev sib sau tus maub los yog qhov yooj yim heev - lub microcomputer (1) tau teeb tsa hauv rooj plaub yas (2), tom qab ntawd 8 GB nco daim npav hauv microSD hom nrog software (3) thiab USB Z-Wave network controller (4) tau teeb tsa hauv cov qhov sib thooj. Lub tsev ntse tswj tau txuas nrog lub hwj huam mov ntawm 5V, 2.1A fais fab adapter (5) thiab USB - micro-USB cable (6). Txhua tus tswj hwm muaj tus lej cim tshwj xeeb, uas tau sau rau hauv cov ntaub ntawv teeb tsa thaum xub pib thiab tsim nyog los cuam tshuam nrog huab cua ntse hauv tsev.

Lub tsev ntse tswj software yog tsim los ntawm tus sau ntawm tsab xov xwm no raws li kev khiav hauj lwm qhov system Linux Raspbian Stretch. Nws muaj cov hauv qab no lub ntsiab subsystems:

  • server txheej txheem rau kev cuam tshuam nrog cov cuab yeej ntse hauv tsev thiab huab;
  • graphical user interface rau kev teeb tsa thiab kev ua haujlwm tsis ua haujlwm ntawm tus maub los;
  • database rau khaws cia xws li configuration.

Cloud Smart Tsev. Part 1: Controller thiab sensors

Database smart home controller yog siv raws li DBMS embedded SQLite thiab yog ib cov ntaub ntawv ntawm SD card nrog system software. Nws ua haujlwm raws li kev khaws cia rau kev tswj hwm kev teeb tsa - cov ntaub ntawv hais txog cov cuab yeej txuas nrog thiab nws lub xeev tam sim no, thaiv cov kev cai tsim khoom lag luam, nrog rau cov ntaub ntawv uas yuav tsum tau ua kom tiav (piv txwv li, cov npe ntawm cov ntaub ntawv video hauv zos). Thaum tus maub los rebooted, cov ntaub ntawv no tau txais kev cawmdim, ua rau nws muaj peev xwm rov qab tau tus maub los thaum muaj hluav taws xob tsis ua haujlwm.

Graphical interface smart home controller tsim hauv PHP 7 siv microframework slim. Lub web server yog lub luag haujlwm rau kev khiav daim ntawv thov. lighttpd, feem ntau siv hauv cov khoom siv kos vim nws qhov kev ua tau zoo thiab cov kev xav tau tsawg.

Cloud Smart Tsev. Part 1: Controller thiab sensors
(nias rau ntawm daim duab kom qhib nws siab dua)

Lub luag haujlwm tseem ceeb ntawm graphical interface yog txuas cov cuab yeej ntse hauv tsev (IP soj ntsuam lub koob yees duab thiab sensors) rau tus maub los. Daim ntawv thov lub vev xaib nyeem cov teeb tsa thiab lub xeev tam sim no ntawm tus tswj hwm thiab cov khoom siv txuas nrog nws los ntawm SQLite database. Txhawm rau hloov tus tswj kev teeb tsa, nws xa cov lus tswj hwm hauv JSON hom los ntawm RESTful API interface ntawm cov txheej txheem server.

Server txheej txheem

Server txheej txheem - lub hauv paus tseem ceeb uas ua tiav tag nrho cov haujlwm tseem ceeb ntawm automating cov txheej txheem cov ntaub ntawv uas tsim lub hauv paus ntawm lub tsev ntse: tau txais thiab ua cov ntaub ntawv hnov ​​​​tsw, tawm cov kev tswj hwm nyob ntawm seb cov logic embedded. Lub hom phiaj ntawm cov txheej txheem neeg rau zaub mov yog cuam tshuam nrog cov khoom siv hauv tsev ntse, ua tiav cov txheej txheem tsim khoom, tau txais thiab txheej txheem cov lus txib los ntawm graphical interface thiab huab. Cov txheej txheem neeg rau zaub mov hauv kev tswj hwm hauv tsev ntse hauv kev txiav txim siab yog siv los ua ntau txoj xov zoo tsim hauv C ++ thiab tau pib ua ib qho kev pabcuam cais systemd operating system Linux Raspbian.

Cov blocks tseem ceeb ntawm cov txheej txheem server yog:

  1. Message Manager;
  2. IP lub koob yees duab server;
  3. Z-Wave ntaus ntawv server;
  4. Tus neeg rau zaub mov ntawm kev tsim cov kev cai tsim nyog;
  5. Database ntawm configuration ntawm tus maub los thiab thaiv cov kev cai logic;
  6. RESTful API server rau kev cuam tshuam nrog graphical interface;
  7. MQTT tus thov kev cuam tshuam nrog huab.

Cov txheej txheem neeg rau zaub mov tau siv los ua cov xov sib cais, cov ntaub ntawv ntawm cov uas tau xa mus rau hauv daim ntawv ntawm cov lus hauv JSON hom (lossis cov qauv ntaub ntawv sawv cev rau hom ntawv no hauv cov txheej txheem nco).

Cloud Smart Tsev. Part 1: Controller thiab sensors

Lub ntsiab tseem ceeb ntawm cov txheej txheem server yog xov xwm manager, uas xa JSON cov lus rau tag nrho cov txheej txheem server thaiv. Hom JSON cov ntaub ntawv xov xwm teb thiab cov txiaj ntsig uas lawv tuaj yeem lees txais tau teev nyob rau hauv cov lus:

ntaus ntawv
Raws tu qauv
lusType
deviceState
hais kom ua

lub koob yees duab
onvif ua
sensorData
on
streaming (On/Off)

sensor
zv ua
hais kom ua
tawm
Kev kaw lus (On/Off)

effector
mqtt ua
businessLogicRule
streaming (On/Off)
evice (Ntxiv / Tshem tawm)

kev lag luam
configurationData
Kev kaw lus (On/Off)

bluetooth
deviceState
kev ua yuam kev

wifi

rf

Piv txwv li, cov lus los ntawm lub koob yees duab motion detector zoo li no:

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

Production logic

Txhawm rau tau txais lossis xa cov lus los ntawm tus neeg xa xov, cov txheej txheem server thaiv sau npe rau cov lus ntawm qee yam. Subscription yog ib tug ntau lawm logical txoj cai ntawm hom β€œYog… ces…”, nthuav tawm hauv JSON hom, thiab qhov txuas mus rau cov lus tuav hauv cov txheej txheem server thaiv. Piv txwv li, kom tso cai rau tus IP lub koob yees duab server kom tau txais cov lus txib los ntawm GUI thiab huab, koj yuav tsum ntxiv cov cai hauv qab no:

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

Yog cov xwm txheej tau teev tseg hauv ua ntej (sab laug) cov cai muaj tseeb, ces nws txaus siab yog li ntawd (sab xis) txoj cai, thiab tus tuav tau nkag mus rau lub cev ntawm JSON cov lus. Tus thawj coj txhawb nqa cov tswv yim tsim nyog uas sib piv JSON tus nqi tseem ceeb-tus khub:

  1. sib npaug "equal";
  2. tsis sib npaug "not_equal";
  3. tsawg "tsawg";
  4. ntau "ntau dua";
  5. tsawg dua los yog sib npaug rau "less_or_equal";
  6. ntau dua los yog sib npaug rau "greater_or_equal".

Cov txiaj ntsig sib piv tuaj yeem cuam tshuam nrog ib leeg siv Boolean algebra tus tswv:

  1. Thiab "thiab"
  2. LUB "los yog";
  3. TSIS "tsis yog".

Yog li, los ntawm kev sau cov neeg ua haujlwm thiab cov neeg ua haujlwm hauv Polish sau, koj tuaj yeem tsim cov xwm txheej nyuaj nrog ntau qhov tsis muaj.

Raws nraim tib txoj kev, raws li JSON cov lus thiab cov kev cai tsim khoom hauv JSON hom, yog siv rau hauv kev tsim cov logic server thaiv los sawv cev kev paub thiab ua tiav qhov kev xav tau siv cov ntaub ntawv xav tau los ntawm lub tsev ntse sensors.

Siv daim ntawv thov mobile, tus neeg siv tsim cov xwm txheej raws li lub tsev ntse yuav tsum ua haujlwm. Piv txwv li: "Yog hais tias lub sensor rau qhib lub qhov rooj yog tshwm sim, ces tig lub teeb nyob rau hauv txoj kev.". Daim ntawv thov nyeem cov cim ntawm cov sensors (qhib sensor) thiab actuators (ntse qhov (socket) lossis lub teeb ntse) los ntawm cov ntaub ntawv thiab tsim kom muaj kev cai lij choj hauv JSON hom, uas raug xa mus rau tus tswj tsev ntse. Cov txheej txheem no yuav tham txog ntau yam ntxiv nyob rau hauv tsab xov xwm thib peb ntawm peb cov koob, uas peb yuav tham txog cov neeg thov kev pabcuam rau kev tswj hwm lub tsev ntse.

Cov txheej txheem tsim cov logic uas tau tham saum toj no yog siv los ntawm lub tsev qiv ntawv RapidJSON - SAX parser rau JSON hom hauv C ++. Kev nyeem ntawv ntuag thiab sib cais ntawm cov kev cai ntau lawm tso cai rau koj kom yooj yim siv cov ntaub ntawv sib piv hauv cov txheej txheem qub:

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

nws yog pFact - tus qauv uas muaj tus nqi tseem ceeb ntawm cov lus JSON, m_Rules - hlua array ntawm ntau lawm txoj cai. Kev sib piv ntawm cov lus tuaj thiab txoj cai ntau lawm yog nqa tawm hauv kev ua haujlwm nyeem.Parse(ruleStream, ruleHandler)qhov twg ruleHandler yog ib yam khoom uas muaj cov logic ntawm Boolean thiab cov neeg ua haujlwm sib piv. sRuleId - tus cim txoj cai tshwj xeeb, ua tsaug uas nws tuaj yeem khaws thiab kho cov cai hauv lub tsev ntse tswj cov ntaub ntawv. m_pActions - ib qho array nrog cov txiaj ntsig ntawm qhov kev xav tau: JSON cov lus uas muaj qhov tshwm sim los ntawm txoj cai hauv paus thiab xa mus ntxiv rau tus tswj hwm cov lus kom cov neeg siv xov tooj tuaj yeem ua tiav lawv.

RapidJSON kev ua tau zoo yog piv rau kev ua haujlwm strlen(), thiab qhov tsawg kawg nkaus cov peev txheej yuav tsum tau tso cai siv lub tsev qiv ntawv no hauv cov khoom siv kos. Kev siv cov lus thiab cov kev cai tsim nyog nyob rau hauv JSON hom tso cai rau koj los siv cov kev hloov pauv hloov pauv ntawm cov ntaub ntawv sib pauv ntawm txhua yam ntawm tus tswj hwm lub tsev ntse.

Z-Wave Sensors thiab Actuators

Lub ntsiab kom zoo dua ntawm lub tsev ntse yog tias nws muaj peev xwm ntsuas nws tus kheej ntsuas ntau yam tsis zoo ntawm ib puag ncig sab nraud thiab ua haujlwm zoo nyob ntawm qhov xwm txheej. Txhawm rau ua qhov no, sensors thiab actuators txuas nrog lub tsev tswj hwm ntse. Hauv cov qauv tam sim no, cov no yog cov khoom siv wireless ua haujlwm siv raws tu qauv Z-yoj ntawm qhov tshwj xeeb faib zaus 869 MHz Rau Russia. Txhawm rau ua haujlwm, lawv tau muab tso ua ke rau hauv ib lub mesh network, uas muaj cov teeb liab rov qab los ua kom cov cheeb tsam tau txais txiaj ntsig. Cov cuab yeej tseem muaj hom kev txuag hluav taws xob tshwj xeeb - lawv siv sijhawm feem ntau hauv hom pw tsaug zog thiab xa cov ntaub ntawv tsuas yog thaum lawv lub xeev hloov pauv, uas tuaj yeem txuas ntxiv lub neej ntawm lub roj teeb built-in.

Cloud Smart Tsev. Part 1: Controller thiab sensors

Tam sim no koj tuaj yeem pom ntau tus lej ntawm Z-Wave sib txawv ntawm lub khw. Cia peb saib ob peb yam piv txwv:

  1. Lub Zipato PAN16 ntse socket tuaj yeem ntsuas qhov ntsuas hauv qab no: kev siv hluav taws xob (kWh), lub zog (W), qhov hluav taws xob (V) thiab tam sim no (A) hauv hluav taws xob network. Nws kuj muaj qhov hloov pauv uas koj tuaj yeem tswj tau cov khoom siv hluav taws xob txuas nrog;
  2. Lub Neo Coolcam leak sensor pom tias muaj cov kua ua kua los ntawm kev kaw cov neeg sib cuag ntawm cov chaw taws teeb sojntsuam;
  3. Lub Zipato PH-PSG01 pa luam yeeb sensor yog tshwm sim thaum cov pa luam yeeb nkag mus rau hauv chav ntsuas roj;
  4. Neo Coolcam motion sensor soj ntsuam cov hluav taws xob infrared ntawm tib neeg lub cev. Tsis tas li ntawd muaj lub teeb sensor (Lx);
  5. Multisensor Philio PST02-A ntsuas kub (Β°C), lub teeb (%), qhib qhov rooj, muaj tus neeg nyob hauv chav;
  6. Z-Wave USB Stick ZME E UZB1 network maub los, uas cov sensors txuas nrog.

Nws yog ib qho tseem ceeb heev uas cov cuab yeej thiab cov tswj ua haujlwm ntawm tib zaus, txwv tsis pub lawv tsuas yog tsis pom ib leeg thaum lub sijhawm sib txuas. Txog 232 cov khoom siv tuaj yeem txuas nrog ib tus Z-Wave network tswj, uas txaus txaus rau chav tsev lossis lub tsev nyob hauv lub tebchaws. Txhawm rau nthuav dav thaj chaw hauv cheeb tsam hauv tsev, lub qhov (socket) ntse tuaj yeem siv los ua lub teeb liab rov qab.

Cloud Smart Tsev. Part 1: Controller thiab sensors

Hauv cov txheej txheem tswj hwm hauv tsev ntse tau tham hauv kab lus dhau los, Z-Wave server yog lub luag haujlwm rau kev cuam tshuam nrog Z-Wave li. Nws siv lub tsev qiv ntawv kom tau txais cov ntaub ntawv los ntawm cov sensors OpenZWave hauv C ++, uas muab kev sib txuas rau kev cuam tshuam nrog Z-Wave network USB maub los thiab ua haujlwm nrog ntau yam sensors thiab actuators. Tus nqi ntawm ib puag ncig ntsuas ntsuas los ntawm lub sensor yog kaw los ntawm Z-Wave server hauv daim ntawv ntawm JSON cov lus:

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

Nws yog tom qab ntawd xa mus rau tus txheej txheem neeg rau zaub mov tus neeg saib xyuas cov lus kom cov neeg siv xov tooj tuaj yeem tau txais nws. Cov neeg siv khoom tseem ceeb yog cov khoom siv logic, uas phim cov lus teb qhov tseem ceeb hauv cov txheej txheem ntawm cov kev cai logic. Cov txiaj ntsig suav nrog kev tswj hwm tau xa rov qab mus rau tus thawj tswj hwm cov lus thiab los ntawm qhov ntawd mus rau Z-Wave server, uas txiav txim siab lawv thiab xa mus rau Z-Wave network USB controller. Tom qab ntawd lawv nkag mus rau lub actuator, uas hloov lub xeev ntawm ib puag ncig cov khoom, thiab lub tsev ntse yog li ua haujlwm tseem ceeb.

Cloud Smart Tsev. Part 1: Controller thiab sensors
(nias rau ntawm daim duab kom qhib nws siab dua)

Txuas Z-Wave li yog ua tiav nyob rau hauv graphical interface ntawm tus ntse lub tsev maub los. Txhawm rau ua qhov no, mus rau nplooj ntawv nrog cov npe ntawm cov khoom siv thiab nyem lub pob "Ntxiv". Cov lus txib ntxiv ntawm RESTful API interface nkag mus rau cov txheej txheem neeg rau zaub mov thiab tom qab ntawd xa los ntawm tus thawj tswj hwm cov lus mus rau Z-Wave server, uas tso Z-Wave network USB maub los rau hauv hom tshwj xeeb rau kev ntxiv cov khoom siv. Tom ntej no, ntawm Z-Wave ntaus ntawv koj yuav tsum tau ua ib tug series ntawm nias ceev (3 nias nyob rau hauv 1,5 vib nas this) ntawm qhov kev pab cuam khawm. Lub USB maub los txuas lub cuab yeej rau lub network thiab xa cov ntaub ntawv hais txog nws mus rau Z-Wave server. Uas, nyob rau hauv lem, tsim ib tug tshiab nkag mus rau hauv lub SQLite database nrog rau cov tsis muaj cov cuab yeej tshiab. Tom qab lub sijhawm teev tseg, lub graphical interface rov qab mus rau nplooj ntawv Z-Wave ntaus ntawv, nyeem cov ntaub ntawv los ntawm cov ntaub ntawv thiab qhia cov cuab yeej tshiab hauv cov npe. Txhua lub cuab yeej tau txais nws tus kheej cov cim tshwj xeeb, uas yog siv rau hauv cov kev cai tsim tawm thiab thaum ua haujlwm hauv huab. Kev ua haujlwm ntawm cov algorithm no tau qhia hauv UML daim duab:

Cloud Smart Tsev. Part 1: Controller thiab sensors
(nias rau ntawm daim duab kom qhib nws siab dua)

Txuas IP koob yees duab

Cov huab ntse hauv tsev tau tham hauv tsab xov xwm no yog kev hloov kho ntawm huab huab yees duab saib xyuas, kuj tsim los ntawm tus sau, uas tau nyob rau hauv kev ua lag luam rau ntau xyoo thiab muaj ntau qhov kev teeb tsa hauv Russia.

Rau huab cua video soj ntsuam systems, ib qho ntawm cov teeb meem hnyav yog qhov txwv xaiv ntawm cov cuab yeej uas kev sib koom ua ke tuaj yeem ua tau. Lub software lub luag hauj lwm rau kev txuas mus rau huab yog nruab rau hauv lub koob yees duab video, uas tam sim ntawd tso qhov kev xav tau loj ntawm nws cov khoom kho vajtse - lub processor thiab tus nqi ntawm lub cim xeeb dawb. Qhov no feem ntau piav qhia tus nqi siab dua ntawm huab CCTV koob yees duab piv rau cov koob yees duab IP niaj hnub. Tsis tas li ntawd, lub sijhawm ntev ntawm kev sib tham nrog CCTV lub koob yees duab tsim cov tuam txhab yuav tsum tau nkag mus rau lub koob yees duab cov ntaub ntawv thiab tag nrho cov cuab yeej tsim nyog.

Cloud Smart Tsev. Part 1: Controller thiab sensors

Ntawm qhov tod tes, txhua lub koob yees duab IP niaj hnub no muaj cov txheej txheem rau kev sib cuam tshuam nrog lwm yam khoom siv (tshwj xeeb, cov kaw suab video). Yog li, kev siv tus tswj hwm cais uas txuas ntawm tus qauv raws tu qauv thiab tshaj tawm cov kwj deg video los ntawm IP koob yees duab mus rau huab muab cov txiaj ntsig tseem ceeb ntawm kev sib tw rau huab video soj ntsuam. Ntxiv mus, yog tias tus neeg siv khoom twb tau teeb tsa lub kaw lus video soj ntsuam raws li cov koob yees duab IP yooj yim, ces nws tuaj yeem nthuav dav nws thiab tig mus rau hauv huab huab ntse ntse.

Cov txheej txheem nrov tshaj plaws rau IP video soj ntsuam systems, tam sim no txhawb nqa los ntawm txhua tus IP lub koob yees duab manufacturers yam tsis muaj kev zam, yog ONVIF Profile S., uas nws specifications muaj nyob rau hauv ib tug web services piav lus wsdl ua. Kev siv cov cuab yeej siv los ntawm cov cuab yeej siv gSOAP Nws muaj peev xwm tsim qhov chaws rau cov kev pabcuam uas ua haujlwm nrog IP koob yees duab:

$ 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

Raws li qhov tshwm sim, peb tau txais ib txheej ntawm header "*.h" thiab qhov "*.cpp" cov ntaub ntawv hauv C ++, uas tuaj yeem muab tso ncaj qha rau hauv daim ntawv thov lossis ib lub tsev qiv ntawv cais thiab muab tso ua ke siv GCC compiler. Vim muaj ntau txoj haujlwm, cov cai loj thiab yuav tsum tau ua kom zoo dua ntxiv. Raspberry Pi 3 qauv B + microcomputer muaj kev ua tau zoo txaus los ua tiav cov cai no, tab sis yog tias xav tau qhov chaw nres nkoj tus lej mus rau lwm lub platform, nws yog qhov yuav tsum tau xaiv qhov tseeb processor architecture thiab cov peev txheej hauv lub cev.

IP lub koob yees duab uas txhawb nqa tus qauv ONVIF, thaum ua haujlwm hauv lub network hauv zos, txuas nrog ib pab pawg tshwj xeeb multicast nrog qhov chaw nyob 239.255.255.250. Muaj ib txoj cai WS Discovery, uas tso cai rau koj automate qhov kev tshawb nrhiav rau cov khoom siv hauv zos network.

Lub graphical interface ntawm tus tswj lub tsev ntse siv qhov kev tshawb nrhiav rau IP koob yees duab hauv PHP, uas yooj yim heev thaum cuam tshuam nrog cov kev pabcuam hauv web ntawm XML cov lus. Thaum xaiv cov ntawv qhia zaub mov Devices> IP Cameras> Scanning Lub algorithm rau kev tshawb nrhiav IP lub koob yees duab tau pib, qhia cov txiaj ntsig hauv daim ntawv ntawm lub rooj:

Cloud Smart Tsev. Part 1: Controller thiab sensors
(nias rau ntawm daim duab kom qhib nws siab dua)

Thaum koj ntxiv lub koob yees duab rau tus maub los, koj tuaj yeem qhia qhov chaw raws li nws yuav cuam tshuam nrog huab. Tsis tas li ntawd nyob rau theem no, nws tau txais kev tso cai rau tus cim ntaus cim tshwj xeeb, uas tom qab ntawd nws tuaj yeem txheeb xyuas tau yooj yim hauv huab.

Cloud Smart Tsev. Part 1: Controller thiab sensors

Tom ntej no, cov lus raug tsim tawm hauv JSON hom uas muaj tag nrho cov kev txwv ntawm lub koob yees duab ntxiv thiab xa mus rau cov txheej txheem server ntawm tus tswj hwm lub tsev ntse ntawm RESTful API cov lus txib, qhov twg lub koob yees duab tsis tau txiav txim siab thiab khaws cia rau hauv SQLite database, thiab yog kuj tseem siv los tso tawm cov txheej txheem hauv qab no:

  1. tsim kom muaj kev sib txuas RTSP kom tau txais cov yeeb yaj kiab thiab suab;
  2. transcoding audio los ntawm G.711 mu-Law, G.711 A-Law, G.723, thiab lwm yam. rau AAC hom ntawv;
  3. transcoding video ntws hauv H.264 hom thiab suab hauv AAC hom rau hauv lub thawv FLV thiab xa mus rau huab ntawm RTMP raws tu qauv;
  4. tsim kom muaj kev sib txuas nrog qhov kawg ntawm tus IP lub koob yees duab motion detector ntawm ONVIF raws tu qauv thiab sij hawm mus pov npav nws;
  5. ib ntus tsim cov duab duab saib ua ntej thiab xa mus rau huab ntawm MQTT raws tu qauv;
  6. cov ntaubntawv povthawj siv hauv zos ntawm cov vis dis aus thiab cov kwj deg nyob rau hauv daim ntawv ntawm cov ntaub ntawv sib cais hauv MP4 hom mus rau SD lossis Flash daim npav ntawm tus tswj hwm lub tsev ntse.

Cloud Smart Tsev. Part 1: Controller thiab sensors

Txhawm rau tsim kom muaj kev sib txuas nrog cov koob yees duab, hloov pauv, txheej txheem thiab sau cov kwj video hauv cov txheej txheem server, cov haujlwm los ntawm lub tsev qiv ntawv yog siv FFmpeg 4.1.0.

Hauv kev sim ntsuas kev ua tau zoo, 3 lub koob yees duab tau txuas nrog tus maub los:

  1. HiWatch DS-I114W (kev daws teeb meem - 720p, compression format - H.264, bitrate - 1 Mb/s, suab G.711 mu-Law);
  2. Microdigital MDC-M6290FTD-1 (kev daws teeb meem - 1080p, compression hom - H.264, bitrate - 1 Mb / s, tsis muaj suab);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (kev daws teeb meem - 1080p, compression hom - H.264, bitrate - 1.5 Mb/s, AAC audio).

Cloud Smart Tsev. Part 1: Controller thiab sensors

Tag nrho peb cov kwj dej tau ib txhij tso tawm rau huab, kev hloov pauv suab tau ua los ntawm ib lub koob yees duab nkaus xwb, thiab cov ntaub ntawv kaw cia hauv zos tau raug kaw. CPU load yog kwv yees li 5%, kev siv RAM yog 32 MB (ib txheej txheem), 56 MB (tag nrho suav nrog OS).

Yog li, kwv yees li 20 - 30 lub koob yees duab tuaj yeem txuas nrog tus tswj hwm hauv tsev ntse (nyob ntawm qhov kev daws teeb meem thiab tus nqi qis), uas yog txaus rau kev soj ntsuam video rau lub tsev peb-zaj dab neeg lossis lub tsev khaws khoom me me. Rau cov haujlwm uas xav tau kev ua tau zoo dua, koj tuaj yeem siv lub nettop nrog ntau tus tub ntxhais Intel processor thiab Linux Debian Sarge OS. Tus maub los tam sim no tab tom ua haujlwm sim, thiab cov ntaub ntawv ntawm nws qhov kev ua tau zoo yuav raug hloov kho.

Kev sib tham nrog huab

Lub tsev ntse huab-raws li khaws cov neeg siv cov ntaub ntawv (video thiab sensor ntsuas) hauv huab. Lub architecture ntawm huab cia yuav tau tham nyob rau hauv kom meej ntxiv nyob rau hauv tsab xov xwm tom ntej no nyob rau hauv peb series. Tam sim no cia peb tham txog lub interface rau kev xa cov ntaub ntawv xov xwm los ntawm tus tswj tsev ntse mus rau huab.

Cov xeev ntawm cov khoom siv txuas nrog thiab ntsuas ntsuas tau raug xa mus los ntawm cov txheej txheem MQTT, uas yog feem ntau siv hauv Internet ntawm Tej yaam num vim nws yooj yim thiab zog efficiency. MQTT siv tus qauv neeg siv-neeg rau zaub mov, qhov twg cov neeg siv khoom sau npe rau cov ncauj lus tshwj xeeb hauv tus broker thiab tshaj tawm lawv cov lus. Tus broker xa cov lus rau txhua tus neeg siv khoom raws li cov cai txiav txim los ntawm QoS (Quality of Service) qib:

  • QoS 0 - siab tshaj ib zaug (tsis muaj kev lav phib xaub);
  • QoS 1 - tsawg kawg ib zaug (nrog kev lees paub tus me nyuam);
  • QoS 2 - raws nraim ib zaug (nrog rau kev pom zoo xa khoom ntxiv).

Hauv peb qhov xwm txheej, peb siv Eclipse Mosquito. Lub npe lub npe yog tus cim tshwj xeeb ntawm tus tswj lub tsev ntse. Tus neeg siv MQTT hauv cov txheej txheem neeg rau zaub mov sau npe rau lub ncauj lus no thiab txhais JSON cov lus los ntawm tus thawj tswj hwm cov lus rau hauv nws. Hloov pauv, cov lus los ntawm MQTT tus broker raug xa mus los ntawm nws mus rau tus thawj tswj hwm cov lus, uas tom qab ntawd muab ntau yam rau nws cov neeg siv khoom hauv cov txheej txheem server:

Cloud Smart Tsev. Part 1: Controller thiab sensors

Txhawm rau xa cov lus hais txog cov xwm txheej ntawm tus tswj hwm lub tsev ntse, cov txheej txheem ntawm cov lus khaws tseg yog siv khaws cov lus MQTT raws tu qauv. Qhov no tso cai rau koj kom raug saib xyuas lub sijhawm ntawm kev sib txuas dua thaum lub zog tsis ua haujlwm.

Tus neeg siv MQTT tau tsim los ntawm kev siv lub tsev qiv ntawv Eclipse Paho hauv C++ lus.

H.264 + AAC cov kwj tawm xov xwm raug xa mus rau huab ntawm RTMP raws tu qauv, qhov twg pawg ntawm cov neeg siv xov xwm yog lub luag haujlwm rau kev ua thiab khaws cia. Txhawm rau kom zoo tshaj plaws faib cov khoom thauj hauv pawg thiab xaiv qhov tsawg tshaj plaws loaded media server, tus tswj tsev ntse ua qhov kev thov ua ntej rau huab load balancer thiab tsuas yog tom qab ntawd xa cov kwj tawm.

xaus

Tsab xov xwm tau tshuaj xyuas ib qho kev siv tshwj xeeb ntawm kev tswj hwm hauv tsev ntse raws li Raspberry Pi 3 B + microcomputer, uas tuaj yeem tau txais, txheej txheem cov ntaub ntawv thiab tswj cov khoom siv los ntawm Z-Wave raws tu qauv, cuam tshuam nrog IP koob yees duab ntawm ONVIF raws tu qauv, thiab tseem pauv cov ntaub ntawv thiab txib nrog huab. kev pabcuam ntawm MQTT thiab RTMP raws tu qauv. Lub cav logic ntau lawm tau tsim los raws li kev sib piv ntawm cov kev cai thiab cov lus tseeb uas tau nthuav tawm hauv JSON hom.

Tam sim no tus tswj tsev ntse yog tam sim no tab tom sim ua haujlwm ntawm ntau qhov chaw hauv Moscow thiab cheeb tsam Moscow.

Cov tom ntej version ntawm tus maub los npaj yuav txuas lwm hom khoom siv (RF, Bluetooth, WiFi, wired). Rau qhov yooj yim ntawm cov neeg siv, cov txheej txheem rau kev sib txuas sensors thiab IP koob yees duab yuav raug xa mus rau hauv daim ntawv thov mobile. Kuj tseem muaj cov tswv yim rau optimizing server txheej txheem code thiab porting lub software rau lub operating system OpenWrt. Qhov no yuav tso cai rau koj kom txuag tau ntawm tus maub los cais thiab hloov lub luag haujlwm ntawm lub tsev ntse mus rau lub tsev router li niaj zaus.

Tau qhov twg los: www.hab.com

Ntxiv ib saib