Cloud Smart Home. Bahin 1: Controller ug mga sensor

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Karon, salamat sa paspas nga pag-uswag sa microelectronics, mga channel sa komunikasyon, mga teknolohiya sa Internet ug Artipisyal nga Kaalam, ang hilisgutan sa mga intelihenteng balay nahimong labi ka hinungdanon. Ang pabalay sa tawo nakaagi ug mahinungdanong mga kausaban sukad sa Panahon sa Bato ug sa panahon sa Industrial Revolution 4.0 ug sa Internet of Things, nahimo kining komportable, magamit ug luwas. Ang mga solusyon moabut sa merkado nga naghimo sa usa ka apartment o usa ka balay sa nasud nga mahimong komplikado nga mga sistema sa impormasyon nga kontrolado gikan sa bisan asa sa kalibutan gamit ang usa ka smartphone. Dugang pa, ang interaksyon sa tawo-machine wala na kinahanglana ang kahibalo sa mga programming language - salamat sa pag-ila sa sinultihan ug synthesis algorithm, ang usa ka tawo nakigsulti sa usa ka intelihente nga balay sa ilang lumad nga sinultian.

Ang pila ka mga sistema sa intelihente nga balay nga karon naa sa merkado usa ka lohikal nga pag-uswag sa mga sistema sa pag-monitor sa video sa panganod, ang mga nag-develop nga nakaamgo sa panginahanglan alang sa usa ka komprehensibo nga solusyon dili lamang alang sa pag-monitor, kondili alang usab sa pagdumala sa hilit nga mga butang.

Gipresentar namo sa imong pagtagad ang usa ka serye sa tulo ka mga artikulo, nga magsulti kanimo mahitungod sa tanan nga mga nag-unang sangkap sa usa ka cloud smart home system, nga personal nga gimugna sa tagsulat ug gipatuman. Ang una nga artikulo gipahinungod sa terminal nga kagamitan sa kliyente nga gi-install sa sulod sa usa ka intelihenteng balay, ang ikaduha sa arkitektura sa pagtipig sa panganod ug sistema sa pagproseso sa datos, ug sa katapusan, ang ikatulo sa aplikasyon sa kliyente alang sa pagdumala sa sistema sa mga mobile ug stationary nga aparato.

Smart nga kagamitan sa balay

Una, maghisgot kita kon unsaon paghimo sa usa ka maalamon nga balay gikan sa usa ka ordinaryo nga apartment, dacha o cottage. Aron mahimo kini, ingon nga usa ka lagda, gikinahanglan nga ibutang ang mosunod nga mga ekipo sa balay:

  1. mga sensor nga nagsukod sa lainlaing mga parameter sa kalikopan;
  2. mga actuator nga naglihok sa gawas nga mga butang;
  3. usa ka controller nga naghimo sa mga kalkulasyon subay sa mga sukod sa sensor ug naka-embed nga lohika, ug nag-isyu og mga sugo ngadto sa mga actuator.

Ang mosunud nga numero nagpakita sa usa ka diagram sa usa ka smart nga balay, diin adunay mga sensor sa pagtulo sa tubig (1) sa banyo, temperatura (2) ug suga (3) sa kwarto, usa ka smart socket (4) sa kusina ug usa ka video surveillance camera (5) sa hallway.

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Sa pagkakaron, ang mga wireless sensor nga naglihok gamit ang RF433, Z-Wave, ZigBee, Bluetooth ug WiFi protocol kay kaylap nga gigamit. Ang ilang mga nag-unang bentaha mao ang kasayon ​​sa pag-instalar ug paggamit, ingon man ang ubos nga gasto ug kasaligan, tungod kay Ang mga tiggama naningkamot nga madala ang ilang mga aparato sa merkado sa masa ug himuon kini nga ma-access sa kasagaran nga tiggamit.

Ang mga sensor ug actuator, ingon nga usa ka lagda, konektado pinaagi sa usa ka wireless interface ngadto sa usa ka smart home controller (6) - usa ka espesyal nga microcomputer nga naghiusa sa tanan niini nga mga himan ngadto sa usa ka network ug nagkontrol niini.

Bisan pa, ang pipila nga mga solusyon mahimong maghiusa sa usa ka sensor, usa ka actuator ug usa ka controller sa parehas nga oras. Pananglitan, ang usa ka smart plug mahimong maprograma aron ma-on o i-off sumala sa usa ka iskedyul, ug ang usa ka cloud video surveillance camera mahimong magrekord sa video base sa signal sa motion detector. Sa pinakasimple nga mga kaso, mahimo nimo nga walay usa ka bulag nga controller, apan aron makahimo og usa ka flexible nga sistema nga adunay daghang mga sitwasyon, gikinahanglan kini.

Aron makonektar ang smart home controller sa global network, ang usa ka regular nga Internet router (7) mahimong magamit, nga dugay nang nahimong komon nga gamit sa panimalay sa bisan unsang panimalay. Dinhi adunay laing argumento nga pabor sa usa ka smart home controller - kung ang koneksyon sa Internet nawala, ang smart home magpadayon sa pag-operate sama sa normal salamat sa logic block nga gitipigan sulod sa controller, ug dili sa cloud service.

Smart home controller

Ang controller alang sa cloud smart home system nga gihisgutan niini nga artikulo gimugna base sa usa ka single-board microcomputer Raspberry Pi 3 nga modelo B+, nga gi-release niadtong Marso 2018 ug adunay igong kahinguhaan ug performance alang sa mga buluhaton sa smart home. Naglakip kini sa usa ka quad-core Cortex-A53 processor nga gibase sa 64-bit ARMv8-A nga arkitektura, nag-orasan sa 1.4 GHz, ingon man 1 GB sa RAM, Wi-Fi 802.11ac, Bluetooth 4.2 ug usa ka gigabit Ethernet adapter nga naglihok pinaagi sa USB 2.0 .

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Ang pag-assemble sa controller yano ra kaayo - ang microcomputer (1) gi-install sa usa ka plastik nga kaso (2), dayon usa ka 8 GB nga memory card sa microSD format nga adunay software (3) ug usa ka USB Z-Wave network controller (4) gi-install sa ang katugbang nga mga slots. Ang smart home controller konektado sa power supply pinaagi sa 5V, 2.1A power adapter (5) ug USB - micro-USB cable (6). Ang matag controller adunay usa ka talagsaon nga numero sa pag-ila, nga gisulat sa configuration file sa una nga paglansad ug gikinahanglan aron makig-uban sa cloud smart home services.

Ang smart home controller software gimugna sa tagsulat niini nga artikulo base sa operating system Linux Raspbian Stretch. Kini naglangkob sa mosunod nga mga nag-unang subsystems:

  • proseso sa server alang sa interaksyon sa mga kagamitan sa intelihente nga balay ug sa panganod;
  • graphical user interface alang sa pag-set sa configuration ug operating parameters sa controller;
  • database alang sa pagtipig sa configuration sa controller.

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Database Ang smart home controller gipatuman base sa usa ka embedded DBMS SQLite ug usa ka file sa usa ka SD card nga adunay software sa sistema. Nagsilbi kini nga pagtipig alang sa pagsumpo sa controller - kasayuran bahin sa konektado nga kagamitan ug sa karon nga kahimtang niini, usa ka bloke sa lohikal nga mga lagda sa produksiyon, ingon man ang kasayuran nga nanginahanglan pag-index (pananglitan, mga ngalan sa file sa usa ka lokal nga archive sa video). Sa diha nga ang controller gi-reboot, kini nga impormasyon gitipigan, nga nagpaposible sa pagpasig-uli sa controller sa panghitabo sa usa ka power failure.

Graphical nga interface Ang smart home controller naugmad sa PHP 7 gamit ang microframework slim. Ang web server maoy responsable sa pagpadagan sa aplikasyon. lighttpd, nga sagad gigamit sa mga naka-embed nga aparato tungod sa maayo nga pasundayag ug ubos nga kinahanglanon sa kapanguhaan.

Cloud Smart Home. Bahin 1: Controller ug mga sensor
(i-klik ang hulagway aron maablihan kini sa mas taas nga resolusyon)

Ang nag-unang function sa graphical interface mao ang pagkonektar sa smart home equipment (IP surveillance cameras ug sensors) ngadto sa controller. Ang web application nagbasa sa configuration ug kasamtangan nga kahimtang sa controller ug mga device nga konektado niini gikan sa SQLite database. Aron mabag-o ang configuration sa controller, nagpadala kini og mga control command sa JSON format pinaagi sa RESTful API interface sa proseso sa server.

Proseso sa server

Proseso sa server - usa ka hinungdanon nga sangkap nga naghimo sa tanan nga panguna nga trabaho sa pag-automate sa mga proseso sa kasayuran nga nahimong sukaranan sa usa ka intelihente nga balay: pagdawat ug pagproseso sa sensory data, pag-isyu sa mga aksyon sa pagkontrol depende sa naka-embed nga lohika. Ang katuyoan sa proseso sa server mao ang pagpakig-uban sa mga kagamitan sa intelihente nga balay, pagpatuman sa lohikal nga mga lagda sa produksiyon, pagdawat ug pagproseso sa mga mando gikan sa graphical interface ug sa panganod. Ang proseso sa server sa smart home controller nga gikonsiderar gipatuman isip usa ka multi-threaded nga aplikasyon nga naugmad sa C ++ ug gilunsad isip usa ka bulag nga serbisyo systemd operating system Linux Raspbian.

Ang mga nag-unang bloke sa proseso sa server mao ang:

  1. Manager sa Mensahe;
  2. IP camera server;
  3. Z-Wave device server;
  4. Server sa produksyon lohikal nga mga lagda;
  5. Database sa pagsumpo sa controller ug block sa lohikal nga mga lagda;
  6. RESTful API server para sa interaksyon sa graphical interface;
  7. MQTT nga kliyente alang sa pagpakig-uban sa panganod.

Ang mga bloke sa proseso sa server gipatuman isip bulag nga mga hilo, ang impormasyon tali niini gibalhin sa porma sa mga mensahe sa JSON nga format (o mga istruktura sa datos nga nagrepresentar niini nga format sa memorya sa proseso).

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Ang nag-unang bahin sa proseso sa server mao ang manager sa mensahe, nga nagtultol sa mga mensahe sa JSON ngadto sa tanang mga bloke sa proseso sa server. Ang mga tipo sa mga natad sa impormasyon sa mensahe sa JSON ug ang mga kantidad nga ilang madawat gilista sa lamesa:

tipo sa aparato
Protocol
tipo sa mensahe
deviceState
sugo

camera
onvif
sensorData
on
streaming(On/Off)

sensor
zwave
sugo
sa
pagrekord (On/Off)

effector
mqtt
negosyoLogicRule
streaming(On/Off)
evice(Idugang/Kuhaa)

negosyoLogic
configurationData
pagrekord (On/Off)

Bluetooth
deviceState
sayop

wifi

rf

Pananglitan, ang usa ka mensahe gikan sa usa ka camera motion detector ingon niini:

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

Logika sa produksiyon

Aron makadawat o magpadala usa ka mensahe gikan sa dispatcher, ang block sa proseso sa server nag-subscribe sa mga mensahe sa usa ka piho nga tipo. Ang suskrisyon usa ka lohikal nga lagda sa produksiyon sa tipo “Kung... unya...”, gipresentar sa format nga JSON, ug usa ka link sa tigdumala sa mensahe sulod sa block sa proseso sa server. Pananglitan, aron tugotan ang IP camera server nga makadawat og mga sugo gikan sa GUI ug sa panganod, kinahanglan nimong idugang ang mosunod nga lagda:

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

Kung ang mga kondisyon nga gitakda sa antesedent (wala nga kilid) ang mga lagda tinuod, unya kini matagbaw sangpotanan (tuo nga kilid) mga lagda, ug ang tigdumala makakuha og access sa lawas sa mensahe sa JSON. Gisuportahan sa antecedent ang mga lohikal nga operator nga nagtandi sa mga pares nga kantidad sa key sa JSON:

  1. katumbas sa "parehas";
  2. dili katumbas sa "dili_parehas";
  3. dili kaayo "gamay";
  4. mas "mas dako";
  5. ubos o katumbas sa "dili kaayo_o_parehas";
  6. mas dako o katumbas sa "greater_or_equal".

Ang mga resulta sa pagtandi mahimong may kalabutan sa usag usa gamit ang Boolean algebra operators:

  1. Ug "ug"
  2. O "o";
  3. DILI "dili".

Busa, pinaagi sa pagsulat sa mga operator ug operand sa Polish nga notasyon, makahimo ka og medyo komplikado nga mga kondisyon nga adunay daghang mga parameter.

Ang parehas nga mekanismo, base sa mga mensahe sa JSON ug mga lagda sa produksiyon sa format nga JSON, gigamit sa block sa server sa logic sa produksiyon aron magrepresentar sa kahibalo ug himuon ang lohikal nga inference gamit ang sensory data gikan sa mga smart home sensor.

Gamit ang usa ka mobile application, ang user nagmugna ug mga senaryo kung diin ang smart home kinahanglan nga molihok. Pananglitan: "Kung ang sensor alang sa pag-abli sa atubangang pultahan ma-trigger, dayon i-on ang suga sa hallway". Ang aplikasyon nagbasa sa mga identifier sa mga sensor (pagbukas nga sensor) ug mga actuators (smart socket o smart lamp) gikan sa database ug nagmugna og usa ka lohikal nga lagda sa JSON format, nga gipadala ngadto sa smart home controller. Kini nga mekanismo hisgotan sa mas detalyado sa ikatulo nga artikulo sa among serye, diin maghisgot kami bahin sa aplikasyon sa kliyente alang sa pagdumala sa usa ka maalam nga balay.

Ang mekanismo sa lohika sa produksiyon nga gihisgutan sa ibabaw gipatuman gamit ang librarya RapidJSON - SAX parser alang sa JSON format sa C++. Ang sunud-sunod nga pagbasa ug pag-parse sa usa ka han-ay sa mga lagda sa produksiyon nagtugot kanimo nga dali nga ipatuman ang function sa pagtandi sa datos sa sulod sa mga 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);
        }
    }
}

kini mao ang pFact - usa ka istruktura nga adunay sulud nga mga pares nga kantidad gikan sa usa ka mensahe sa JSON, m_Mga lagda - string array sa mga lagda sa produksyon. Ang pagtandi sa umaabot nga mensahe ug ang lagda sa produksiyon gihimo sa function reader.Parse(ruleStream, ruleHandler)diin ruleHandler usa ka butang nga adunay lohika sa Boolean ug mga operator sa pagtandi. sRuleId - usa ka talagsaon nga identifier sa lagda, salamat nga posible nga magtipig ug mag-edit sa mga lagda sa sulod sa database sa smart home controller. m_pActions — usa ka laray nga adunay mga resulta sa lohikal nga inference: Ang mga mensahe sa JSON nga adunay mga sangputanan gikan sa base sa lagda ug gipadala pa sa manager sa mensahe aron ang mga thread sa suskritor maproseso kini.

Ang performance sa RapidJSON ikatandi sa function strlen(), ug ang pinakagamay nga mga kinahanglanon sa kahinguhaan sa sistema nagtugot sa paggamit niini nga librarya sa mga embedded device. Ang paggamit sa mga mensahe ug lohikal nga mga lagda sa JSON format nagtugot kanimo sa pagpatuman sa usa ka flexible nga sistema sa pagbayloay sa impormasyon tali sa tanang mga sangkap sa smart home controller.

Mga Z-Wave Sensor ug Actuator

Ang panguna nga bentaha sa usa ka intelihente nga balay mao nga mahimo kini nga independente nga pagsukod sa lainlaing mga parameter sa gawas nga palibot ug paghimo mga mapuslanon nga gimbuhaton depende sa kahimtang. Aron mahimo kini, ang mga sensor ug actuator konektado sa smart home controller. Sa kasamtangan nga bersyon, kini ang mga wireless device nga naglihok gamit ang protocol Z-Wave sa usa ka espesyal nga gigahin frequency 869 MHz Alang sa Russia. Sa pag-operate, sila gihiusa ngadto sa usa ka mata sa baling network, nga naglangkob sa signal repeaters sa pagdugang sa coverage nga dapit. Ang mga himan usab adunay usa ka espesyal nga paagi sa pag-save sa enerhiya - gigugol nila ang kadaghanan sa oras sa mode sa pagkatulog ug ipadala lamang ang kasayuran kung mabag-o ang ilang estado, nga mahimo’g madugangan ang kinabuhi sa built-in nga baterya.

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Mahimo nimong makit-an ang usa ka medyo dako nga gidaghanon sa lainlaing mga aparato sa Z-Wave sa merkado. Atong tan-awon ang pipila ka mga pananglitan:

  1. Ang Zipato PAN16 smart socket makasukod sa mosunod nga mga parameter: konsumo sa kuryente (kWh), gahum (W), boltahe (V) ug kasamtangan (A) sa electrical network. Kini usab adunay usa ka built-in nga switch diin imong makontrol ang konektado nga electrical appliance;
  2. Ang Neo Coolcam leak sensor nakamatikod sa presensya sa naula nga likido pinaagi sa pagsira sa mga kontak sa hilit nga probe;
  3. Ang Zipato PH-PSG01 smoke sensor ma-trigger kung ang mga partikulo sa aso mosulod sa gas analyzer chamber;
  4. Ang Neo Coolcam motion sensor nag-analisar sa infrared radiation sa lawas sa tawo. Dugang pa adunay usa ka light sensor (Lx);
  5. Ang Multisensor Philio PST02-A nagsukod sa temperatura (°C), kahayag (%), pag-abli sa pultahan, presensya sa usa ka tawo sa lawak;
  6. Z-Wave USB Stick ZME E UZB1 network controller, diin ang mga sensor konektado.

Importante kaayo nga ang mga himan ug ang controller naglihok sa samang frequency, kung dili, dili sila magkita sa usag usa sa panahon sa koneksyon. Hangtod sa 232 nga mga aparato ang mahimong konektado sa usa ka Z-Wave network controller, nga igo na alang sa usa ka apartment o usa ka balay sa nasud. Aron mapalapad ang network coverage area sa sulod sa balay, ang usa ka smart socket mahimong gamiton isip signal repeater.

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Sa proseso sa smart home controller server nga gihisgutan sa miaging parapo, ang Z-Wave server maoy responsable sa pagpakig-uban sa Z-Wave nga mga device. Naggamit kini og librarya aron makadawat og impormasyon gikan sa mga sensor OpenZWave sa C ++, nga naghatag usa ka interface alang sa pakigsulti sa Z-Wave network USB controller ug nagtrabaho sa lainlaing mga sensor ug actuator. Ang bili sa environmental parameter nga gisukod sa sensor girekord sa Z-Wave server sa porma sa usa ka mensahe sa 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"
}

Dayon kini ipasa ngadto sa tigdumala sa mensahe sa proseso sa server aron ang mga subscriber thread makadawat niini. Ang nag-unang subscriber mao ang production logic server, nga motakdo sa message field values ​​sa antecedents sa logic rules. Ang mga resulta sa inference nga adunay mga control command ipadala balik ngadto sa message manager ug gikan didto moadto sa Z-Wave server, nga mag-decode niini ug ipadala ngadto sa Z-Wave network USB controller. Dayon sila mosulod sa actuator, nga nagbag-o sa kahimtang sa mga butang sa kalikopan, ug ang maalamon nga balay sa ingon naghimo sa mapuslanon nga trabaho.

Cloud Smart Home. Bahin 1: Controller ug mga sensor
(i-klik ang hulagway aron maablihan kini sa mas taas nga resolusyon)

Ang pagkonektar sa mga Z-Wave device gihimo sa graphical interface sa smart home controller. Aron mahimo kini, adto sa panid nga adunay lista sa mga aparato ug i-klik ang "Add" button. Ang add command pinaagi sa RESTful API interface mosulod sa proseso sa server ug dayon ipadala sa message manager ngadto sa Z-Wave server, nga nagbutang sa Z-Wave network USB controller ngadto sa usa ka espesyal nga mode para sa pagdugang sa mga device. Sunod, sa Z-Wave device kinahanglan nimo nga maghimo usa ka serye sa mga dali nga pagpindot (3 pagpindot sulod sa 1,5 segundos) sa buton sa serbisyo. Ang USB controller nagkonektar sa device ngadto sa network ug nagpadala sa impormasyon mahitungod niini ngadto sa Z-Wave server. Kana, sa baylo, nagmugna usa ka bag-ong entry sa database sa SQLite nga adunay mga parameter sa bag-ong aparato. Human sa gitakda nga agwat sa panahon, ang graphical interface mobalik sa Z-Wave device list page, mobasa sa impormasyon gikan sa database ug magpakita sa bag-ong device sa listahan. Ang matag aparato makadawat sa kaugalingon nga talagsaon nga identifier, nga gigamit sa mga lagda sa pag-inference sa produksiyon ug kung nagtrabaho sa panganod. Ang operasyon niini nga algorithm gipakita sa diagram sa UML:

Cloud Smart Home. Bahin 1: Controller ug mga sensor
(i-klik ang hulagway aron maablihan kini sa mas taas nga resolusyon)

Pagkonektar sa mga IP camera

Ang cloud smart home system nga gihisgutan niini nga artikulo usa ka pag-upgrade sa cloud video surveillance system, nga gimugna usab sa tagsulat, nga anaa sa merkado sulod sa daghang mga tuig ug adunay daghang mga instalasyon sa Russia.

Alang sa cloud video surveillance system, usa sa mga grabeng problema mao ang limitado nga pagpili sa mga ekipo diin mahimo ang paghiusa. Ang software nga responsable sa pagkonektar sa panganod na-install sa sulod sa video camera, nga diha-diha dayon nagbutang sa seryoso nga mga gipangayo sa hardware niini - ang processor ug ang kantidad sa libre nga memorya. Kini nag-una nga nagpatin-aw sa mas taas nga presyo sa mga cloud CCTV camera kumpara sa regular nga mga IP camera. Dugang pa, ang usa ka taas nga yugto sa negosasyon sa mga kompanya sa paghimo sa CCTV camera gikinahanglan aron maka-access sa sistema sa file sa camera ug tanan nga kinahanglan nga mga himan sa pag-uswag.

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Sa laing bahin, ang tanan nga modernong mga IP camera adunay mga sumbanan nga protocol alang sa interaksyon sa ubang mga kagamitan (labi na, mga video recorder). Busa, ang paggamit sa usa ka bulag nga controller nga nagkonektar pinaagi sa usa ka standard nga protocol ug nagsibya sa mga video stream gikan sa mga IP camera ngadto sa cloud naghatag og mahinungdanong competitive nga mga bentaha alang sa cloud video surveillance system. Dugang pa, kung ang kliyente naka-install na sa usa ka sistema sa pag-monitor sa video base sa yano nga mga IP camera, mahimo’g posible nga mapalapad kini ug himuon kini nga usa ka hingpit nga cloud smart home.

Ang labing popular nga protocol alang sa IP video surveillance systems, karon gisuportahan sa tanan nga IP camera manufacturers nga walay eksepsiyon, mao ang Ang Profile sa ONVIF S, kansang mga espesipikasyon anaa sa usa ka pinulongan sa paghulagway sa mga serbisyo sa web wsdl. Paggamit sa mga utilities gikan sa toolkit gSOAP Posible nga makamugna ang source code alang sa mga serbisyo nga nagtrabaho sa mga IP camera:

$ 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

Ingon usa ka sangputanan, makakuha kami usa ka set sa header nga "*.h" ug gigikanan nga "*.cpp" nga mga file sa C++, nga mahimong ibutang direkta sa usa ka aplikasyon o usa ka lahi nga librarya ug gihugpong gamit ang GCC compiler. Tungod sa daghang mga gimbuhaton, ang code dako ug nanginahanglan dugang nga pag-optimize. Ang Raspberry Pi 3 nga modelo B+ microcomputer adunay igo nga pasundayag aron ipatuman kini nga code, apan kung kinahanglan nga i-port ang code sa lain nga plataporma, kinahanglan nga pilion ang husto nga arkitektura sa processor ug mga kapanguhaan sa sistema.

Ang mga IP camera nga nagsuporta sa sumbanan sa ONVIF, kung nag-operate sa usa ka lokal nga network, konektado sa usa ka espesyal nga grupo sa multicast nga adunay adres 239.255.255.250. Adunay usa ka protocol WS Discovery, nga nagtugot kanimo sa pag-automate sa pagpangita alang sa mga himan sa lokal nga network.

Ang graphical interface sa smart home controller nagpatuman sa search function para sa mga IP camera sa PHP, nga sayon ​​kaayo kon makig-interact sa web services pinaagi sa XML messages. Kung nagpili mga butang sa menu Mga Device > IP Camera > Pag-scan Ang algorithm sa pagpangita sa mga IP camera gilunsad, nga nagpakita sa resulta sa porma sa usa ka lamesa:

Cloud Smart Home. Bahin 1: Controller ug mga sensor
(i-klik ang hulagway aron maablihan kini sa mas taas nga resolusyon)

Kung magdugang ka usa ka camera sa controller, mahimo nimong ipiho ang mga setting kung diin kini makig-uban sa panganod. Usab niini nga yugto, kini awtomatik nga gi-assign sa usa ka talagsaon nga device identifier, diin kini sa ulahi daling mailhan sulod sa panganod.

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Sunod, usa ka mensahe ang namugna sa JSON format nga naglangkob sa tanan nga mga parameter sa gidugang nga camera ug gipadala sa proseso sa server sa smart home controller pinaagi sa RESTful API command, diin ang mga parameter sa camera gi-decode ug gitipigan sa internal nga database sa SQLite, ug gigamit usab sa paglansad sa mosunod nga mga thread sa pagproseso:

  1. pag-establisar og koneksyon sa RTSP aron makadawat og mga video ug audio stream;
  2. transcoding audio gikan sa G.711 mu-Law, G.711 A-Law, G.723, ug uban pa nga mga format. sa AAC format;
  3. transcoding video streams sa H.264 format ug audio sa AAC format ngadto sa usa ka FLV sudlanan ug ipadala kini ngadto sa panganod pinaagi sa RTMP protocol;
  4. paghimo og koneksyon sa endpoint sa IP camera motion detector pinaagi sa ONVIF protocol ug matag karon ug unya nga pagbotar niini;
  5. matag karon ug unya paghimo ug thumbnail preview nga imahe ug ipadala kini sa panganod pinaagi sa MQTT protocol;
  6. lokal nga pagrekord sa mga video ug audio stream sa porma sa bulag nga mga file sa MP4 format ngadto sa SD o Flash card sa usa ka smart home controller.

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Aron magtukod usa ka koneksyon sa mga camera, transcode, proseso ug pagrekord sa mga sapa sa video sa proseso sa server, gigamit ang mga gimbuhaton gikan sa librarya. FFmpeg 4.1.0.

Sa eksperimento sa pagsulay sa pasundayag, 3 ka camera ang konektado sa controller:

  1. HiWatch DS-I114W (resolution - 720p, compression format - H.264, bitrate - 1 Mb/s, sound G.711 mu-Law);
  2. Microdigital MDC-M6290FTD-1 (resolution - 1080p, compression format - H.264, bitrate - 1 Mb/s, walay tingog);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (resolution - 1080p, compression format - H.264, bitrate - 1.5 Mb/s, AAC audio).

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Ang tanan nga tulo ka mga sapa dungan nga gi-output sa panganod, ang audio transcoding gihimo gikan sa usa ra ka camera, ug ang lokal nga pagrekord sa archive gi-disable. Ang load sa CPU gibana-bana nga 5%, ang paggamit sa RAM 32 MB (matag proseso), 56 MB (total lakip ang OS).

Busa, gibana-bana nga 20 - 30 nga mga kamera mahimong konektado sa smart home controller (depende sa resolusyon ug bitrate), nga igo na alang sa usa ka video surveillance system alang sa tulo ka andana nga cottage o usa ka gamay nga bodega. Para sa mga buluhaton nga nanginahanglan og mas dako nga performance, mahimo nimong gamiton ang nettop nga adunay multi-core Intel processor ug Linux Debian Sarge OS. Ang controller karon nagpailalom sa pagsulay nga operasyon, ug ang datos sa performance niini ma-update.

Interaksyon sa panganod

Ang cloud-based nga smart home nagtipig sa datos sa user (video ug sensor measurements) sa cloud. Ang arkitektura sa pagtipig sa panganod pagahisgotan sa mas detalyado sa sunod nga artikulo sa among serye. Karon atong hisgutan ang interface alang sa pagpadala sa mga mensahe sa impormasyon gikan sa smart home controller ngadto sa cloud.

Ang mga estado sa konektado nga mga aparato ug mga pagsukod sa sensor gipasa pinaagi sa protocol MQTT, nga sagad gigamit sa mga proyekto sa Internet of Things tungod sa kayano niini ug kaepektibo sa enerhiya. Gigamit sa MQTT ang modelo sa kliyente-server, diin ang mga kliyente nag-subscribe sa piho nga mga hilisgutan sa sulod sa broker ug gipatik ang ilang mga mensahe. Ang broker nagpadala mga mensahe sa tanan nga mga subscriber sumala sa mga lagda nga gitino sa lebel sa QoS (Quality of Service):

  • QoS 0 - maximum kausa (walay garantiya sa pagpadala);
  • QoS 1 - labing menos kausa (uban ang kumpirmasyon sa pagpadala);
  • QoS 2 - eksakto kausa (uban ang dugang nga kumpirmasyon sa pagpadala).

Sa among kaso, among gigamit Eclipse nga lamok. Ang ngalan sa hilisgutan mao ang talagsaon nga identifier sa smart home controller. Ang kliyente sa MQTT sulod sa proseso sa server nag-subscribe niini nga hilisgutan ug naghubad sa mga mensahe sa JSON nga gikan sa manedyer sa mensahe ngadto niini. Sa kasukwahi, ang mga mensahe gikan sa MQTT broker gipasa niini ngadto sa manedyer sa mensahe, nga dayon nag-multiples niini ngadto sa mga subscriber niini sulod sa proseso sa server:

Cloud Smart Home. Bahin 1: Controller ug mga sensor

Aron ipadala ang mga mensahe bahin sa kahimtang sa smart home controller, gigamit ang mekanismo sa mga na-save nga mensahe gipabilin nga mga mensahe MQTT protocol. Gitugotan ka niini nga ma-monitor sa husto ang oras sa mga pagkonekta pag-usab sa panahon sa pagkapakyas sa kuryente.

Ang kliyente sa MQTT naugmad base sa pagpatuman sa librarya Eclipse Paho sa C++ nga pinulongan.

Ang H.264 + AAC media streams gipadala ngadto sa cloud pinaagi sa RTMP protocol, diin ang usa ka cluster sa media server maoy responsable sa pagproseso ug pagtipig niini. Aron ma-optimize ang pag-apod-apod sa load sa cluster ug pilion ang pinakagamay nga loaded media server, ang smart home controller naghimo og pasiuna nga hangyo sa cloud load balancer ug pagkahuman ipadala ang media stream.

konklusyon

Gisusi sa artikulo ang usa ka espesipikong pagpatuman sa usa ka smart home controller base sa Raspberry Pi 3 B+ microcomputer, nga makadawat, pagproseso sa impormasyon ug pagkontrol sa mga ekipo pinaagi sa Z-Wave protocol, makig-uban sa mga IP camera pinaagi sa ONVIF protocol, ug magbayloay usab og data ug mga sugo sa cloud. serbisyo pinaagi sa MQTT ug RTMP protocols. Nahimo ang usa ka makina sa lohika sa produksiyon base sa pagtandi sa mga lohikal nga lagda ug mga kamatuoran nga gipresentar sa format nga JSON.

Ang intelihente nga tigkontrol sa balay karon nagpailalom sa operasyon sa pagsulay sa daghang mga site sa Moscow ug sa rehiyon sa Moscow.

Ang sunod nga bersyon sa controller nagplano sa pagkonektar sa ubang mga matang sa mga himan (RF, Bluetooth, WiFi, wired). Alang sa kasayon ​​​​sa mga tiggamit, ang pamaagi sa pagkonektar sa mga sensor ug mga IP camera ibalhin sa mobile application. Adunay usab mga ideya alang sa pag-optimize sa code sa proseso sa server ug pag-port sa software sa operating system OpenWrt. Magtugot kini kanimo nga makatipig sa usa ka bulag nga controller ug ibalhin ang pagpaandar sa usa ka intelihenteng balay sa usa ka regular nga router sa panimalay.

Source: www.habr.com

Idugang sa usa ka comment