Heddiw, diolch i ddatblygiad cyflym microelectroneg, sianeli cyfathrebu, technolegau Rhyngrwyd a Deallusrwydd Artiffisial, mae pwnc cartrefi smart yn dod yn fwy a mwy perthnasol. Mae tai dynol wedi cael newidiadau sylweddol ers Oes y Cerrig ac yn oes y Chwyldro Diwydiannol 4.0 a Rhyngrwyd Pethau, mae wedi dod yn gyfforddus, yn ymarferol ac yn ddiogel. Mae atebion yn dod i'r farchnad sy'n troi fflat neu dŷ gwledig yn systemau gwybodaeth cymhleth a reolir o unrhyw le yn y byd gan ddefnyddio ffôn clyfar. Ar ben hynny, nid yw rhyngweithio dynol-peiriant bellach yn gofyn am wybodaeth o ieithoedd rhaglennu - diolch i algorithmau adnabod lleferydd a synthesis, mae person yn siarad â chartref craff yn eu hiaith frodorol.
Mae rhai systemau cartref craff sydd ar y farchnad ar hyn o bryd yn ddatblygiad rhesymegol o systemau gwyliadwriaeth fideo cwmwl, a sylweddolodd datblygwyr yr angen am ateb cynhwysfawr nid yn unig ar gyfer monitro, ond hefyd ar gyfer rheoli gwrthrychau anghysbell.
Rydym yn cyflwyno i'ch sylw gyfres o dair erthygl, a fydd yn dweud wrthych am holl brif gydrannau system cartref smart cwmwl, a ddatblygwyd yn bersonol gan yr awdur a'i roi ar waith. Mae'r erthygl gyntaf wedi'i neilltuo i'r offer terfynell cleient sydd wedi'i osod y tu mewn i gartref craff, yr ail i bensaernïaeth y system storio cwmwl a phrosesu data, ac yn olaf, y trydydd i'r cais cleient ar gyfer rheoli'r system ar ddyfeisiau symudol a llonydd.
Offer cartref craff
Yn gyntaf, gadewch i ni siarad am sut i wneud cartref smart allan o fflat, dacha neu fwthyn cyffredin. I wneud hyn, fel rheol, mae angen gosod yr offer canlynol yn y cartref:
- synwyryddion sy'n mesur paramedrau amgylcheddol amrywiol;
- actiwadyddion yn gweithredu ar wrthrychau allanol;
- rheolydd sy'n gwneud cyfrifiadau yn unol â mesuriadau synhwyrydd a rhesymeg fewnosodedig, ac yn rhoi gorchmynion i actiwadyddion.
Mae'r ffigur canlynol yn dangos diagram o gartref craff, lle mae synwyryddion dŵr yn gollwng (1) yn yr ystafell ymolchi, tymheredd (2) a goleuo (3) yn yr ystafell wely, soced smart (4) yn y gegin a camera gwyliadwriaeth fideo (5) yn y cyntedd.
Ar hyn o bryd, defnyddir synwyryddion diwifr sy'n gweithredu gan ddefnyddio'r protocolau RF433, Z-Wave, ZigBee, Bluetooth a WiFi yn eang. Eu prif fanteision yw rhwyddineb gosod a defnyddio, yn ogystal â chost isel a dibynadwyedd, oherwydd Mae gweithgynhyrchwyr yn ymdrechu i ddod â'u dyfeisiau i'r farchnad dorfol a'u gwneud yn hygyrch i'r defnyddiwr cyffredin.
Mae synwyryddion ac actiwadyddion, fel rheol, wedi'u cysylltu trwy ryngwyneb diwifr â rheolydd cartref craff (6) - microgyfrifiadur arbenigol sy'n cyfuno'r holl ddyfeisiau hyn yn un rhwydwaith ac yn eu rheoli.
Fodd bynnag, gall rhai atebion gyfuno synhwyrydd, actuator a rheolydd ar yr un pryd. Er enghraifft, gellir rhaglennu plwg smart i'w droi ymlaen neu i ffwrdd yn unol ag amserlen, a gall camera gwyliadwriaeth fideo cwmwl recordio fideo yn seiliedig ar signal synhwyrydd symud. Yn yr achosion symlaf, gallwch chi wneud heb reolwr ar wahân, ond i greu system hyblyg gyda llawer o senarios, mae angen.
Er mwyn cysylltu'r rheolydd cartref craff â'r rhwydwaith byd-eang, gellir defnyddio llwybrydd Rhyngrwyd rheolaidd (7), sydd wedi dod yn offer cartref cyffredin mewn unrhyw gartref ers amser maith. Yma mae dadl arall o blaid rheolwr cartref smart - os bydd y cysylltiad â'r Rhyngrwyd yn cael ei golli, bydd y cartref smart yn parhau i weithredu fel arfer diolch i'r bloc rhesymeg sydd wedi'i storio y tu mewn i'r rheolydd, ac nid yn y gwasanaeth cwmwl.
Rheolydd cartref smart
Mae'r rheolydd ar gyfer y system cartref smart cwmwl a drafodir yn yr erthygl hon yn cael ei ddatblygu yn seiliedig ar ficrogyfrifiadur un bwrdd
Mae cydosod y rheolydd yn syml iawn - mae'r microgyfrifiadur (1) wedi'i osod mewn cas plastig (2), yna mae cerdyn cof 8 GB mewn fformat microSD gyda meddalwedd (3) a rheolydd rhwydwaith USB Z-Wave (4) yn cael eu gosod yn y slotiau cyfatebol. Mae'r rheolydd cartref craff wedi'i gysylltu â'r cyflenwad pŵer trwy addasydd pŵer 5V, 2.1A (5) a chebl USB - micro-USB (6). Mae gan bob rheolydd rif adnabod unigryw, sydd wedi'i ysgrifennu yn y ffeil ffurfweddu pan gaiff ei lansio gyntaf ac sy'n angenrheidiol i ryngweithio â gwasanaethau cartref smart cwmwl.
Datblygwyd y meddalwedd rheolydd cartref craff gan awdur yr erthygl hon yn seiliedig ar y system weithredu Linux Raspbian Stretch. Mae'n cynnwys y prif is-systemau canlynol:
- proses gweinydd ar gyfer rhyngweithio ag offer cartref smart a'r cwmwl;
- rhyngwyneb defnyddiwr graffigol ar gyfer gosod cyfluniad a pharamedrau gweithredu'r rheolydd;
- cronfa ddata ar gyfer storio cyfluniad rheolydd.
Cronfa Ddata gweithredir rheolydd cartref craff yn seiliedig ar DBMS wedi'i fewnosod
Rhyngwyneb graffigol rheolwr cartref smart a ddatblygwyd yn PHP 7 gan ddefnyddio microfframwaith
(cliciwch ar y llun i'w agor mewn cydraniad uwch)
Prif swyddogaeth y rhyngwyneb graffigol yw cysylltu offer cartref craff (camerâu gwyliadwriaeth IP a synwyryddion) â'r rheolydd. Mae'r rhaglen we yn darllen ffurfweddiad a chyflwr cyfredol y rheolydd a'r dyfeisiau sy'n gysylltiedig ag ef o gronfa ddata SQLite. I newid cyfluniad y rheolydd, mae'n anfon gorchmynion rheoli mewn fformat JSON trwy ryngwyneb API RESTful y broses gweinydd.
Proses gweinydd
Proses gweinydd - elfen allweddol sy'n cyflawni'r holl brif waith ar awtomeiddio'r prosesau gwybodaeth sy'n sail i gartref craff: derbyn a phrosesu data synhwyraidd, cyhoeddi camau rheoli yn dibynnu ar y rhesymeg wreiddio. Pwrpas y broses gweinydd yw rhyngweithio ag offer cartref craff, gweithredu rheolau rhesymegol cynhyrchu, derbyn a phrosesu gorchmynion o'r rhyngwyneb graffigol a'r cwmwl. Mae'r broses gweinydd yn y rheolydd cartref craff dan sylw yn cael ei gweithredu fel cymhwysiad aml-edau a ddatblygwyd yn C ++ a'i lansio fel gwasanaeth ar wahân systemd system weithredu Linux Raspbian.
Prif flociau proses y gweinydd yw:
- Rheolwr Neges;
- gweinydd camera IP;
- gweinydd dyfais Z-Wave;
- Gweinydd rheolau rhesymegol cynhyrchu;
- Cronfa ddata o gyfluniad y rheolydd a bloc o reolau rhesymegol;
- Gweinydd API RESTful ar gyfer rhyngweithio â'r rhyngwyneb graffigol;
- Cleient MQTT ar gyfer rhyngweithio â'r cwmwl.
Mae blociau proses gweinydd yn cael eu gweithredu fel edafedd ar wahân, a throsglwyddir gwybodaeth rhyngddynt ar ffurf negeseuon mewn fformat JSON (neu strwythurau data sy'n cynrychioli'r fformat hwn yng nghof y broses).
Prif gydran y broses gweinydd yw rheolwr neges, sy'n llwybro negeseuon JSON i holl flociau proses y gweinydd. Mae'r mathau o feysydd gwybodaeth neges JSON a'r gwerthoedd y gallant eu derbyn wedi'u rhestru yn y tabl:
dyfais Math
protocol
math neges
dyfaisGwladwriaeth
gorchymyn
camera
onvif
synhwyryddData
on
ffrydio (ymlaen / i ffwrdd)
synhwyrydd
zwave
gorchymyn
oddi ar
recordiad (ymlaen/i ffwrdd)
effaithydd
mqtt
businessLogicRule
ffrydio (ymlaen / i ffwrdd)
dyfais (Ychwanegu/Dileu)
busnesLogic
ffurfweddiadData
recordiad (ymlaen/i ffwrdd)
Bluetooth
dyfaisGwladwriaeth
gwall
wifi
rf
Er enghraifft, mae neges gan synhwyrydd symud camera yn edrych fel hyn:
{
"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"
}
Rhesymeg cynhyrchu
I dderbyn neu anfon neges gan yr anfonwr, mae bloc proses y gweinydd yn tanysgrifio i negeseuon o fath penodol. Mae tanysgrifiad yn rheol resymegol cynhyrchu o'r math “Os... yna….”, wedi'i gyflwyno mewn fformat JSON, a dolen i'r triniwr neges y tu mewn i'r bloc proses gweinydd. Er enghraifft, er mwyn caniatáu i'r gweinydd camera IP dderbyn gorchmynion gan y GUI a'r cwmwl, mae angen ichi ychwanegu'r rheol ganlynol:
{
"if": {
"and": [{
"equal": {
"deviceId": "1616453d-30cd-44b7-9bf0-************"
}
},
{
"equal": {
"messageType": "command"
}
}
]
},
"then": {
"result": "true"
}
}
Os bydd yr amodau a nodir yn rhagflaenol (ochr chwith) mae'r rheolau yn wir, yna mae'n fodlon canlyniadol rheolau (ochr dde), ac mae'r triniwr yn cael mynediad i gorff y neges JSON. Mae'r rhagflaenydd yn cefnogi gweithredwyr rhesymegol sy'n cymharu parau gwerth bysell JSON:
- yn hafal i "equal";
- ddim yn hafal i "not_equal";
- llai "llai";
- mwy "mwy";
- llai na neu'n hafal i "less_or_equal";
- yn fwy na neu'n hafal i "greater_or_equal".
Gellir cysylltu canlyniadau’r gymhariaeth â’i gilydd gan ddefnyddio gweithredwyr algebra Boole:
- Ac "a"
- NEU "neu";
- NID "ddim".
Felly, trwy ysgrifennu gweithredwyr a operands mewn nodiant Pwyleg, gallwch greu amodau eithaf cymhleth gyda nifer fawr o baramedrau.
Defnyddir yr un mecanwaith yn union, yn seiliedig ar negeseuon JSON a rheolau cynhyrchu mewn fformat JSON, yn y bloc gweinydd rhesymeg cynhyrchu i gynrychioli gwybodaeth a chynnal casgliad rhesymegol gan ddefnyddio data synhwyraidd o synwyryddion cartref craff.
Gan ddefnyddio cymhwysiad symudol, mae'r defnyddiwr yn creu senarios y dylai'r cartref craff weithredu yn unol â nhw. Er enghraifft: “Os yw'r synhwyrydd ar gyfer agor y drws ffrynt yn cael ei ysgogi, yna trowch y golau ymlaen yn y cyntedd”. Mae'r cymhwysiad yn darllen dynodwyr synwyryddion (synhwyrydd agor) ac actuators (soced smart neu lamp smart) o'r gronfa ddata ac yn cynhyrchu rheol resymegol ar ffurf JSON, a anfonir at y rheolwr cartref craff. Bydd y mecanwaith hwn yn cael ei drafod yn fanylach yn nhrydedd erthygl ein cyfres, lle byddwn yn siarad am gais y cleient ar gyfer rheoli cartref craff.
Mae'r mecanwaith rhesymeg cynhyrchu a drafodir uchod yn cael ei weithredu gan ddefnyddio'r llyfrgell
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);
}
}
}
Yma p Ffaith — strwythur sy'n cynnwys parau gwerth allweddol o neges JSON, m_Rheolau — amrywiaeth llinynnol o reolau cynhyrchu. Mae cymhariaeth y neges sy'n dod i mewn a'r rheol cynhyrchu yn cael ei wneud yn y swyddogaeth darllenydd.Pars(ruleStream,rheolwr rheol)lle Rheolydd yn wrthrych sy'n cynnwys rhesymeg Boole a gweithredwyr cymharu. sRuleId - dynodwr rheol unigryw, y mae'n bosibl storio a golygu rheolau y tu mewn i gronfa ddata rheolwyr cartref craff iddo. m_pGweithredoedd — amrywiaeth gyda chanlyniadau casgliad rhesymegol: Negeseuon JSON yn cynnwys canlyniadau o sylfaen y rheolau ac yn cael eu hanfon ymhellach at y rheolwr negeseuon fel y gall edafedd y tanysgrifiwr eu prosesu.
Mae perfformiad RapidJSON yn debyg i'r swyddogaeth strlen (), ac mae'r gofynion adnoddau system lleiaf yn caniatáu defnyddio'r llyfrgell hon mewn dyfeisiau wedi'u mewnosod. Mae'r defnydd o negeseuon a rheolau rhesymegol ar ffurf JSON yn caniatáu ichi weithredu system hyblyg o gyfnewid gwybodaeth rhwng holl gydrannau'r rheolydd cartref craff.
Synwyryddion Z-Wave ac Actuators
Prif fantais cartref craff yw y gall fesur paramedrau amrywiol yr amgylchedd allanol yn annibynnol a chyflawni swyddogaethau defnyddiol yn dibynnu ar y sefyllfa. I wneud hyn, mae synwyryddion ac actiwadyddion wedi'u cysylltu â'r rheolydd cartref craff. Yn y fersiwn gyfredol, dyfeisiau diwifr yw'r rhain sy'n gweithredu gan ddefnyddio'r protocol
Nawr gallwch chi ddod o hyd i nifer eithaf mawr o wahanol ddyfeisiau Z-Wave ar y farchnad. Gadewch i ni edrych ar ychydig o enghreifftiau:
- Gall soced smart Zipato PAN16 fesur y paramedrau canlynol: defnydd trydan (kWh), pŵer (W), foltedd (V) a cherrynt (A) yn y rhwydwaith trydanol. Mae ganddo hefyd switsh adeiledig y gallwch reoli'r offer trydanol cysylltiedig ag ef;
- Mae synhwyrydd gollwng Neo Coolcam yn canfod presenoldeb hylif wedi'i ollwng trwy gau cysylltiadau'r stiliwr o bell;
- Mae synhwyrydd mwg Zipato PH-PSG01 yn cael ei sbarduno pan fydd gronynnau mwg yn mynd i mewn i'r siambr dadansoddwr nwy;
- Mae synhwyrydd mudiant Neo Coolcam yn dadansoddi ymbelydredd isgoch y corff dynol. Yn ogystal mae synhwyrydd golau (Lx);
- Mae amlsynhwyrydd Philio PST02-A yn mesur tymheredd (°C), golau (%), agoriad drws, presenoldeb person yn yr ystafell;
- Rheolydd rhwydwaith Z-Wave USB Stick ZME E UZB1, y mae synwyryddion wedi'u cysylltu ag ef.
Mae'n bwysig iawn bod y dyfeisiau a'r rheolydd yn gweithredu ar yr un amledd, fel arall ni fyddant yn gweld ei gilydd ar hyn o bryd o gysylltiad. Gellir cysylltu hyd at 232 o ddyfeisiau ag un rheolydd rhwydwaith Z-Wave, sy'n ddigon ar gyfer fflat neu blasty gwledig. Er mwyn ehangu ardal sylw'r rhwydwaith dan do, gellir defnyddio soced smart fel ailadroddydd signal.
Yn y broses gweinyddwr cartref smart a drafodwyd yn y paragraff blaenorol, mae'r gweinydd Z-Wave yn gyfrifol am ryngweithio â dyfeisiau Z-Wave. Mae'n defnyddio llyfrgell i dderbyn gwybodaeth gan synwyryddion
{
"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"
}
Yna caiff ei anfon ymlaen at reolwr negeseuon proses y gweinydd fel y gall edafedd tanysgrifiwr ei dderbyn. Y prif danysgrifiwr yw'r gweinydd rhesymeg cynhyrchu, sy'n cyfateb i'r gwerthoedd maes neges yn rhagflaenyddion y rheolau rhesymeg. Mae'r canlyniadau casgliad sy'n cynnwys gorchmynion rheoli yn cael eu hanfon yn ôl at y rheolwr negeseuon ac oddi yno ewch i'r gweinydd Z-Wave, sy'n eu dadgodio a'u hanfon at reolwr USB rhwydwaith Z-Wave. Yna maent yn mynd i mewn i'r actuator, sy'n newid cyflwr gwrthrychau amgylcheddol, ac mae'r cartref craff felly'n perfformio gwaith defnyddiol.
(cliciwch ar y llun i'w agor mewn cydraniad uwch)
Mae cysylltu dyfeisiau Z-Wave yn cael ei wneud yn rhyngwyneb graffigol y rheolwr cartref craff. I wneud hyn, ewch i'r dudalen gyda rhestr o ddyfeisiau a chliciwch ar y botwm "Ychwanegu". Mae'r gorchymyn ychwanegu trwy ryngwyneb RESTful API yn mynd i mewn i'r broses gweinydd ac yna'n cael ei anfon gan y rheolwr negeseuon i'r gweinydd Z-Wave, sy'n rhoi rheolydd USB rhwydwaith Z-Wave mewn modd arbennig ar gyfer ychwanegu dyfeisiau. Nesaf, ar y ddyfais Z-Wave mae angen i chi wneud cyfres o wasgiau cyflym (3 gwasg o fewn 1,5 eiliad) o'r botwm gwasanaeth. Mae'r rheolydd USB yn cysylltu'r ddyfais â'r rhwydwaith ac yn anfon gwybodaeth amdano i'r gweinydd Z-Wave. Mae hynny, yn ei dro, yn creu cofnod newydd yng nghronfa ddata SQLite gyda pharamedrau'r ddyfais newydd. Ar ôl cyfnod penodol o amser, mae'r rhyngwyneb graffigol yn dychwelyd i dudalen rhestr dyfeisiau Z-Wave, yn darllen gwybodaeth o'r gronfa ddata ac yn dangos y ddyfais newydd yn y rhestr. Mae pob dyfais yn derbyn ei dynodwr unigryw ei hun, a ddefnyddir mewn rheolau casgliad cynhyrchu ac wrth weithio yn y cwmwl. Dangosir gweithrediad yr algorithm hwn yn y diagram UML:
(cliciwch ar y llun i'w agor mewn cydraniad uwch)
Cysylltu camerâu IP
Mae'r system cartref smart cwmwl a drafodir yn yr erthygl hon yn uwchraddiad o'r system gwyliadwriaeth fideo cwmwl, a ddatblygwyd hefyd gan yr awdur, sydd wedi bod ar y farchnad ers sawl blwyddyn ac sydd â llawer o osodiadau yn Rwsia.
Ar gyfer systemau gwyliadwriaeth fideo cwmwl, un o'r problemau difrifol yw'r dewis cyfyngedig o offer y gellir eu hintegreiddio. Mae'r meddalwedd sy'n gyfrifol am gysylltu â'r cwmwl wedi'i osod y tu mewn i'r camera fideo, sy'n gosod gofynion difrifol ar ei galedwedd ar unwaith - y prosesydd a faint o gof am ddim. Mae hyn yn bennaf yn esbonio pris uwch camerâu teledu cylch cyfyng o'i gymharu â chamerâu IP rheolaidd. Yn ogystal, mae angen cyfnod hir o drafodaethau gyda chwmnïau cynhyrchu camerâu teledu cylch cyfyng i gael mynediad i'r system ffeiliau camera a'r holl offer datblygu angenrheidiol.
Ar y llaw arall, mae gan bob camera IP modern brotocolau safonol ar gyfer rhyngweithio ag offer arall (yn arbennig, recordwyr fideo). Felly, mae defnyddio rheolydd ar wahân sy'n cysylltu trwy brotocol safonol ac yn darlledu ffrydiau fideo o gamerâu IP i'r cwmwl yn darparu manteision cystadleuol sylweddol ar gyfer systemau gwyliadwriaeth fideo cwmwl. Ar ben hynny, os yw'r cleient eisoes wedi gosod system gwyliadwriaeth fideo yn seiliedig ar gamerâu IP syml, yna mae'n dod yn bosibl ei ehangu a'i droi'n gartref smart cwmwl llawn.
Y protocol mwyaf poblogaidd ar gyfer systemau gwyliadwriaeth fideo IP, sydd bellach yn cael ei gefnogi gan yr holl weithgynhyrchwyr camera IP yn ddieithriad, yw
$ 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
O ganlyniad, rydym yn cael set o ffeiliau pennawd “*.h” a ffynhonnell “*.cpp” yn C++, y gellir eu gosod yn uniongyrchol mewn cymhwysiad neu lyfrgell ar wahân a’u llunio gan ddefnyddio casglwr GCC. Oherwydd y nifer o swyddogaethau, mae'r cod yn fawr ac mae angen optimeiddio ychwanegol. Mae gan y microgyfrifiadur model B+ Raspberry Pi 3 berfformiad digonol i weithredu'r cod hwn, ond os oes angen trosglwyddo'r cod i blatfform arall, mae angen dewis y bensaernïaeth prosesydd gywir ac adnoddau'r system.
Mae camerâu IP sy'n cefnogi safon ONVIF, wrth weithredu ar rwydwaith lleol, wedi'u cysylltu â grŵp aml-ddarlledu arbennig gyda'r cyfeiriad 239.255.255.250. Mae protocol
Mae rhyngwyneb graffigol y rheolydd cartref craff yn gweithredu swyddogaeth chwilio ar gyfer camerâu IP yn PHP, sy'n gyfleus iawn wrth ryngweithio â gwasanaethau gwe trwy negeseuon XML. Wrth ddewis eitemau dewislen Dyfeisiau > Camerâu IP > Sganio Mae'r algorithm ar gyfer chwilio am gamerâu IP yn cael ei lansio, gan arddangos y canlyniad ar ffurf tabl:
(cliciwch ar y llun i'w agor mewn cydraniad uwch)
Pan fyddwch chi'n ychwanegu camera at y rheolydd, gallwch chi nodi'r gosodiadau y bydd yn rhyngweithio â'r cwmwl yn unol â nhw. Hefyd ar y cam hwn, caiff dynodwr dyfais unigryw ei neilltuo'n awtomatig, y gellir ei adnabod yn hawdd yn y cwmwl yn ddiweddarach.
Nesaf, cynhyrchir neges mewn fformat JSON sy'n cynnwys holl baramedrau'r camera ychwanegol a'i hanfon at broses gweinydd y rheolydd cartref craff trwy'r gorchymyn RESTful API, lle mae paramedrau'r camera yn cael eu dadgodio a'u cadw yng nghronfa ddata fewnol SQLite, ac yn cael eu hefyd yn cael ei ddefnyddio i lansio'r edafedd prosesu canlynol:
- sefydlu cysylltiad RTSP i dderbyn ffrydiau fideo a sain;
- transcoding sain o G.711 mu-Law, G.711 A-Law, G.723, ac ati fformatau. i fformat AAC;
- trawsgodio ffrydiau fideo mewn fformat H.264 a sain mewn fformat AAC i mewn i gynhwysydd FLV a'i drosglwyddo i'r cwmwl trwy'r protocol RTMP;
- sefydlu cysylltiad â phwynt terfyn y synhwyrydd mudiant camera IP trwy brotocol ONVIF a'i bleidleisio o bryd i'w gilydd;
- cynhyrchu delwedd rhagolwg bawd o bryd i'w gilydd a'i hanfon i'r cwmwl trwy'r protocol MQTT;
- recordiad lleol o ffrydiau fideo a sain ar ffurf ffeiliau ar wahân mewn fformat MP4 ar gerdyn SD neu Flash o reolwr cartref craff.
I sefydlu cysylltiad â chamerâu, trawsgodio, prosesu a recordio ffrydiau fideo yn y broses gweinydd, defnyddir swyddogaethau o'r llyfrgell
Yn yr arbrawf profi perfformiad, cysylltwyd 3 chamera â'r rheolydd:
- HiWatch DS-I114W (datrysiad - 720p, fformat cywasgu - H.264, bitrate - 1 Mb/s, sain G.711 mu-Law);
- Microdigital MDC-M6290FTD-1 (datrysiad - 1080p, fformat cywasgu - H.264, bitrate - 1 Mb/s, dim sain);
- Dahua DH-IPC-HDW4231EMP-AS-0360B (datrysiad - 1080p, fformat cywasgu - H.264, cyfradd didau - 1.5 Mb/s, sain AAC).
Roedd y tair ffrwd yn cael eu hallbynnu i'r cwmwl ar yr un pryd, roedd trawsgodio sain yn cael ei wneud o un camera yn unig, ac roedd recordiad archif lleol wedi'i analluogi. Roedd llwyth CPU oddeutu 5%, defnydd RAM oedd 32 MB (fesul proses), 56 MB (cyfanswm gan gynnwys OS).
Felly, gellir cysylltu tua 20 - 30 o gamerâu â'r rheolydd cartref craff (yn dibynnu ar ddatrysiad a bitrate), sy'n ddigon ar gyfer system gwyliadwriaeth fideo ar gyfer bwthyn tair stori neu warws bach. Ar gyfer tasgau sy'n gofyn am fwy o berfformiad, gallwch ddefnyddio nettop gyda phrosesydd Intel aml-graidd a Linux Debian Sarge OS. Mae'r rheolydd yn cael ei dreialu ar hyn o bryd, a bydd data ar ei berfformiad yn cael ei ddiweddaru.
Rhyngweithio â'r cwmwl
Mae cartref craff yn y cwmwl yn storio data defnyddwyr (mesuriadau fideo a synhwyrydd) yn y cwmwl. Bydd pensaernïaeth storio cwmwl yn cael ei drafod yn fanylach yn yr erthygl nesaf yn ein cyfres. Nawr, gadewch i ni siarad am y rhyngwyneb ar gyfer trosglwyddo negeseuon gwybodaeth o'r rheolwr cartref craff i'r cwmwl.
Mae cyflwr dyfeisiau cysylltiedig a mesuriadau synhwyrydd yn cael eu trosglwyddo trwy'r protocol
- QoS 0 - uchafswm unwaith (dim gwarant dosbarthu);
- QoS 1 - o leiaf unwaith (gyda chadarnhad danfon);
- QoS 2 - union unwaith (gyda chadarnhad danfoniad ychwanegol).
Yn ein hachos ni, rydym yn defnyddio
I drosglwyddo negeseuon am statws y rheolwr cartref craff, defnyddir mecanwaith negeseuon sydd wedi'u cadw
Datblygwyd y cleient MQTT yn seiliedig ar weithrediad y llyfrgell
Anfonir ffrydiau cyfryngau H.264 + AAC i'r cwmwl trwy'r protocol RTMP, lle mae clwstwr o weinyddion cyfryngau yn gyfrifol am eu prosesu a'u storio. Er mwyn dosbarthu'r llwyth yn y clwstwr yn optimaidd a dewis y gweinydd cyfryngau sydd wedi'i lwytho leiaf, mae'r rheolwr cartref craff yn gwneud cais rhagarweiniol i'r cydbwysedd llwyth cwmwl a dim ond ar ôl hynny mae'n anfon y llif cyfryngau.
Casgliad
Archwiliodd yr erthygl un gweithrediad penodol o reolwr cartref craff yn seiliedig ar ficrogyfrifiadur Raspberry Pi 3 B+, a all dderbyn, prosesu gwybodaeth a rheoli offer trwy'r protocol Z-Wave, rhyngweithio â chamerâu IP trwy'r protocol ONVIF, a hefyd cyfnewid data a gorchmynion gyda'r cwmwl gwasanaeth trwy brotocolau MQTT a RTMP. Mae peiriant rhesymeg cynhyrchu wedi'i ddatblygu yn seiliedig ar gymhariaeth o reolau rhesymegol a ffeithiau a gyflwynir ar ffurf JSON.
Mae'r rheolwr cartref craff ar hyn o bryd yn cael ei dreialu ar sawl safle ym Moscow a rhanbarth Moscow.
Mae fersiwn nesaf y rheolydd yn bwriadu cysylltu mathau eraill o ddyfeisiau (RF, Bluetooth, WiFi, gwifrau). Er hwylustod defnyddwyr, bydd y weithdrefn ar gyfer cysylltu synwyryddion a chamerâu IP yn cael ei drosglwyddo i'r cymhwysiad symudol. Mae yna hefyd syniadau ar gyfer optimeiddio cod proses y gweinydd a throsglwyddo'r feddalwedd i'r system weithredu
Ffynhonnell: hab.com