Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Sa lá atá inniu ann, a bhuíochas le forbairt go mear ar mhicrileictreonaic, bealaí cumarsáide, teicneolaíochtaí Idirlín agus Intleacht Shaorga, tá ábhar na dtithe cliste ag éirí níos ábhartha agus níos mó. Tá athruithe suntasacha tagtha ar thithíocht dhaonna ón gClochaois agus i ré na Réabhlóide Tionscail 4.0 agus Idirlíon na Rudaí, tá sé compordach, feidhmiúil agus sábháilte. Tá réitigh ag teacht ar an margadh a iompaíonn árasán nó teach tuaithe ina chórais chasta faisnéise arna rialú ó áit ar bith ar domhan ag baint úsáide as fón cliste. Thairis sin, ní éilíonn idirghníomhú daonna-meaisín eolas ar theangacha ríomhchláraithe a thuilleadh - a bhuíochas le halgartaim aitheantais cainte agus sintéise, labhraíonn duine le teach cliste ina theanga dhúchais.

Is forbairt loighciúil ar chórais faireachais físeán scamall iad roinnt córais baile cliste atá ar an margadh faoi láthair, agus thuig na forbróirí go raibh gá le réiteach cuimsitheach, ní hamháin maidir le monatóireacht a dhéanamh, ach freisin chun rudaí iargúlta a bhainistiú.

Cuirimid i láthair d'aird sraith de thrí alt, a inseoidh duit faoi na príomhchodanna go léir de chóras baile cliste scamall, a d'fhorbair an t-údar go pearsanta agus a cuireadh i bhfeidhm. Tá an chéad alt dírithe ar an trealamh cliant críochfoirt atá suiteáilte taobh istigh de theach cliste, an dara ceann d'ailtireacht an chórais stórála scamall agus próiseála sonraí, agus ar deireadh, an tríú chuig iarratas an chliaint chun an córas a bhainistiú ar fheistí soghluaiste agus stáiseanóireachta.

Trealamh baile cliste

Ar dtús, déanaimis labhairt faoi conas teach cliste a dhéanamh as gnáth-árasán, dacha nó teachín. Chun seo a dhéanamh, mar riail, is gá an trealamh seo a leanas a chur sa bhaile:

  1. braiteoirí a thomhaiseann paraiméadair chomhshaoil ​​éagsúla;
  2. gníomhaithe ag gníomhú ar rudaí seachtracha;
  3. rialtóir a dhéanann ríomhaireachtaí de réir tomhais braiteora agus loighic leabaithe, agus a eisíonn orduithe chuig actuators.

Taispeánann an figiúr seo a leanas léaráid de theach cliste, ar a bhfuil braiteoirí le haghaidh sceitheadh ​​uisce (1) sa seomra folctha, teocht (2) agus soilsiú (3) sa seomra leapa, soicéad cliste (4) sa chistin agus a ceamara físe faireachais (5) sa halla.

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Faoi láthair, úsáidtear braiteoirí gan sreang atá ag feidhmiú ag baint úsáide as na prótacail RF433, Z-Wave, ZigBee, Bluetooth agus WiFi. Is iad na príomhbhuntáistí atá acu ná éascaíocht a shuiteáil agus a úsáid, chomh maith le costas íseal agus iontaofacht, mar gheall ar Déanann monaróirí a ndícheall a gcuid feistí a thabhairt chuig an ollmhargadh agus iad a dhéanamh inrochtana don ghnáthúsáideoir.

Tá braiteoirí agus actuators, mar riail, ceangailte trí chomhéadan gan sreang le rialtóir baile cliste (6) - microcomputer speisialaithe a chomhcheanglaíonn na feistí seo go léir i líonra amháin agus a rialaíonn iad.

Mar sin féin, is féidir le roinnt réitigh braiteoir, actuator agus rialtóir a chomhcheangal ag an am céanna. Mar shampla, is féidir breiseán cliste a ríomhchlárú chun casadh ar nó as de réir sceidil, agus is féidir le ceamara faireachais scamall físeán a thaifeadadh bunaithe ar chomhartha braite tairiscint. Sna cásanna is simplí, is féidir leat a dhéanamh gan rialtóir ar leith, ach chun córas solúbtha a chruthú le go leor cásanna, is gá.

Chun an rialtóir baile cliste a nascadh leis an líonra domhanda, is féidir ródaire Idirlín rialta (7) a úsáid, a tháinig chun bheith ina fhearas tí coitianta le fada in aon teach. Anseo tá argóint eile i bhfabhar rialtóir baile cliste - má chailltear an nasc leis an Idirlíon, leanfaidh an baile cliste ag feidhmiú mar is gnách a bhuíochas leis an mbloc loighic a stóráiltear taobh istigh den rialtóir, agus ní sa tseirbhís scamall.

Rialaitheoir cliste baile

Forbraítear an rialtóir don chóras baile cliste scamall a phléitear san Airteagal seo bunaithe ar mhicriríomhaire aonchláir Samhail Raspberry Pi 3 B+, a scaoileadh i mí an Mhárta 2018 agus tá acmhainní agus feidhmíocht leordhóthanach aige le haghaidh tascanna baile cliste. Áiríonn sé próiseálaí quad-lárnach Cortex-A53 bunaithe ar ailtireacht 64-giotán ARMv8-A, clogáilte ag 1.4 GHz, chomh maith le 1 GB RAM, Wi-Fi 802.11ac, Bluetooth 4.2 agus adapter Ethernet gigabit ag feidhmiú trí USB 2.0 .

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Tá sé an-simplí an rialtóir a chur le chéile - tá an microcomputer (1) suiteáilte i gcás plaisteach (2), ansin tá cárta cuimhne 8 GB i bhformáid microSD le bogearraí (3) agus rialtóir líonra USB Z-Wave (4) suiteáilte i na sliotáin chomhfhreagracha. Tá an rialtóir baile cliste ceangailte leis an soláthar cumhachta trí adapter cumhachta 5V, 2.1A (5) agus cábla USB - micrea-USB (6). Tá uimhir aitheantais uathúil ag gach rialtóir, atá scríofa sa chomhad cumraíochta nuair a seoladh é den chéad uair agus is gá chun idirghníomhú le seirbhísí baile cliste scamall.

D'fhorbair údar an ailt seo na bogearraí rialaithe baile cliste bunaithe ar an gcóras oibriúcháin Síneadh Raspbian Linux. Tá sé comhdhéanta de na príomhfhochórais seo a leanas:

  • próiseas freastalaí le haghaidh idirghníomhú le trealamh baile cliste agus an scamall;
  • comhéadan grafach úsáideora chun cumraíocht agus paraiméadair oibriúcháin an rialaitheora a shocrú;
  • bunachar sonraí le haghaidh cumraíocht rialtóir a stóráil.

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Bunachar Sonraí cuirtear rialtóir baile cliste i bhfeidhm bunaithe ar DBMS leabaithe SQLite agus is comhad é ar chárta SD le bogearraí córais. Feidhmíonn sé mar stóráil do chumraíocht an rialtóra - faisnéis faoin trealamh nasctha agus a staid reatha, bloc de rialacha táirgthe loighciúil, chomh maith le faisnéis a éilíonn innéacsú (mar shampla, ainmneacha comhaid cartlann físeáin áitiúil). Nuair a atosaítear an rialtóir, sábhálfar an fhaisnéis seo, rud a fhágann gur féidir an rialtóir a chur ar ais i gcás teip cumhachta.

Comhéadan grafach rialtóir baile cliste a forbraíodh i PHP 7 ag baint úsáide as microframework Caol. Tá an freastalaí gréasáin freagrach as an feidhmchlár a rith. lighttpd, a úsáidtear go minic i bhfeistí leabaithe mar gheall ar a dhea-fheidhmíocht agus a riachtanais acmhainní íseal.

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí
(cliceáil ar an bpictiúr lena oscailt i dtaifeach níos airde)

Is é príomhfheidhm an chomhéadan grafach ná trealamh baile cliste (ceamaraí faireachais IP agus braiteoirí) a nascadh leis an rialtóir. Léann an feidhmchlár gréasáin cumraíocht agus staid reatha an rialaitheora agus na bhfeistí atá nasctha leis ó bhunachar sonraí SQLite. Chun cumraíocht an rialtóra a athrú, seolann sé orduithe rialaithe i bhformáid JSON trí chomhéadan RESTful API den phróiseas freastalaí.

Próiseas freastalaí

Próiseas freastalaí - príomhghné a dhéanann an phríomhobair go léir ar uathoibriú na bpróiseas faisnéise atá mar bhunús le teach cliste: sonraí céadfacha a fháil agus a phróiseáil, gníomhartha rialaithe a eisiúint ag brath ar an loighic leabaithe. Is é cuspóir an phróisis freastalaí idirghníomhú le trealamh baile cliste, rialacha loighciúla táirgeachta a fhorghníomhú, orduithe a fháil agus a phróiseáil ón gcomhéadan grafach agus ón scamall. Cuirtear an próiseas freastalaí sa rialtóir baile cliste atá á mheas i bhfeidhm mar fheidhmchlár il-snáithithe arna fhorbairt in C++ agus seolta mar sheirbhís ar leith córas córas oibriucháin Raspbian le haghaidh Linux.

Is iad na príomhbhloic den phróiseas freastalaí:

  1. Bainisteoir Teachtaireachta;
  2. freastalaí ceamara IP;
  3. Freastalaí gléas Z-Wave;
  4. Freastalaí na rialacha loighciúil táirgeachta;
  5. Bunachar sonraí de chumraíocht an rialaitheora agus bloc rialacha loighciúil;
  6. Freastalaí RESTful API le haghaidh idirghníomhú leis an gcomhéadan grafach;
  7. Cliant MQTT chun idirghníomhú leis an scamall.

Cuirtear bloic próiseas an fhreastalaí i bhfeidhm mar shnáitheanna ar leith, agus aistrítear faisnéis eatarthu i bhfoirm teachtaireachtaí i bhformáid JSON (nó struchtúir sonraí a léiríonn an fhormáid seo i gcuimhne próisis).

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Is é príomh-chomhpháirt an phróisis freastalaí bainisteoir teachtaireachta, a sheolann teachtaireachtaí JSON chuig gach bloc próiseála freastalaí. Tá na cineálacha réimsí faisnéise teachtaireachta JSON agus na luachanna ar féidir leo glacadh leo liostaithe sa tábla:

Cineál gléas
prótacal
cineál teachtaireachta
gléasStáit
orduithe

ceamara
onvif
sonraí braiteoir
on
sruthú (Ar / As)

braiteoir
zwave
orduithe
amach
taifeadadh (Ar / As)

éifeachtóir
mqtt
businessLogicRule
sruthú (Ar / As)
feiste(Cuir leis/Bain)

gnó loighic
sonraí cumraíochta
taifeadadh (Ar / As)

Bluetooth
gléasStáit
earráid

Wifi

rf

Mar shampla, tá cuma mar seo ar theachtaireacht ó bhrathadóir gluaisne ceamara:

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

Loighic táirgthe

Chun teachtaireacht a fháil nó a sheoladh ón seoltóir, glacann bloc próisis an fhreastalaí le teachtaireachtaí de chineál áirithe. Is riail loighciúil táirgeachta den chineál é an síntiús “Má... ansin…”, curtha i láthair i bhformáid JSON, agus nasc chuig an láimhseálaí teachtaireacht taobh istigh den bhloc próiseas freastalaí. Mar shampla, chun ligean don fhreastalaí ceamara IP orduithe a fháil ón GUI agus ón scamall, ní mór duit an riail seo a leanas a chur leis:

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

Má tá na coinníollacha a shonraítear i roimhe (taobh clé) go bhfuil na rialacha fíor, ansin tá sé sásta iarmhartach (taobh dheis), agus faigheann an láimhseálaí rochtain ar chorp na teachtaireachta JSON. Tacaíonn an réamhchinneadh le hoibreoirí loighciúla a dhéanann comparáid idir péirí eochairluacha JSON:

  1. is ionann "equal";
  2. ní comhionann le "not_equal";
  3. níos lú "less";
  4. níos mó "more";
  5. níos lú ná nó cothrom le "less_or_equal";
  6. níos mó ná nó cothrom le "more_or_equal".

Is féidir na torthaí comparáide a bheith gaolmhar lena chéile trí úsáid a bhaint as oibreoirí ailgéabar Boole:

  1. Agus "agus"
  2. NÓ "nó";
  3. NÍ "ní".

Mar sin, trí oibreoirí agus operands a scríobh i nodaireacht Polainnis, is féidir leat coinníollacha casta go leor a chruthú le líon mór paraiméadair.

Úsáidtear an mheicníocht chéanna go díreach, bunaithe ar theachtaireachtaí JSON agus rialacha táirgthe i bhformáid JSON, sa bhloc freastalaí loighic táirgthe chun eolas a léiriú agus tátal loighciúil a dhéanamh ag baint úsáide as sonraí céadfacha ó bhraiteoirí baile cliste.

Ag baint úsáide as feidhmchlár soghluaiste, cruthaíonn an t-úsáideoir cásanna ar cheart don teach cliste feidhmiú. Mar shampla: “Má spreagtar an braiteoir chun an doras tosaigh a oscailt, cuir an solas ar siúl sa halla”. Léann an t-iarratas aitheantóirí braiteoirí (braiteoir oscailte) agus actuators (soicéad cliste nó lampa cliste) ón mbunachar sonraí agus gineann sé riail loighciúil i bhformáid JSON, a sheoltar chuig an rialtóir baile cliste. Déanfar an mheicníocht seo a phlé níos mionsonraithe sa tríú airteagal dár sraith, áit a labhróimid faoi iarratas an chliaint maidir le teach cliste a bhainistiú.

Cuirtear an mheicníocht loighic táirgthe a pléadh thuas i bhfeidhm ag baint úsáide as an leabharlann MearJSON — Parsálaí SAX le haghaidh formáid JSON i C++. Ligeann léamh seicheamhach agus parsáil sraith rialacha táirgthe duit an fheidhm chomparáide sonraí a chur i bhfeidhm go héasca taobh istigh de na réamhinsintí:

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

Anseo p Fíric — struchtúr ina bhfuil péirí eochairluacha ó theachtaireacht JSON, m_ Rialacha — sraith teaghrán rialacha táirgthe. Déantar comparáid idir an teachtaireacht atá ag teacht isteach agus an riail táirgthe sa fheidhm léitheoir.Parse(rial tSruth, láimhseálaí riail)I gcás ina láimhseálaí riail is réad é ina bhfuil loighic Boole agus oibreoirí comparáide. sRuleId — aitheantóir uathúil rialacha, ar féidir a bhuí leis na rialacha a stóráil agus a chur in eagar laistigh den bhunachar sonraí rialaitheoirí baile cliste. m_Gníomhartha — eagar le torthaí na tátal loighciúil: teachtaireachtaí JSON ina bhfuil iarmhartacha ón mbonn rialacha agus seolta a thuilleadh chuig bainisteoir na teachtaireachta ionas gur féidir le snáitheanna an tsíntiúsóra iad a phróiseáil.

Tá feidhmíocht RapidJSON inchomparáide leis an bhfeidhm strlen(), agus ceadaíonn na híosriachtanais acmhainní córais úsáid na leabharlainne seo i bhfeistí leabaithe. Ligeann úsáid teachtaireachtaí agus rialacha loighciúla i bhformáid JSON duit córas solúbtha malartaithe faisnéise a chur i bhfeidhm idir comhpháirteanna uile an rialaitheora baile cliste.

Braiteoirí agus Gníomhairí Z-Toinne

Is é an buntáiste is mó a bhaineann le teach cliste ná go bhféadfaidh sé paraiméadair éagsúla den timpeallacht sheachtrach a thomhas go neamhspleách agus feidhmeanna úsáideacha a dhéanamh ag brath ar an staid. Chun seo a dhéanamh, tá braiteoirí agus actuators ceangailte leis an rialtóir baile cliste. Sa leagan reatha, is gléasanna gan sreang iad seo a oibríonn ag baint úsáide as an bprótacal Z-Tonn ar mhinicíocht a leithdháiltear go speisialta 869 MHz Don Rúis. Chun oibriú, déantar iad a chomhcheangal i líonra mogalra, ina bhfuil athsheoltóirí comhartha chun an limistéar clúdaigh a mhéadú. Tá modh speisialta coigilte fuinnimh ag na feistí freisin - caitheann siad an chuid is mó den am i mód codlata agus ní sheolann siad faisnéis ach amháin nuair a athraíonn a staid, rud a fhéadfaidh saol na ceallraí ionsuite a leathnú go suntasach.

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Is féidir leat líon measartha mór gléasanna Z-Wave éagsúla a fháil ar an margadh anois. Breathnaímis ar roinnt samplaí:

  1. Is féidir le soicéad cliste Zipato PAN16 na paraiméadair seo a leanas a thomhas: tomhaltas leictreachais (kWh), cumhacht (W), voltas (V) agus reatha (A) sa líonra leictreach. Tá lasc ionsuite aige freisin inar féidir leat an fearas leictreach nasctha a rialú;
  2. Aimsíonn braiteoir sceite Neo Coolcam láithreacht leacht doirte trí theagmhálacha an taiscéalaí iargúlta a dhúnadh;
  3. Spreagtar braiteoir deataigh Zipato PH-PSG01 nuair a théann cáithníní deataigh isteach sa seomra anailísí gáis;
  4. Déanann braiteoir tairiscint Neo Coolcam anailís ar radaíocht infridhearg an chorp daonna. Ina theannta sin tá braiteoir solais (Lx);
  5. Tomhaiseann multisensor Philio PST02-A teocht (°C), solas (%), oscailt an dorais, láithreacht duine sa seomra;
  6. Bata USB Z-Wave Rialaitheoir líonra ZME E UZB1, a bhfuil braiteoirí ceangailte leis.

Tá sé an-tábhachtach go n-oibríonn na feistí agus an rialtóir ag an minicíocht chéanna, ar shlí eile ní fheicfidh siad a chéile i láthair na huaire nasc. Is féidir suas le 232 feiste a nascadh le rialtóir líonra Z-Wave amháin, atá sách go leor le haghaidh árasán nó teach tuaithe. Chun an limistéar clúdaigh líonra taobh istigh a leathnú, is féidir soicéad cliste a úsáid mar athsheoltóir comhartha.

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Sa phróiseas freastalaí rialaithe baile cliste a pléadh sa mhír roimhe seo, tá an freastalaí Z-Wave freagrach as idirghníomhú le feistí Z-Wave. Úsáideann sé leabharlann chun faisnéis a fháil ó bhraiteoirí OscailteZWave in C++, a sholáthraíonn comhéadan chun idirghníomhú le rialtóir USB líonra Z-Wave agus a oibríonn le braiteoirí agus gníomhaithe éagsúla. Is é an freastalaí Z-Wave a thaifeadann luach an pharaiméadar comhshaoil ​​arna thomhas ag an braiteoir i bhfoirm teachtaireachta 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"
}

Cuirtear ar aghaidh ansin é chuig bainisteoir teachtaireachta an phróisis fhreastalaí ionas gur féidir le snáitheanna an tsíntiúsóra é a fháil. Is é an príomh-shuibscríobhaí an freastalaí loighic táirgthe, a mheaitseálann na luachanna réimse teachtaireachta i réamhshainithe na rialacha loighic. Seoltar na torthaí tátail ina bhfuil orduithe rialaithe ar ais chuig an mbainisteoir teachtaireachta agus as sin téigh go dtí an freastalaí Z-Wave, a dhíchódaíonn iad agus a sheolann chuig rialtóir USB líonra Z-Wave iad. Ansin téann siad isteach sa actuator, a athraíonn staid na rudaí comhshaoil, agus mar sin déanann an teach cliste obair úsáideach.

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí
(cliceáil ar an bpictiúr lena oscailt i dtaifeach níos airde)

Déantar feistí Z-Wave a nascadh i gcomhéadan grafach an rialaitheora baile cliste. Chun seo a dhéanamh, téigh go dtí an leathanach le liosta de na feistí agus cliceáil ar an gcnaipe "Add". Téann an t-ordú add trí chomhéadan RESTful API isteach sa phróiseas freastalaí agus ansin cuireann an bainisteoir teachtaireacht chuig an bhfreastalaí Z-Wave, a chuireann rialtóir USB líonra Z-Wave isteach i mód speisialta chun feistí a chur leis. Ansin, ar an ngléas Z-Wave ní mór duit sraith de phreasanna tapa a dhéanamh (3 phreas laistigh de 1,5 soicind) den chnaipe seirbhíse. Ceanglaíonn an rialtóir USB an gléas leis an líonra agus cuireann sé faisnéis faoi chuig an bhfreastalaí Z-Wave. Cruthaíonn sé sin, ina dhiaidh sin, iontráil nua i mbunachar sonraí SQLite le paraiméadair an ghléis nua. Tar éis eatramh ama sonraithe, filleann an comhéadan grafach ar leathanach liosta feistí Z-Wave, léann sé faisnéis ón mbunachar sonraí agus taispeánann sé an gléas nua sa liosta. Faigheann gach feiste a aitheantóir uathúil féin, a úsáidtear i rialacha tátail táirgthe agus nuair a bhíonn sé ag obair sa scamall. Taispeántar oibriú an algartam seo sa léaráid UML:

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí
(cliceáil ar an bpictiúr lena oscailt i dtaifeach níos airde)

Ceamaraí IP a nascadh

Is é an córas baile cliste scamall a phléitear san Airteagal seo ná uasghrádú ar an gcóras faireachais físeán scamall, a d'fhorbair an t-údar freisin, atá ar an margadh le roinnt blianta anuas agus tá go leor suiteálacha aige sa Rúis.

Maidir le córais faireachais físeán néal, ceann de na fadhbanna géara is ea an roghnú teoranta trealaimh lenar féidir comhtháthú a dhéanamh. Tá na bogearraí atá freagrach as nascadh leis an scamall suiteáilte taobh istigh den cheamara físe, rud a chuireann éilimh thromchúiseacha láithreach ar a chrua-earraí - an próiseálaí agus an méid cuimhne saor in aisce. Míníonn sé seo go príomha praghas níos airde ceamaraí CCTV scamall i gcomparáid le ceamaraí IP rialta. Ina theannta sin, tá gá le céim fhada idirbheartaíochta le cuideachtaí déantúsaíochta ceamara CCTV chun rochtain a fháil ar chóras comhaid an cheamara agus ar na huirlisí forbartha go léir is gá.

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Ar an láimh eile, tá prótacail chaighdeánacha ag gach ceamara IP nua-aimseartha le haghaidh idirghníomhú le trealamh eile (go háirithe, taifeadáin físeáin). Mar sin, soláthraíonn úsáid rialaitheora ar leith a nascann trí phrótacal caighdeánach agus a chraolann sruthanna físeáin ó cheamaraí IP go dtí an scamall buntáistí suntasacha iomaíocha do chórais faireachais físeán scamall. Ina theannta sin, má tá córas faireachais físeáin suiteáilte ag an gcliant cheana féin bunaithe ar cheamaraí IP simplí, ansin is féidir é a leathnú agus é a iompú isteach i dteach cliste scamall iomlán.

Is é an prótacal is mó tóir do chórais faireachais físeán IP, a thacaíonn gach monaróir ceamara IP anois gan eisceacht Próifíl ONVIF S., a bhfuil a sonraíochtaí i dteanga tuairiscithe seirbhísí gréasáin wsdl. Ag baint úsáide as fóntais ón bhfoireann uirlisí gSOAP Is féidir cód foinse a ghiniúint le haghaidh seirbhísí a oibríonn le ceamaraí 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

Mar thoradh air sin, faigheann muid sraith de chomhaid ceanntásca “*.h” agus foinse “*.cpp” i C++, ar féidir iad a chur go díreach isteach in iarratas nó i leabharlann ar leith agus a thiomsú ag baint úsáide as tiomsaitheoir GCC. Mar gheall ar an iliomad feidhmeanna, tá an cód mór agus éilíonn leas iomlán a bhaint breise. Tá feidhmíocht leordhóthanach ag microcomputer samhail B+ Raspberry Pi 3 chun an cód seo a fhorghníomhú, ach má tá gá leis an gcód a aistriú chuig ardán eile, is gá an ailtireacht próiseálaí ceart agus acmhainní an chórais a roghnú.

Tá ceamaraí IP a thacaíonn le caighdeán ONVIF, agus iad ag feidhmiú ar líonra áitiúil, ceangailte le grúpa ilchraolacháin speisialta leis an seoladh 239.255.255.250. Tá prótacal ann WS-Fionnachtana, a ligeann duit an cuardach le haghaidh feistí ar an líonra áitiúil a uathoibriú.

Cuireann comhéadan grafach an rialaitheora baile cliste feidhm chuardaigh do cheamaraí IP i PHP i bhfeidhm, atá an-áisiúil nuair a bhíonn sé ag idirghníomhú le seirbhísí gréasáin trí theachtaireachtaí XML. Agus míreanna roghchláir á roghnú Gléasanna > Ceamaraí IP > Scanadh Seoltar an algartam chun ceamaraí IP a chuardach, a thaispeánann an toradh i bhfoirm tábla:

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí
(cliceáil ar an bpictiúr lena oscailt i dtaifeach níos airde)

Nuair a chuireann tú ceamara leis an rialtóir, is féidir leat na socruithe a shonrú ar dá réir a idirghníomhóidh sé leis an scamall. Chomh maith leis sin ag an gcéim seo, sanntar aitheantóir uathúil feiste dó go huathoibríoch, trínar féidir é a aithint go héasca laistigh den scamall níos déanaí.

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Ansin, gintear teachtaireacht i bhformáid JSON ina bhfuil paraiméadair uile an cheamara a cuireadh leis agus seoltar chuig próiseas freastalaí an rialtóra baile cliste trí ordú RESTful API, áit a ndéantar paraiméadair an cheamara a dhíchódú agus a shábháil i mbunachar sonraí inmheánach SQLite, agus tá a úsáidtear freisin chun na snáitheanna próiseála seo a leanas a sheoladh:

  1. nasc RTSP a bhunú chun sruthanna físe agus fuaime a ghlacadh;
  2. traschódú fuaime ó fhormáidí G.711 mu-Dlí, G.711 A-Dlí, G.723, etc. go formáid AAC;
  3. ag traschódú sruthanna físe i bhformáid H.264 agus fuaime i bhformáid AAC isteach i gcoimeádán FLV agus é a tharchur chuig an scamall trí phrótacal RTMP;
  4. nasc a bhunú le críochphointe an bhrathadóra gluaisne ceamara IP trí phrótacal ONVIF agus é a vótaíocht go tréimhsiúil;
  5. íomhá réamhamhairc mionsamhla a ghiniúint go tréimhsiúil agus í a sheoladh chuig an scamall tríd an bprótacal MQTT;
  6. taifeadadh áitiúil ar shruthanna físe agus fuaime i bhfoirm comhaid ar leith i bhformáid MP4 ar chárta SD nó Flash de rialaitheoir baile cliste.

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Chun nasc a bhunú le ceamaraí, traschódú, próiseáil agus taifeadadh sruthanna físeáin sa phróiseas freastalaí, úsáidtear feidhmeanna ón leabharlann FFmpeg 4.1.0.

Sa turgnamh tástála feidhmíochta, ceanglaíodh 3 ceamara leis an rialtóir:

  1. HiWatch DS-I114W (taifeach - 720p, formáid comhbhrú - H.264, ráta giotán - 1 Mb/s, fuaim G.711 mu-Dlí);
  2. Microdigital MDC-M6290FTD-1 (taifeach - 1080p, formáid comhbhrú - H.264, ráta giotán - 1 Mb/s, gan aon fhuaim);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (taifeach - 1080p, formáid comhbhrú - H.264, ráta giotán - 1.5 Mb/s, fuaime AAC).

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Aschuireadh na trí shruth go léir ag an am céanna chuig an néal, rinneadh traschódú fuaime ó cheamara amháin, agus díchumasaíodh taifeadadh cartlainne áitiúil. Bhí an t-ualach LAP thart ar 5%, bhí úsáid RAM 32 MB (in aghaidh an phróisis), 56 MB (iomlán lena n-áirítear OS).

Mar sin, is féidir thart ar 20 - 30 ceamara a nascadh leis an rialtóir baile cliste (ag brath ar réiteach agus giotán), rud atá go leor le haghaidh córas faireachais físeáin le haghaidh teachín trí-scéal nó stóras beag. Le haghaidh tascanna a éilíonn feidhmíocht níos fearr, is féidir leat nettop a úsáid le próiseálaí Intel il-lárnach agus Linux Debian Sarge OS. Tá an rialaitheoir i mbun oibriú trialach faoi láthair, agus déanfar sonraí ar a fheidhmíocht a nuashonrú.

Idirghníomhaíocht leis an scamall

Stórálann teach cliste scamall-bhunaithe sonraí úsáideora (tomhais físeáin agus braiteoirí) sa scamall. Déanfar ailtireacht na stórála scamall a phlé níos mionsonraithe sa chéad alt eile inár sraith. Anois, déanaimis labhairt faoin gcomhéadan chun teachtaireachtaí faisnéise a tharchur ón rialtóir baile cliste chuig an scamall.

Tarchuirtear staid na bhfeistí nasctha agus na tomhais braiteora tríd an bprótacal MQTT, a úsáidtear go minic i dtionscadail Internet of Things mar gheall ar a simplíocht agus a éifeachtúlacht fuinnimh. Úsáideann MQTT múnla cliant-freastalaí, áit a ndéanann cliaint liostáil le hábhair ar leith laistigh den bhróicéir agus ina bhfoilsíonn siad a gcuid teachtaireachtaí. Seolann an bróicéir teachtaireachtaí chuig gach síntiúsóir de réir rialacha arna gcinneadh ag an leibhéal QoS (Cáilíocht Seirbhíse):

  • QoS 0 - uasmhéid uair amháin (gan ráthaíocht seachadta);
  • QoS 1 - uair amháin ar a laghad (le deimhniú seachadta);
  • QoS 2 - díreach uair amháin (le deimhniú seachadta breise).

In ár gcás, úsáidimid Mosquito Eclipse. Is é an t-ainm ábhar aitheantóir uathúil an rialaitheora baile cliste. Glacann an cliant MQTT taobh istigh den phróiseas freastalaí leis an ábhar seo agus aistríonn sé teachtaireachtaí JSON a thagann ón mbainisteoir teachtaireachtaí isteach ann. Os a choinne sin, cuireann sé teachtaireachtaí ón mbróicéir MQTT ar aghaidh chuig an mbainisteoir teachtaireachta, agus ansin déanann sé iad a ilphléacsáil chuig a shíntiúsóirí laistigh den phróiseas freastalaí:

Baile Scamall Cliste. Cuid 1: Rialaitheoir agus braiteoirí

Chun teachtaireachtaí a tharchur faoi stádas an rialaitheora baile cliste, úsáidtear meicníocht na dteachtaireachtaí sábháilte teachtaireachtaí coinnithe Prótacal MQTT. Ligeann sé seo duit monatóireacht cheart a dhéanamh ar uainiú athcheangail le linn teipeanna cumhachta.

Forbraíodh an cliant MQTT bunaithe ar chur i bhfeidhm na leabharlainne Eclipse Paho i dteanga C++.

Seoltar sruthanna meán H.264 + AAC chuig an scamall trí phrótacal RTMP, áit a bhfuil cnuasach de fhreastalaithe meán freagrach as iad a phróiseáil agus a stóráil. Chun an t-ualach sa bhraisle a dháileadh go barrmhaith agus an freastalaí meán is lú luchtaithe a roghnú, déanann an rialtóir baile cliste réamhiarratas chuig an néalríomhaire cothromaíochta agus go dtí go seolann sé an sruth meáin.

Conclúid

Scrúdaigh an t-alt cur i bhfeidhm sonrach amháin de rialtóir baile cliste bunaithe ar mhicriríomhaire Raspberry Pi 3 B+, ​​ar féidir leo faisnéis agus trealamh rialaithe a fháil, a phróiseáil tríd an bprótacal Z-Wave, idirghníomhú le ceamaraí IP tríd an bprótacal ONVIF, agus freisin sonraí a mhalartú agus orduithe leis an tseirbhís scamall trí phrótacail MQTT agus RTMP. Forbraíodh inneall loighic táirgthe bunaithe ar chomparáid idir rialacha loighciúla agus fíricí curtha i láthair i bhformáid JSON.

Tá an rialtóir baile cliste i mbun oibríocht trialach faoi láthair ag roinnt suíomhanna i Moscó agus i réigiún Moscó.

Tá sé beartaithe ag an gcéad leagan eile den rialtóir cineálacha eile feistí a nascadh (RF, Bluetooth, wifi, sreangaithe). Ar mhaithe le háisiúlacht na n-úsáideoirí, aistreofar an nós imeachta chun braiteoirí agus ceamaraí IP a nascadh chuig an bhfeidhmchlár soghluaiste. Tá smaointe ann freisin maidir le cód próisis an fhreastalaí a bharrfheabhsú agus na bogearraí a aistriú chuig an gcóras oibriúcháin OpenWrt. Tabharfaidh sé seo deis duit a shábháil ar rialtóir ar leith agus feidhmiúlacht an tí cliste a aistriú chuig ródaire tí rialta.

Foinse: will.com

Add a comment