Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Nhasi, nekuda kwekukurumidza kusimudzira kwemamicroelectronics, nzira dzekutaurirana, matekinoroji eInternet uye Artificial Intelligence, musoro wedzimba dzakangwara uri kuramba uchiwedzera kukosha. Dzimba dzevanhu dzakaita shanduko huru kubva kuStone Age uye munguva yeIndustrial Revolution 4.0 uye Internet yeZvinhu, yave yakasununguka, inoshanda uye yakachengeteka. Mhinduro dziri kuuya kumusika dzinoshandura imba kana imba yenyika kuita masisitimu eruzivo akaomesesa anodzorwa kubva chero kupi zvako munyika uchishandisa smartphone. Uyezve, kupindirana kwemuchina-muchina hakuchadi ruzivo rwemitauro yekuronga - nekuda kwekuzivikanwa kwekutaura uye synthesis algorithms, munhu anotaura kune yakangwara imba mumutauro wavo.

Mamwe masystem akangwara epamba pari zvino ari pamusika kusimudzira zvine musoro kwemafu video surveillance system, vagadziri vacho vakaona kudiwa kwemhinduro yakazara kwete yekutarisa chete, asiwo yekugadzirisa zvinhu zviri kure.

Isu tinopa kune iwe kutarisisa kwako akatevedzana ezvinyorwa zvitatu, izvo zvinokuudza nezve ese makuru eiyo cloud smart home system, yakagadziridzwa nemunyori uye kuiswa mukushanda. Chinyorwa chekutanga chakapihwa kune terminal mutengi michina yakaiswa mukati meimba yakangwara, yechipiri kune dhizaini yekuchengetera gore uye data processing system, uye pakupedzisira, yechitatu kune mutengi application yekutarisira sisitimu panharembozha uye yakamira michina.

Smart kumba midziyo

Kutanga, ngatitaure nezve maitiro ekugadzira imba yakangwara kubva kune yakajairika furati, dacha kana kottage. Kuti uite izvi, sekutonga, zvakakosha kuisa midziyo inotevera mumba:

  1. sensors inoyera zvakasiyana-siyana zvakatipoteredza parameters;
  2. actuators inoshanda pazvinhu zvekunze;
  3. mutongi anoita masvomhu zvinoenderana nezviyero zve sensor uye zvakamisikidzwa logic, uye anopa mirairo kune actuators.

Mufananidzo unotevera unoratidza dhiyagiramu yeimba yakangwara, ine masensa ekubuda kwemvura (1) muimba yekugezera, tembiricha (2) uye chiedza (3) muimba yekurara, soketi yakangwara (4) mukicheni uye vhidhiyo yekutarisa kamera (5) mukoridho.

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Parizvino, masensa asina waya anoshanda achishandisa iyo RF433, Z-Wave, ZigBee, Bluetooth uye WiFi mapuroteni anoshandiswa zvakanyanya. Kubatsira kwavo kukuru ndiko nyore kwekuisa uye kushandiswa, pamwe chete nemutengo wakaderera uye kuvimbika, nekuti Vagadziri vari kuedza kuunza zvishandiso zvavo kumusika mukuru uye kuita kuti zviwanikwe kune avhareji mushandisi.

Sensors uye actuators, sekutonga, zvakabatana kuburikidza newireless interface kune yakangwara imba controller (6) - yakasarudzika microcomputer inosanganisa zvese izvi zvishandiso kuita imwechete network uye inoadzora.

Nekudaro, dzimwe mhinduro dzinogona kusanganisa sensor, actuator uye controller panguva imwe chete. Semuenzaniso, smart plug inogona kurongwa kuti ibatike kana kudzima zvinoenderana nehurongwa, uye yegore vhidhiyo yekutarisa kamera inogona kurekodha vhidhiyo inoenderana neinofambisa detector chiratidzo. Mumamiriro ezvinhu akareruka, iwe unogona kuita pasina mutongi wakasiyana, asi kugadzira inoshanduka sisitimu ine akawanda mamiriro, zvinodikanwa.

Kuti ubatanidze smart home controller kune network yepasi rose, yenguva dzose Internet router (7) inogona kushandiswa, iyo yave kwenguva refu yave yakajairika mudziyo wemumba mune chero imba. Pano pane imwe nharo inotsigira a smart home controller - kana iyo yekubatanidza kuInternet yakarasika, imba yakangwara icharamba ichishanda seyakajairwa nekuda kweiyo logic block yakachengetwa mukati memutongi, uye kwete mubasa regore.

Smart imba controller

Iyo controller yegore smart imba system inokurukurwa muchinyorwa chino inogadzirwa zvichibva pane imwe-bhodhi microcomputer Raspberry Pi 3 modhi B+, iyo yakaburitswa munaKurume 2018 uye ine zviwanikwa zvakakwana uye kuita kweakangwara mabasa epamba. Inosanganisira quad-core Cortex-A53 processor yakavakirwa pa64-bit ARMv8-A architecture, yakavharwa pa1.4 GHz, pamwe ne1 GB ye RAM, Wi-Fi 802.11ac, Bluetooth 4.2 uye gigabit Ethernet adapta inoshanda kuburikidza ne USB 2.0 .

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Kuunganidza mutongi kuri nyore kwazvo - iyo microcomputer (1) yakaiswa mupurasitiki kesi (2), ipapo 8 GB memori kadhi mune microSD fomati ine software (3) uye USB Z-Wave network controller (4) yakaiswa mukati. nzvimbo dzinoenderana. Iyo smart home controller yakabatana kune magetsi kuburikidza ne5V, 2.1A magetsi adapta (5) uye USB - micro-USB tambo (6). Yese controller ine yakasarudzika nhamba yekuzivikanwa, iyo yakanyorwa mufaira rekumisikidza payakatangwa uye inofanirwa kudyidzana ne Cloud smart home services.

Iyo smart home controller software yakagadziriswa nemunyori wechinyorwa ichi zvichibva pane inoshanda sisitimu Linux Raspbian Stretch. Iyo ine anotevera makuru subsystems:

  • server maitiro ekudyidzana neakangwara imba zvishandiso uye gore;
  • graphical mushandisi interface yekumisikidza iyo inogadziriswa uye inoshanda paramita yemutongi;
  • dhatabhesi yekuchengetedza controller kumisikidza.

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Database smart home controller inoitwa zvichibva pane yakamisikidzwa DBMS SQLite uye ifaira pane SD kadhi ine system software. Inoshanda sechichengetedzo chekugadzirisa dhizaini - ruzivo pamusoro pemidziyo yakabatana uye mamiriro ayo aripo, block yemitemo inonzwisisika yekugadzira, pamwe neruzivo rwunoda indexing (semuenzaniso, mazita emafaira enzvimbo yevhidhiyo archive). Kana mutongi adzorerwazve, ruzivo urwu runochengetedzwa, zvichiita kuti zvikwanise kudzorera mutongi kana pakaitika simba.

Graphical inowanikwa smart home controller yakagadzirwa muPHP 7 uchishandisa microframework tetepa. Webhu server ine basa rekushandisa application. lighttpd, inowanzo shandiswa mumidziyo yakadzikwa nekuda kwekuita kwayo kwakanaka uye yakaderera zviwanikwa zvinodiwa.

Cloud Smart Home. Chikamu 1: Mutongi uye sensors
(tinya pamufananidzo kuti uvhure mune yepamusoro resolution)

Basa guru reiyo graphical interface nderekubatanidza smart imba yekushandisa (IP yekutarisa makamera uye sensors) kune controller. Iyo webhu application inoverenga magadzirirwo uye zvazvino mamiriro emutongi nemidziyo yakabatana nayo kubva kuSQLite dhatabhesi. Kuti uchinje gadziriso yekudzora, inotumira mirairo yekutonga muJSON fomati kuburikidza neRESTful API interface ye server process.

Server process

Server process - chikamu chakakosha chinoita basa rese guru pakuita otomatiki maitirwo eruzivo anoumba hwaro hweimba yakangwara: kugamuchira uye kugadzirisa sensory data, kuburitsa zviito zvekutonga zvinoenderana neyakamisikidzwa logic. Chinangwa chesevha maitiro ndechekudyidzana nemidziyo yakangwara yekumba, kuita kugadzirwa kwemitemo inonzwisisika, kugamuchira uye kugadzirisa mirairo kubva kune graphical interface uye gore. Iyo sevha process mune yakangwara imba controller iri kutariswa inoitwa seyakawanda-yakarukwa application yakagadziriswa muC ++ uye yakatangwa sevhisi yakaparadzana. systemd uchishandisa system Linux Raspbian.

Iwo makuru blocks e server process ndeaya:

  1. Message Manager;
  2. IP kamera server;
  3. Z-Wave mudziyo server;
  4. Server yekugadzira inonzwisisika mitemo;
  5. Database yekugadziriswa kwemutongi uye block yemitemo inonzwisisika;
  6. RESTful API server yekudyidzana neiyo graphical interface;
  7. MQTT mutengi wekudyidzana negore.

Server process block blocks inoshandiswa setambo dzakaparadzana, ruzivo pakati peinotamiswa nenzira yemameseji muJSON fomati (kana zvimiro zvedata zvinomiririra iyi fomati mu process memory).

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Chinhu chikuru cheiyo server process ndeye meseji maneja, iyo inofambisa mameseji eJSON kune ese server process block block. Mhando dzeJSON meseji ruzivo ndima uye kukosha kwavanogona kugamuchira zvakanyorwa patafura:

deviceType
Protocol
messageType
deviceState
murayiro

kamera
onvif
sensorData
on
kutenderera (On/Kudzima)

Switch
zwave
murayiro
kure
kurekodha (On/Off)

effector
mqtt
businessLogicRule
kutenderera (On/Kudzima)
evice (Wedzera/Bvisa)

businessLogic
configurationData
kurekodha (On/Off)

MAKARALI USB
deviceState
mhosho

wifi

rf

Semuenzaniso, meseji kubva kune kamera inofamba inoona seizvi:

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

Kugadzira pfungwa

Kuti ugamuchire kana kutumira meseji kubva kune dispatcher, iyo server process block inonyorera kune meseji yerumwe rudzi. Kunyoresa mutemo wekugadzira wemhando "Kana ... saka ...", inoratidzwa muJSON fomati, uye chinongedzo kune meseji inobata mukati me server process block. Semuenzaniso, kubvumira iyo IP kamera server kugamuchira mirairo kubva kuGUI uye gore, iwe unofanirwa kuwedzera unotevera mutemo:

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

Kana mamiriro akatsanangurwa mu antecedent (kuruboshwe) mitemo ndeyechokwadi, zvino inogutsikana mhedzisiro (kurudyi) mitemo, uye mubati anowana mukana kune muviri weJSON meseji. Iyo antecedent inotsigira vane musoro vanoshanda vanofananidza JSON kiyi-kukosha pairi:

  1. yakaenzana "yakaenzana";
  2. kusaenzana ne "kwete_kuenzana";
  3. zvishoma "zvishoma";
  4. zvakawanda "zvikuru";
  5. zvishoma pane kana kuenzana ne "shoma_kana_kuenzana";
  6. mukuru pane kana kuenzana ne "greater_or_equal".

Mibairo yekufananidza inogona kuenderana kune imwe neimwe uchishandisa Boolean algebra operators:

  1. Uye "uye"
  2. KANA "kana";
  3. Kwete "kwete".

Saka, nekunyora vashandisi uye operands muchiPolish notation, unogona kugadzira mamiriro akaomarara ane huwandu hukuru hwema paramita.

Chaiyo iyo mameshini, yakavakirwa pamashoko eJSON uye mitemo yekugadzira muJSON fomati, inoshandiswa mukugadzira logic server block kumiririra ruzivo uye kuita chirevo chine musoro uchishandisa sensory data kubva kune smart home sensors.

Uchishandisa nharembozha, mushandisi anogadzira mamiriro ekuti imba yakangwara inofanirwa kushanda sei. Semuyenzaniso: "Kana iyo sensor yekuvhura gonhi repamberi ikamutswa, batidza mwenje mukoridho". Chishandiso chinoverenga zviziviso zvemasensa (sensor yekuvhura) uye actuators (smart socket kana smart lamp) kubva kudhatabhesi uye inogadzira mutemo une musoro muJSON fomati, inotumirwa kune yakangwara imba controller. Iyi nzira ichakurukurwa zvakadzama muchinyorwa chechitatu chenhevedzano yedu, apo isu tichataura nezve mutengi application yekutonga imba yakangwara.

Iyo yekugadzira logic meshini yakakurukurwa pamusoro inoitwa uchishandisa raibhurari RapidJSON - SAX parser yeJSON fomati muC ++. Kuverenga kwakatevedzana uye kupatsanurwa kweakatemerwa yemitemo yekugadzira inobvumidza iwe kuti uite nyore kuita iyo data yekuenzanisa basa mukati meantecedents:

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

zviri pFact - dhizaini ine kiyi-kukosha pairi kubva kune JSON meseji, m_Mitemo - tambo dzakawanda dzemitemo yekugadzira. Kuenzanisa kweshoko rinouya uye mutemo wekugadzira unoitwa mubasa muverengi.Parse(ruleStream, ruleHandler)kupi ruleHandler chinhu chine logic yeBoolean uye comparison operators. sRuleId - yakasarudzika mutemo identifier, nekuda kwazvinogoneka kuchengetedza uye kugadzirisa mitemo mukati meiyo smart home controller dhatabhesi. m_pActions -Rondedzero ine mhedzisiro yezvine musoro inference: JSON meseji ine zvinokonzeresa kubva kune iyo mutemo base uye inotumirwa mberi kune meseji maneja kuitira kuti vanyoreri tambo vagadzirise.

RapidJSON performance inofananidzwa nebasa strlen (), uye iyo shoma system sisitimu zvinodiwa zvinobvumira kushandiswa kweraibhurari iyi mumidziyo yakamisikidzwa. Iko kushandiswa kwemameseji uye inonzwisisika mitemo muJSON fomati inobvumidza iwe kuita inoshanduka sisitimu yekutsinhana ruzivo pakati pezvikamu zvese zveakangwara imba controller.

Z-Wave Sensors uye Actuators

Mukana mukuru weimba yakangwara ndeyekuti inogona kuzvimiririra kuyera akasiyana ma paramita ekunze nharaunda uye kuita mabasa anobatsira zvichienderana nemamiriro ezvinhu. Kuti uite izvi, ma sensors uye actuators akabatana kune yakangwara imba controller. Mune yazvino vhezheni, aya mawireless midziyo inoshanda uchishandisa iyo protocol Z-Wave pa frequency yakagoverwa 869 MHz KuRussia. Kuti ishande, inosanganiswa kuita mesh network, iyo ine masaini anodzokorora kuwedzera nzvimbo yekuvhara. Iwo maturusi anewo akakosha ekuchengetedza simba maitiro - anoshandisa yakawanda yenguva muhope mode uye anotumira ruzivo chete kana mamiriro avo achinja, ayo anogona kuwedzera zvakanyanya hupenyu hwebhatiri rakavakwa.

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Iwe unogona ikozvino kuwana nhamba yakakura kwazvo yeakasiyana Z-Wave zvishandiso pamusika. Ngatitarisei mienzaniso mishoma:

  1. Zipato PAN16 smart socket inogona kuyera zvinotevera parameters: kushandiswa kwemagetsi (kWh), simba (W), voltage (V) uye ikozvino (A) mumagetsi emagetsi. Iyo ine zvakare yakavakirwa-mukati switch iyo iwe yaunogona kudzora yakabatana magetsi mudziyo;
  2. Iyo Neo Coolcam leak sensor inoona kuvepo kwemvura yakadeuka nekuvhara mabatiro eiyo kure probe;
  3. Iyo Zipato PH-PSG01 utsi sensor inokonzeresa kana utsi hwehutsi huchipinda mukamuri yekuongorora gasi;
  4. Iyo Neo Coolcam inofamba sensor inoongorora iyo infrared radiation yemuviri wemunhu. Pamusoro peiyo kune mwenje sensor (Lx);
  5. Multisensor Philio PST02-A inoyera tembiricha (Β°C), chiedza (%), kuvhurwa kwegonhi, kuvapo kwemunhu muimba;
  6. Z-Wave USB Stick ZME E UZB1 network controller, kune ma sensors akabatana.

Izvo zvakakosha kuti zvishandiso uye controller zvishande panguva imwechete, zvikasadaro ivo havazoone mumwe nemumwe panguva yekubatanidza. Kusvikira kumidziyo ye232 inogona kubatanidzwa kune imwe Z-Wave network controller, iyo yakakwana kune imwe imba kana imba yenyika. Kuti uwedzere nzvimbo yekuvhara network mukati, smart socket inogona kushandiswa seinodzokorora chiratidzo.

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Mune smart home controller server process yakakurukurwa mundima yapfuura, iyo Z-Wave server ine basa rekudyidzana neZ-Wave zvishandiso. Inoshandisa raibhurari kugamuchira ruzivo kubva kune sensors OpenZWave muC ++, iyo inopa interface yekudyidzana neZ-Wave network USB controller uye inoshanda neakasiyana ma sensors uye actuators. Kukosha kweiyo parameter yezvakatipoteredza inoyerwa ne sensor inorekodhwa neZ-Wave server nenzira yeJSON meseji:

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

Inobva yaendeswa kune server process's meseji maneja kuitira kuti subscriber threads igamuchire. Munyoreri mukuru ndiye yekugadzira logic server, iyo inofanana nemeseji ndima kukosha mune antecedents eiyo logic mitemo. Mhedzisiro yemhedzisiro ine mirairo yekudzora inodzoserwa kumaneja meseji uye kubva ipapo enda kune Z-Wave server, iyo inovasarudza uye inovatumira kune Z-Wave network USB controller. Ipapo vanopinda mu actuator, iyo inoshandura mamiriro ezvinhu ezvakatipoteredza, uye imba yakangwara saka inoita basa rinobatsira.

Cloud Smart Home. Chikamu 1: Mutongi uye sensors
(tinya pamufananidzo kuti uvhure mune yepamusoro resolution)

Kubatanidza Z-Wave zvishandiso kunoitwa mune graphical interface yeakangwara imba controller. Kuti uite izvi, enda kune peji ine runyorwa rwemidziyo uye tinya bhatani re "Wedzera". Iyo yekuwedzera yekuraira kuburikidza neRESTful API interface inopinda musevha process uye inotumirwa nemeseji maneja kuZ-Wave server, iyo inoisa iyo Z-Wave network USB controller mune yakakosha modhi yekuwedzera zvishandiso. Tevere, paZ-Wave mudziyo unofanirwa kugadzira nhevedzano yekutsikirira nekukurumidza (3 madhindi mukati me1,5 masekonzi) yebhatani rebasa. Iyo USB controller inobatanidza mudziyo kunetiweki uye inotumira ruzivo nezvayo kune Z-Wave server. Izvo, zvakare, zvinogadzira nyowani yekupinda muSQLite dhatabhesi ine ma parameter echishandiso chitsva. Mushure menguva yakatarwa yenguva, iyo graphical interface inodzokera kune Z-Wave mudziyo runyorwa peji, inoverenga ruzivo kubva kudhatabhesi uye inoratidza mudziyo mutsva mune rondedzero. Chishandiso chega chega chinogashira chiziviso chayo chakasarudzika, chinoshandiswa mumitemo yekufungidzira yekugadzira uye kana uchishanda mugore. Kushanda kweiyi algorithm kunoratidzwa mumufananidzo weUML:

Cloud Smart Home. Chikamu 1: Mutongi uye sensors
(tinya pamufananidzo kuti uvhure mune yepamusoro resolution)

Kubatanidza IP kamera

Iyo cloud smart home system inokurukurwa muchinyorwa ichi kusimudzira kweiyo cloud video surveillance system, yakagadziridzwawo nemunyori, yanga iri pamusika kwemakore akati wandei uye ine akawanda ekuisa muRussia.

Kune Cloud vhidhiyo yekutarisa masisitimu, rimwe rematambudziko akanyanya isarudzo shoma yemidziyo iyo kubatanidzwa kunogona kuitwa. Iyo software inosungirwa yekubatanidza kune gore inoiswa mukati mevhidhiyo kamera, iyo pakarepo inoisa zvakakomba zvinodikanwa pane yayo Hardware - processor uye huwandu hwemahara memory. Izvi zvinonyanya kutsanangura mutengo wepamusoro wegore CCTV kamera zvichienzaniswa neakajairika IP kamera. Uye zvakare, nhanho yakareba yenhaurirano nemakambani ekugadzira kamera eCCTV inodiwa kuti uwane mukana kune kamera faira system uye ese anodiwa ekuvandudza maturusi.

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Kune rimwe divi, ese emazuva ano IP makamera ane akajairwa mapuroteni ekudyidzana nemimwe michina (kunyanya, vhidhiyo rekodha). Saka, kushandiswa kwemutongi akaparadzana anobatanidza kuburikidza neyakajairwa protocol uye anotepfenyura vhidhiyo hova kubva kuIP makamera kune gore kunopa zvakakosha zvemakwikwi mabhenefiti eiyo cloud video surveillance systems. Uyezve, kana mutengi akatoisa vhidhiyo yekutarisa sisitimu yakavakirwa pane yakapfava IP makamera, zvino zvinoita kuti iwedzere uye nekuishandura kuita yakazara-yakazara gore smart imba.

Iyo inonyanya kufarirwa protocol yeIP vhidhiyo yekutarisa masisitimu, ikozvino inotsigirwa nevose IP kamera vagadziri pasina kusarudzika, ndeye ONVIF Mbiri S, ane zvirevo zviripo mumutauro wekutsanangura masevhisi ewebhu wsdl. Kushandisa zvishandiso kubva kune Toolkit gSOAP Zvinogoneka kugadzira kodhi kodhi yemasevhisi anoshanda neIP kamera:

$ 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

Nekuda kweizvozvo, tinowana seti yemusoro "*.h" uye tinobva "* .cpp" mafaera muC ++, iyo inogona kuiswa zvakananga muchirongwa kana muraibhurari yakaparadzana uye inounganidzwa uchishandisa GCC compiler. Nekuda kwemabasa mazhinji, iyo kodhi yakakura uye inoda kuwedzera optimization. Iyo Raspberry Pi 3 modhi B+ microcomputer ine mashandiro akakwana kuita iyi kodhi, asi kana paine chikonzero chekuendesa kodhi kune imwe chikuva, zvinodikanwa kusarudza iyo chaiyo processor dhizaini uye system zviwanikwa.

IP makamera anotsigira iyo ONVIF chiyero, kana ichishanda pane yemuno network, yakabatana kune yakakosha multicast boka ine kero. 239.255.255.250. Pane protocol WS Discovery, iyo inokutendera kuti uite otomatiki kutsvaga kwemidziyo pane yemuno network.

Iyo graphical interface yeakangwara imba controller inoshandisa basa rekutsvaga IP makamera muPHP, iri nyore kwazvo kana uchifambidzana newebhu masevhisi kuburikidza neXML mameseji. Pakusarudza menyu zvinhu Zvishandiso> IP Kamera> Kuongorora Iyo algorithm yekutsvaga IP kamera inotangwa, ichiratidza mhedzisiro muchimiro chetafura:

Cloud Smart Home. Chikamu 1: Mutongi uye sensors
(tinya pamufananidzo kuti uvhure mune yepamusoro resolution)

Paunowedzera kamera kune controller, unogona kutsanangura marongero maererano nezvaachaita negore. Zvakare panguva ino, inopihwa otomatiki yakasarudzika mudziyo identifier, iyo inogona gare gare kuzivikanwa zviri nyore mukati megore.

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Tevere, meseji inogadzirwa muJSON fomati ine ese maparamendi eiyo kamera yakawedzerwa uye inotumirwa kune server maitiro eiyo smart home controller kuburikidza neRESTful API command, uko maparamita ekhamera anotemwa uye anochengetwa mudura remukati reSQLite, uye ari yakashandiswawo kuburitsa tambo dzinotevera dzekugadzirisa:

  1. kumisikidza RTSP yekubatanidza kugamuchira vhidhiyo uye odhiyo hova;
  2. transcoding audio kubva kuG.711 mu-Law, G.711 A-Law, G.723, nezvimwewo. kuAAC fomati;
  3. transcoding video streams muH.264 format uye audio muAAC format mumudziyo weFLV uye kuitumira kune gore kuburikidza neRTMP protocol;
  4. kumisikidza chinongedzo nemagumo eiyo IP kamera motion detector kuburikidza neONVIF protocol uye nguva nenguva kuivhota;
  5. nguva nenguva uchigadzira chifananidzo chekutarisa uye kuchitumira kune gore kuburikidza neMQTT protocol;
  6. kurekodha kwemunharaunda kwevhidhiyo uye maodhiyo enziyo nenzira yemafaira akaparadzana muMP4 fomati pane SD kana Flash kadhi yeakangwara imba controller.

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Kumisikidza chinongedzo nemakamera, transcode, gadzira uye kurekodha vhidhiyo hova mune server maitiro, mabasa kubva kuraibhurari anoshandiswa. FFmpeg 4.1.0.

Muyedzo yekuyedza kuita, matatu makamera akabatana kune controller:

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

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Hova nhatu dzese dzakaburitswa mugore, odhiyo transcoding yakaitwa kubva kune imwe chete kamera, uye kurekodha kwenzvimbo kwakavharwa. CPU mutoro waisvika 5%, RAM kushandiswa kwaive 32 MB (per process), 56 MB (yakazara kusanganisira OS).

Saka, angangoita 20 - 30 makamera anogona kubatanidzwa kune yakangwara imba controller (zvichienderana nekugadzirisa uye bitrate), iyo inokwana yevhidhiyo yekuongorora system yeimba ine nhurikidzwa nhatu kana imba yekuchengetera diki. Kune mabasa anoda kuita kukuru, unogona kushandisa nettop ine multi-core Intel processor uye Linux Debian Sarge OS. Iyo controller parizvino iri kuita kuyedza kushanda, uye data pakuita kwayo ichagadziridzwa.

Kudyidzana negore

Iyo yegore-yakavakirwa smart imba inochengeta data remushandisi (vhidhiyo uye sensor zviyero) mugore. Iyo dhizaini yekuchengetedza gore ichakurukurwa zvakadzama mune inotevera chinyorwa mune yedu nhevedzano. Zvino ngatitaure nezve iyo interface yekutumira ruzivo ruzivo kubva kune yakangwara imba controller kusvika kune gore.

Iwo matunhu emidziyo yakabatana uye zviyero zve sensor zvinofambiswa kuburikidza neprotocol MQTT, iyo inowanzo shandiswa mumapurojekiti eInternet eZvinhu nekuda kwekureruka kwayo uye kushanda nesimba. MQTT inoshandisa mutengi-sevha modhi, uko vatengi vanonyorera kune chaiwo misoro mukati memubhuroka uye kushambadza mameseji avo. Iyo broker inotumira mameseji kune vese vanyoreri zvinoenderana nemitemo yakatarwa neQoS (Quality of Service) level:

  • QoS 0 - yakawanda kamwe (hapana vimbiso yekuendesa);
  • QoS 1 - kanenge kamwe (nekusimbisa kwekutumira);
  • QoS 2 - chaizvo kamwe chete (pamwe nekuwedzera kuburitsa kusimbiswa).

Muchiitiko chedu, tinoshandisa Eclipse Mosquito. Iro zita remusoro ndiyo yakasarudzika identifier yeakangwara imba controller. Iyo MQTT mutengi mukati mesevha process inonyorera kune iyi musoro uye inoshandura JSON mameseji anouya kubva kune meseji maneja mairi. Sezvineiwo, mameseji kubva kuMQTT bhuroka anoendeswa nayo kune maneja wemeseji, anozoawedzera kune vanyoreri mukati mesevha process:

Cloud Smart Home. Chikamu 1: Mutongi uye sensors

Kufambisa mameseji nezve chimiro cheyakangwara imba controller, iyo meseji yakachengetwa inoshandiswa mameseji akachengetwa MQTT protocol. Izvi zvinokutendera kuti utarise nemazvo nguva yekubatanidzazve panguva yekutadza kwemagetsi.

Mutengi weMQTT akagadzirwa zvichibva pakuita raibhurari Eclipse Paho mumutauro weC++.

H.264 + AAC media streams inotumirwa kugore kuburikidza neRTMP protocol, uko boka remaseva emedia rine basa rekugadzirisa nekuzvichengeta. Kunyatso kugovera mutoro musumbu uye sarudza isinganyanyi kurodha midhiya server, iyo yakangwara imba controller inoita chikumbiro chekutanga kune gore rekutakura balancer uye chete mushure mezvo zvinotumira media stream.

mhedziso

Chinyorwa ichi chakaongorora imwe chaiyo yekuitwa kweakangwara imba controller yakavakirwa paRaspberry Pi 3 B + microcomputer, iyo inogona kugamuchira, kugadzirisa ruzivo uye kutonga michina kuburikidza neZ-Wave protocol, kupindirana neIP kamera kuburikidza neONVIF protocol, uye zvakare kuchinjanisa data uye inoraira negore, sevhisi kuburikidza neMQTT uye RTMP maprotocol. Injini yekugadzira yekugadzira yakagadziridzwa zvichibva pakuenzaniswa kwemitemo ine musoro uye chokwadi chinoratidzwa muJSON fomati.

Iyo yakangwara imba controller parizvino iri kuita kutongwa kunzvimbo dzinoverengeka muMoscow uye mudunhu reMoscow.

Iyo inotevera vhezheni yemutongi inoronga kubatanidza mamwe marudzi emidziyo (RF, Bluetooth, WiFi, wired). Kuti zvive nyore kwevashandisi, maitiro ekubatanidza masensa uye IP makamera anozoendeswa kune nharembozha. Kune zvakare mazano ekugadzirisa iyo server process kodhi uye kuendesa software kune inoshanda sisitimu openwrt. Izvi zvinokutendera iwe kuchengetedza pane yakaparadzana controller uye kuendesa mashandiro eimba yakangwara kune yakajairika imba router.

Source: www.habr.com

Voeg