Cloud Smart Home. Fizarana 1: Controller sy sensor

Cloud Smart Home. Fizarana 1: Controller sy sensor

Amin'izao fotoana izao, noho ny fivoarana haingana ny microelectronics, ny fantsona fifandraisana, ny teknolojia Internet ary ny Artificial Intelligence, dia mihamitombo hatrany ny lohahevitra momba ny trano hendry. Nandalo fiovana lehibe ny tranon'olombelona nanomboka tamin'ny Vanim-potoanan'ny Vato sy tamin'ny vanim-potoanan'ny Revolisiona Indostrialy 4.0 sy ny Internet of Things, nanjary mahazo aina, miasa ary azo antoka. Tonga eny an-tsena ny vahaolana izay mamadika trano iray na trano ambanivohitra ho rafitra fampahalalam-baovao sarotra fehezina na aiza na aiza manerana izao tontolo izao amin'ny fampiasana smartphone. Ankoatr'izay, ny fifandraisan'ny olombelona amin'ny milina dia tsy mitaky fahalalana momba ny fiteny fandaharana - noho ny fanekena ny kabary sy ny algorithm synthesis, ny olona iray dia miresaka amin'ny trano hendry amin'ny fitenin-drazany.

Ny sasany amin'ireo rafitra an-trano marani-tsaina amin'izao fotoana izao eny an-tsena dia fivoarana lojika amin'ny rafitra fanaraha-maso horonantsary rahona, ireo mpamorona izay nahatsapa fa ilaina ny vahaolana feno tsy amin'ny fanaraha-maso, fa amin'ny fitantanana zavatra lavitra.

Manolotra andian-dahatsoratra telo ho anao izahay, izay hilaza aminao ny momba ny singa fototra rehetra amin'ny rafitra rahona smart home, novolavolain'ny mpanoratra manokana ary niasa. Ny lahatsoratra voalohany dia natokana ho an'ny fitaovan'ny mpanjifa terminal napetraka ao anaty trano hendry, ny faharoa amin'ny rafitry ny fitahirizana rahona sy ny rafitra fanodinana angon-drakitra, ary farany, ny fahatelo ho an'ny fampiharana mpanjifa amin'ny fitantanana ny rafitra amin'ny fitaovana finday sy stationary.

Smart fitaovana an-trano

Voalohany, andeha isika hiresaka momba ny fomba hanaovana trano hendry avy amin'ny trano fonenana mahazatra, dacha na trano bongo. Mba hanaovana izany, toy ny fitsipika, dia ilaina ny mametraka ireto fitaovana manaraka ireto ao an-trano:

  1. sensor izay mandrefy masontsivana isan-karazany ny tontolo iainana;
  2. actuators miasa amin'ny zavatra ivelany;
  3. mpanara-maso izay manao kajikajy mifanaraka amin'ny fandrefesana sensor sy lojika tafiditra, ary mamoaka baiko amin'ny actuators.

Ity sary manaraka ity dia mampiseho sarin'ny trano marani-tsaina iray, izay misy sensor amin'ny fivoahan'ny rano (1) ao amin'ny efitra fandroana, ny mari-pana (2) ary ny jiro (3) ao amin'ny efitrano fatoriana, ny socket marani-tsaina (4) ao an-dakozia ary ny fakan-tsary fanaraha-maso (5) ao amin'ny lalantsara.

Cloud Smart Home. Fizarana 1: Controller sy sensor

Amin'izao fotoana izao, ny sensor tsy misy tariby miasa amin'ny RF433, Z-Wave, ZigBee, Bluetooth ary WiFi dia ampiasaina betsaka. Ny tombony lehibe amin'izy ireo dia ny fanamorana ny fametrahana sy ny fampiasana, ary koa ny vidiny ambany sy ny fahamendrehana, satria Ny mpanamboatra dia miezaka ny hitondra ny fitaovany ho eny amin'ny tsena faobe ary hahatonga azy ireo ho azon'ny mpampiasa mahazatra.

Ny sensor sy ny actuators, amin'ny ankapobeny, dia mifandray amin'ny alΓ lan'ny fifandraisana an-tariby mankany amin'ny fanaraha-maso an-trano marani-tsaina (6) - microcomputer manokana izay manambatra ireo fitaovana rehetra ireo ho tambajotra tokana ary mifehy azy ireo.

Na izany aza, ny vahaolana sasany dia afaka manambatra sensor, actuator ary controller amin'ny fotoana iray ihany. Ohatra, ny plug smart dia azo alamina mba hirehitra na hamono araka ny fandaharam-potoana, ary ny fakan-tsary fanaraha-maso rahona dia afaka mirakitra horonan-tsary mifototra amin'ny famantarana famantarana ny hetsika. Amin'ny tranga tsotra indrindra, azonao atao tsy misy mpanara-maso misaraka, fa mba hamoronana rafitra malefaka miaraka amin'ny toe-javatra maro dia ilaina izany.

Mba hampifandraisana ny fanaraha-maso an-trano marani-tsaina amin'ny tambajotra manerantany, dia azo ampiasaina ny router Internet mahazatra (7), izay efa lasa kojakoja mahazatra an-tokantrano ao an-trano rehetra. Eto dia misy tohan-kevitra iray hafa manohana ny fanaraha-maso an-trano marani-tsaina - raha very ny fifandraisana amin'ny Internet, ny trano marani-tsaina dia hanohy hiasa toy ny mahazatra noho ny sakana lojika voatahiry ao anaty controller, fa tsy amin'ny serivisy rahona.

Smart home controller

Ny fanaraha-maso ny rafitra an-trano marani-tsaina rahona resahina ato amin'ity lahatsoratra ity dia novolavolaina mifototra amin'ny microcomputer tokana Raspberry Pi 3 modely B+, izay navoaka tamin'ny volana martsa 2018 ary manana loharanon-karena sy fahaiza-manao ampy ho an'ny asa an-trano marani-tsaina. Izy io dia misy processeur quad-core Cortex-A53 miorina amin'ny maritrano 64-bit ARMv8-A, voamarika amin'ny 1.4 GHz, ary koa 1 GB an'ny RAM, Wi-Fi 802.11ac, Bluetooth 4.2 ary adapter gigabit Ethernet miasa amin'ny USB 2.0 .

Cloud Smart Home. Fizarana 1: Controller sy sensor

Ny fanangonana ny controller dia tena tsotra - ny microcomputer (1) dia napetraka ao anaty boaty plastika (2), avy eo ny karatra fitadidiana 8 GB amin'ny endrika microSD miaraka amin'ny rindrambaiko (3) ary ny USB Z-Wave Network controller (4) dia napetraka ao. ireo slots mifanaraka amin'izany. Ampifandraisina amin'ny famatsiana herinaratra amin'ny alΓ lan'ny adaptatera herinaratra 5V, 2.1A (5) ary tariby USB - micro-USB (6). Ny mpanara-maso tsirairay dia manana isa famantarana tokana, izay voasoratra ao amin'ny rakitra fanamafisana rehefa natomboka voalohany ary ilaina ny mifandray amin'ny serivisy an-trano marani-tsaina rahona.

Ny rindrambaiko fanaraha-maso an-trano marani-tsaina dia novolavolain'ny mpanoratra ity lahatsoratra ity mifototra amin'ny rafitra fiasana Linux Raspbian Stretch. Izy io dia ahitana ireto subsystems lehibe manaraka ireto:

  • fizotry ny mpizara hifaneraserana amin'ny fitaovana an-trano marani-tsaina sy ny rahona;
  • interface interface an-tsary ho an'ny fametrahana ny masontsivana sy ny fampandehanana ny mpanara-maso;
  • database ho an'ny fitehirizana ny configuration controller.

Cloud Smart Home. Fizarana 1: Controller sy sensor

banky angona Smart home controller dia ampiharina mifototra amin'ny DBMS tafiditra SQLite ary rakitra amin'ny karatra SD misy rindrambaiko rafitra. Izy io dia fitehirizana ho an'ny fanamafisam-peo mpanara-maso - fampahalalana momba ny fitaovana mifandray sy ny toe-javatra misy azy ankehitriny, sakana amin'ny fitsipika famokarana lozisialy, ary koa fampahalalana izay mitaky fanondroana (ohatra, anaran-drakitra amin'ny rakitra video eo an-toerana). Rehefa averina averina ny mpanara-maso dia voatahiry ity fampahalalana ity, izay ahafahana mamerina ny mpanara-maso raha sendra ny tsy fahampian'ny herinaratra.

Fifanarahana sary Smart home controller novolavolaina tamin'ny PHP 7 mampiasa microframework Slim. Ny mpizara tranonkala dia tompon'andraikitra amin'ny fampandehanana ny fampiharana. lighttpd, matetika ampiasaina amin'ny fitaovana mipetaka noho ny fahombiazany tsara sy ny fitakiana loharanon-karena ambany.

Cloud Smart Home. Fizarana 1: Controller sy sensor
(tsindrio ny sary raha te hisokatra amin'ny resolution ambony kokoa)

Ny asa lehibe indrindra amin'ny interface grafika dia ny mampifandray ny fitaovana an-trano marani-tsaina (fakan-tsary fanaraha-maso IP sy sensor) amin'ny mpanara-maso. Ny rindranasa an-tranonkala dia mamaky ny fikirakirana sy ny toetry ny controller sy ny fitaovana mifandray aminy amin'izao fotoana izao avy amin'ny angon-drakitra SQLite. Raha hanova ny fandrindrana mpanara-maso dia mandefa baiko fanaraha-maso amin'ny endrika JSON amin'ny alΓ lan'ny interface RESTful API amin'ny fizotry ny mpizara.

Fizotry ny mpizara

Fizotry ny mpizara - singa manan-danja iray izay manatanteraka ny asa lehibe rehetra amin'ny fanaovana automatique ny fizotran'ny fampahalalam-baovao izay fototry ny trano marani-tsaina: fandraisana sy fanodinana angon-drakitra, famoahana hetsika fanaraha-maso miankina amin'ny lojika napetraka. Ny tanjon'ny fizotry ny mpizara dia ny hifanerasera amin'ny fitaovana an-trano marani-tsaina, manatanteraka ny fitsipika lozisialy famokarana, mandray sy manao baiko avy amin'ny interface grafika sy ny rahona. Ny fizotry ny mpizara ao amin'ny fanaraha-maso an-trano marani-tsaina eo am-pandinihana dia ampiharina ho toy ny rindranasa maromaro maromaro novolavolaina tao amin'ny C ++ ary natomboka ho serivisy misaraka. systemd rafitra fikirakirana Linux Raspbian.

Ny sakana lehibe amin'ny fizotran'ny mpizara dia:

  1. Mpitantana hafatra;
  2. mpizara fakan-tsary IP;
  3. Z-Wave fitaovana mpizara;
  4. Server ny famokarana fitsipika lojika;
  5. Tahirim-bolan'ny fanamafisana ny mpanara-maso sy ny sakana amin'ny fitsipika lojika;
  6. RESTful API server ho an'ny fifandraisana amin'ny interface grafika;
  7. MQTT mpanjifa amin'ny fifandraisana amin'ny rahona.

Ny sakan'ny fizotry ny mpizara dia apetraka ho kofehy misaraka, ny fampahalalana eo anelanelan'izy ireo dia afindra amin'ny endrika hafatra amin'ny endrika JSON (na rafitra data maneho an'io endrika io amin'ny fitadidiana dingana).

Cloud Smart Home. Fizarana 1: Controller sy sensor

Ny singa fototra amin'ny fizotran'ny mpizara dia mpitantana hafatra, izay mitondra ny hafatra JSON mankany amin'ny sakana rehetra amin'ny fizotran'ny server. Ny karazana sahan'ny fampahafantarana hafatra JSON sy ny soatoavina azon'izy ireo ekena dia voatanisa ao amin'ny tabilao:

deviceType
fifanarahana
messageType
deviceState
didy

fakan-tsary
onvif
sensorData
on
streaming (Miala/Miala)

sensor
zwave
didy
eny
firaketana (Aon/Efa)

effector
mqtt
businessLogicRule
streaming (Miala/Miala)
evice(Ampio/Esory)

businessLogic
configurationData
firaketana (Aon/Efa)

Bluetooth
deviceState
fahadisoana

Wifi

rf

Ohatra, toy izao ny hafatra avy amin'ny mpitsikilo mihetsika fakan-tsary:

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

Lojika famokarana

Mba handraisana na handefa hafatra avy amin'ny mpandefa hafatra dia misoratra anarana amin'ny hafatra amin'ny karazana iray ny sakana fizotry ny mpizara. Ny famandrihana dia fitsipika lojika famokarana amin'ny karazana β€œRaha... dia...”, aseho amin'ny endrika JSON, ary rohy mankany amin'ny mpitantana hafatra ao anatin'ny sakana fizotry ny mpizara. Ohatra, mba hamela ny mpizara fakan-tsary IP handray baiko avy amin'ny GUI sy ny rahona, dia mila manampy ity fitsipika manaraka ity ianao:

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

Raha ny fepetra voalaza ao amin'ny mialoha (ankavia) marina ny fitsipika, dia afa-po vokatry (ankavanana) fitsipika, ary ny mpitantana dia mahazo miditra amin'ny vatan'ny hafatra JSON. Ny antecedent dia manohana ireo mpandraharaha lojika izay mampitaha ny JSON key-value pairs:

  1. mitovy "mitovy";
  2. tsy mitovy amin'ny "tsy_mitovy";
  3. kely "kely";
  4. "lehibe kokoa";
  5. latsaky ny na mitovy amin'ny "kely_na_mitovitovy";
  6. lehibe kokoa na mitovy amin'ny "lehibe_na_mitovy".

Ny valin'ny fampitahana dia azo ampifandraisina amin'ny fampiasana ny operator algebra Boolean:

  1. Ary "ary"
  2. NA "na";
  3. TSY "tsy".

Noho izany, amin'ny fanoratana ny opΓ©rands sy opΓ©rands amin'ny notation poloney, dia afaka mamorona toe-javatra sarotra be ianao miaraka amin'ny masontsivana marobe.

Ny rafitra mitovy amin'izany, mifototra amin'ny hafatra JSON sy ny fitsipiky ny famokarana amin'ny endrika JSON, dia ampiasaina amin'ny sakana mpizara lozika famokarana mba hanehoana fahalalana sy hanatontosana inferences lojika amin'ny fampiasana angon-drakitra azo avy amin'ny sensor an-trano.

Amin'ny fampiasana fampiharana finday, ny mpampiasa dia mamorona scenario araka izay tokony hiasan'ny trano hendry. Ohatra: "Raha misy sensor amin'ny fanokafana ny varavarana fidirana, dia asio ny jiro eo amin'ny lalantsara". Ny fampiharana dia mamaky ny famantarana ny sensor (sensor fanokafana) sy ny actuators (smart socket na smart lamp) avy amin'ny angon-drakitra ary mamorona fitsipika lojika amin'ny endrika JSON, izay alefa any amin'ny fanaraha-maso an-trano marani-tsaina. Ity mekanika ity dia horesahina amin'ny antsipiriany kokoa ao amin'ny lahatsoratra fahatelo amin'ny andiany, izay hiresaka momba ny fampiharana mpanjifa amin'ny fitantanana trano hendry.

Ny mekanika lojika famokarana resahina etsy ambony dia ampiharina amin'ny fampiasana ny tranomboky RapidJSON - SAX parser ho an'ny format JSON amin'ny C++. Ny famakiana sy fanaparitahana andiam-pamokarana maromaro dia ahafahanao mampihatra mora foana ny asa fampitahana angon-drakitra ao anaty 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);
        }
    }
}

izany pFact - rafitra misy tsiroaroa manan-danja avy amin'ny hafatra JSON, m_Fitsipika - tady laharan'ny fitsipika famokarana. Ny fampitahana ny hafatra ho avy sy ny fitsipika famokarana dia tanterahina ao amin'ny asa mpamaky.Parse(ruleStream, ruleHandler)izay ruleHandler dia zavatra misy ny lojikan'ny Boolean sy ny mpandraharaha fampitahana. sRuleId - mpamaritra fitsipika tsy manam-paharoa, noho izany dia azo atao ny mitahiry sy manitsy ny fitsipika ao anatin'ny angon-drakitra fanaraha-maso an-trano. m_pActions β€” rindran-damina misy valin'ny famintinana lojika: hafatra JSON misy vokatra avy amin'ny fototry ny fitsipika ary alefa any amin'ny mpitantana hafatra mba hahafahan'ireo andian-dahatsary manodina azy ireo.

Ny fahombiazan'ny RapidJSON dia azo oharina amin'ny asa strlen(), ary ny fepetra ambany indrindra amin'ny loharanon-karena dia mamela ny fampiasana an'ity tranomboky ity amin'ny fitaovana tafiditra. Ny fampiasana hafatra sy fitsipika lojika amin'ny endrika JSON dia mamela anao hampihatra rafitra azo ifanakalozana vaovao eo amin'ny singa rehetra amin'ny fanaraha-maso an-trano.

Z-Wave Sensors sy Actuators

Ny tombony lehibe indrindra amin'ny trano manan-tsaina dia ny fahafahany mandrefy ny mari-pamantarana isan-karazany amin'ny tontolo ivelany ary manao asa mahasoa miankina amin'ny toe-javatra. Mba hanaovana izany, ny sensor sy ny actuators dia mifandray amin'ny smart home controller. Amin'ny dikan-teny ankehitriny, ireo dia fitaovana tsy misy tariby miasa amin'ny protocol Z-onja amin'ny frequence voatokana manokana 869 MHz Ho an'i Rosia. Mba hiasana dia atambatra ao anaty tamba-jotra harato izy ireo, izay misy mpamerina famantarana mba hampitomboana ny faritra fandrakofana. Ny fitaovana ihany koa dia manana fomba fitehirizana angovo manokana - mandany ny ankamaroan'ny fotoana amin'ny fomba torimaso izy ireo ary mandefa vaovao raha tsy miova ny fanjakany, izay afaka manitatra be ny fiainan'ny bateria naorina.

Cloud Smart Home. Fizarana 1: Controller sy sensor

Azonao atao izao ny mahita fitaovana Z-Wave maro be eny an-tsena. Andeha hojerentsika ohatra vitsivitsy:

  1. Ny socket marani-tsaina Zipato PAN16 dia afaka mandrefy ireto mari-pamantarana manaraka ireto: fanjifana herinaratra (kWh), herinaratra (W), volt (V) ary ankehitriny (A) ao amin'ny tambajotra elektrika. Izy io koa dia manana switch naorina izay ahafahanao mifehy ny fitaovana elektrika mifandray;
  2. Ny sensor leak Neo Coolcam dia mahita ny fisian'ny ranon-javatra raraka amin'ny fanakatonana ny fifandraisana amin'ny probe lavitra;
  3. Ny sensor setroka Zipato PH-PSG01 dia mipoitra rehefa miditra ao amin'ny efitrano analyse entona ny setroka;
  4. Ny sensor motion Neo Coolcam dia manadihady ny taratra infrarouge amin'ny vatan'olombelona. Fanampin'izany dia misy sensor hazavana (Lx);
  5. Multisensor Philio PST02-A dia mandrefy ny mari-pana (Β°C), ny hazavana (%), ny fanokafana varavarana, ny fisian'ny olona iray ao amin'ny efitrano;
  6. Z-Wave USB Stick ZME E UZB1 mpanara-maso tambajotra, izay mifandray amin'ny sensor.

Tena zava-dehibe ny fiasan'ny fitaovana sy ny mpanara-maso amin'ny fotoana mitovy, raha tsy izany dia tsy hifankahita izy ireo amin'ny fotoanan'ny fifandraisana. Hatramin'ny fitaovana 232 dia azo ampifandraisina amin'ny mpanara-maso ny tambajotra Z-Wave iray, izay ampy ho an'ny trano iray na trano iray. Mba hanitarana ny faritry ny fandrakofana tamba-jotra ao an-trano, dia azo ampiasaina ho famerimberenana famantarana ny socket smart.

Cloud Smart Home. Fizarana 1: Controller sy sensor

Ao amin'ny fizotry ny mpizara mpizara an-trano marani-tsaina noresahina tao amin'ny andalana teo aloha, ny mpizara Z-Wave dia tompon'andraikitra amin'ny fifandraisana amin'ny fitaovana Z-Wave. Mampiasa tranomboky izy io handraisana vaovao avy amin'ny sensor OpenZWave ao amin'ny C ++, izay manome interface tsara hifandraisana amin'ny Z-Wave Network USB controller ary miasa miaraka amin'ny sensor sy actuators isan-karazany. Ny sandan'ny mari-pamantarana ara-tontolo iainana refesina amin'ny sensor dia noraketin'ny mpizara Z-Wave amin'ny endrika hafatra 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"
}

Avy eo dia alefa any amin'ny mpitantana hafatra amin'ny fizotran'ny server izany mba ahafahan'ny loham-pandraharahana mandray azy. Ny mpanjifa lehibe dia ny mpizara lojika famokarana, izay mifanandrify amin'ny sandan'ny sahan'ny hafatra ao amin'ny antecedents ny fitsipika lojika. Ny valin'ny inference misy baiko fanaraha-maso dia alefa any amin'ny mpitantana hafatra ary avy eo dia mandehana any amin'ny Z-Wave server, izay mamadika azy ireo ary mandefa azy ireo any amin'ny Z-Wave network USB controller. Avy eo dia miditra ao amin'ny actuator izy ireo, izay manova ny toetry ny tontolo iainana, ary ny trano marani-tsaina dia manao asa mahasoa.

Cloud Smart Home. Fizarana 1: Controller sy sensor
(tsindrio ny sary raha te hisokatra amin'ny resolution ambony kokoa)

Ny fampifandraisana ireo fitaovana Z-Wave dia atao amin'ny alΓ lan'ny rindran-tsary an'ny fanaraha-maso an-trano marani-tsaina. Mba hanaovana izany, mandehana any amin'ny pejy misy lisitry ny fitaovana ary tsindrio ny bokotra "Add". Ny baiko fanampiny amin'ny alΓ lan'ny interface RESTful API dia miditra amin'ny fizotran'ny server ary avy eo dia alefan'ny mpitantana hafatra mankany amin'ny mpizara Z-Wave, izay mametraka ny Z-Wave USB controller amin'ny fomba manokana hanampiana fitaovana. Avy eo, amin'ny fitaovana Z-Wave dia mila manao andian-tsindrim-peo haingana ianao (fanerena 3 ao anatin'ny 1,5 segondra) amin'ny bokotra serivisy. Ny USB controller dia mampifandray ny fitaovana amin'ny tambajotra ary mandefa fampahalalana momba izany amin'ny mpizara Z-Wave. Izany, ho setrin'izany, dia mamorona fidirana vaovao ao amin'ny angon-drakitra SQLite miaraka amin'ny mason'ny fitaovana vaovao. Aorian'ny fe-potoana voafaritra dia miverina amin'ny pejy lisitry ny fitaovana Z-Wave ny interface an-tsary, mamaky vaovao avy amin'ny angon-drakitra ary mampiseho ilay fitaovana vaovao ao anaty lisitra. Ny fitaovana tsirairay dia mahazo ny famantarana manokana azy manokana, izay ampiasaina amin'ny fitsipika momba ny famokarana sy rehefa miasa ao anaty rahona. Ny fiasan'ity algorithm ity dia aseho amin'ny diagram UML:

Cloud Smart Home. Fizarana 1: Controller sy sensor
(tsindrio ny sary raha te hisokatra amin'ny resolution ambony kokoa)

Mampifandray fakan-tsary IP

Ny rafitra cloud smart home resahina ato amin'ity lahatsoratra ity dia fanavaozana ny rafitra fanaraha-maso video rahona, novolavolain'ny mpanoratra ihany koa, izay efa teny an-tsena nandritra ny taona maro ary manana fametrahana maro any Rosia.

Ho an'ny rafitra fanaraha-maso horonan-tsarimihetsika rahona, ny iray amin'ireo olana goavana dia ny fifantenana voafetra amin'ny fitaovana azo anaovana fampidirana. Ny lozisialy tompon'andraikitra amin'ny fampifandraisana amin'ny rahona dia napetraka ao anatin'ny fakan-tsary video, izay mametraka fitakiana matotra avy hatrany amin'ny fitaovany - ny processeur sy ny habetsaky ny fahatsiarovana maimaim-poana. Izany dia manazava indrindra ny vidin'ny fakantsary CCTV rahona raha oharina amin'ny fakantsary IP mahazatra. Fanampin'izany, ny dingana lava amin'ny fifampiraharahana amin'ny orinasa mpamokatra fakan-tsary CCTV dia takiana mba hahazoana fidirana amin'ny rafi-drakitra fakantsary sy ny fitaovana fampandrosoana ilaina rehetra.

Cloud Smart Home. Fizarana 1: Controller sy sensor

Amin'ny lafiny iray, ny fakan-tsary IP maoderina rehetra dia manana protocole mahazatra amin'ny fifandraisana amin'ny fitaovana hafa (indrindra ny firaketana horonantsary). Noho izany, ny fampiasana mpanara-maso misaraka izay mampifandray amin'ny alΓ lan'ny protocole mahazatra ary mandefa horonan-tsarimihetsika avy amin'ny fakantsary IP mankany amin'ny rahona dia manome tombony lehibe amin'ny fifaninanana ho an'ny rafitra fanaraha-maso horonantsary rahona. Ankoatr'izay, raha efa nametraka rafitra fanaraha-maso video mifototra amin'ny fakantsary IP tsotra ny mpanjifa, dia azo atao ny manitatra azy io ary mamadika azy ho trano rahona feno rahona.

Ny protocol malaza indrindra ho an'ny rafitra fanaraha-maso horonantsary IP, izay tohanan'ny mpanamboatra fakantsary IP rehetra tsy an-kanavaka, dia ONVIF Profile S, izay misy amin'ny fiteny famariparitana ny serivisy tranonkala wsdl. Mampiasa fitaovana avy amin'ny fitaovana gSOAP Azo atao ny mamorona kaody loharano ho an'ny serivisy miasa amin'ny fakantsary 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

Vokatr'izany dia mahazo andiana lohapejy "*.h" sy loharano "*.cpp" ao amin'ny C++ isika, izay azo apetraka mivantana amin'ny fampiharana na tranomboky mitokana ary natambatra amin'ny fampiasana ny GCC compiler. Noho ny fiasa maro dia lehibe ny kaody ary mitaky fanatsarana fanampiny. Ny Raspberry Pi 3 modely B+ microcomputer dia manana fampisehoana ampy hanatanterahana io fehezan-dalΓ na io, fa raha ilaina ny mandefa ny code amin'ny sehatra hafa, dia ilaina ny mifidy ny maritrano sy ny loharanon'ny rafitra.

Ny fakan-tsary IP izay manohana ny fenitra ONVIF, rehefa miasa amin'ny tambajotra eo an-toerana, dia mifandray amin'ny vondrona multicast manokana miaraka amin'ny adiresy 239.255.255.250. Misy protocole WS Discovery, izay ahafahanao manao automatique ny fitadiavana fitaovana amin'ny tambajotra eo an-toerana.

Ny rindran-tsary an'ny mpandrindra an-trano marani-tsaina dia manatanteraka asa fikarohana ho an'ny fakan-tsary IP amin'ny PHP, izay tena mety rehefa mifandray amin'ny serivisy tranonkala amin'ny alΓ lan'ny hafatra XML. Rehefa mifidy sakafo sakafo Fitaovana> Fakan-tsary IP> Fikarohana Natomboka ny algorithm amin'ny fitadiavana fakantsary IP, mampiseho ny valiny amin'ny endrika latabatra:

Cloud Smart Home. Fizarana 1: Controller sy sensor
(tsindrio ny sary raha te hisokatra amin'ny resolution ambony kokoa)

Rehefa manampy fakantsary amin'ny mpanara-maso ianao dia azonao atao ny mamaritra ny toe-javatra izay hifaneraserany amin'ny rahona. Amin'ity dingana ity ihany koa, dia omena ho azy ny famantarana fitaovana tsy manam-paharoa, izay ahafahana mamantatra mora foana ao anatin'ny rahona.

Cloud Smart Home. Fizarana 1: Controller sy sensor

Avy eo, misy hafatra avoaka amin'ny endrika JSON misy ny mari-pamantarana rehetra amin'ny fakantsary fanampiny ary alefa any amin'ny fizotran'ny mpizara an'ny mpandrindra an-trano marani-tsaina amin'ny alΓ lan'ny baiko RESTful API, izay ahitana ny mari-pamantarana fakan-tsary ary voatahiry ao amin'ny angon-drakitra SQLite anatiny, ary ampiasaina ihany koa hanombohana ireto kofehy fanodinana manaraka ireto:

  1. fametrahana fifandraisana RTSP handraisana horonan-tsary sy feo;
  2. transcoding audio avy amin'ny G.711 mu-Law, G.711 A-Law, G.723, sns. amin'ny endrika AAC;
  3. transcoding horonan-tsary amin'ny endrika H.264 sy feo amin'ny endrika AAC ao anaty fitoeran-javatra FLV ary mamindra izany amin'ny rahona amin'ny alΓ lan'ny protocol RTMP;
  4. fametrahana fifandraisana amin'ny teboka farany amin'ny fakan-tsarimihetsika IP amin'ny alΓ lan'ny protocol ONVIF ary manao fitsapan-kevitra tsindraindray;
  5. mamorona tsindraindray sarin'ny thumbnail ary mandefa izany any amin'ny rahona amin'ny alΓ lan'ny protocol MQTT;
  6. fandraketana an-toerana ny horonan-tsarimihetsika sy feo amin'ny endrika rakitra misaraka amin'ny endrika MP4 amin'ny karatra SD na Flash an'ny mpanara-maso an-trano marani-tsaina.

Cloud Smart Home. Fizarana 1: Controller sy sensor

Mba hametrahana fifandraisana amin'ny fakan-tsary, transcode, fanodinana ary firaketana horonan-tsarimihetsika amin'ny fizotry ny mpizara, dia ampiasaina ny fiasa avy amin'ny tranomboky. FFmpeg 4.1.0.

Ao amin'ny andrana fitsapana fampisehoana, fakan-tsary 3 no nifandray tamin'ny controller:

  1. HiWatch DS-I114W (fanapahan-kevitra - 720p, endrika famatrarana - H.264, bitrate - 1 Mb/s, feo G.711 mu-Law);
  2. Microdigital MDC-M6290FTD-1 (fanapahan-kevitra - 1080p, endrika famoretana - H.264, bitrate - 1 Mb/s, tsy misy feo);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (fanapahan-kevitra - 1080p, endrika famoretana - H.264, bitrate - 1.5 Mb/s, AAC audio).

Cloud Smart Home. Fizarana 1: Controller sy sensor

Niara-nivoaka tamin'ny rahona avokoa ireo riaka telo rehetra, fakantsary iray ihany no nanaovana transcoding audio, ary tsy nety ny firaketana an-tsoratra ao an-toerana. Ny enta-mavesatra CPU dia manodidina ny 5%, ny fampiasana RAM dia 32 MB (isaky ny dingana), 56 MB (total misy OS).

Noho izany, ny fakantsary 20 - 30 eo ho eo dia azo ampifandraisina amin'ny fanaraha-maso an-trano marani-tsaina (miankina amin'ny fanapahan-kevitra sy ny bitrate), izay ampy ho an'ny rafitra fanaraha-maso video ho an'ny trano bongo misy rihana telo na trano fanatobiana kely. Ho an'ny asa mitaky fampandehanana lehibe kokoa, azonao atao ny mampiasa nettop misy processeur Intel marobe sy Linux Debian Sarge OS. Eo am-panadinana ny fanaraha-maso amin'izao fotoana izao, ary havaozina ny angona momba ny zava-bitany.

Fifandraisana amin'ny rahona

Trano marani-tsaina miorina amin'ny rahona no mitahiry angona mpampiasa (fandrefesana horonan-tsary sy sensor) ao anaty rahona. Ny maritrano fitahirizana rahona dia horesahina amin'ny antsipiriany kokoa amin'ny lahatsoratra manaraka amin'ny andiany. Andeha isika hiresaka momba ny interface tsara handefasana hafatra vaovao avy amin'ny fanaraha-maso an-trano marani-tsaina mankany amin'ny rahona.

Ny toetry ny fitaovana mifandray sy ny fandrefesana sensor dia alefa amin'ny alΓ lan'ny protocol MQTT, izay matetika ampiasaina amin'ny tetikasa Internet of Things noho ny fahatsorany sy ny fahombiazany amin'ny angovo. MQTT dia mampiasa modely mpanjifa-server, izay ahafahan'ny mpanjifa misoratra anarana amin'ny lohahevitra manokana ao anatin'ny broker ary mamoaka ny hafany. Ny broker dia mandefa hafatra amin'ny mpanjifa rehetra araka ny fitsipika voafaritry ny QoS (Quality of Service):

  • QoS 0 - ambony indrindra indray mandeha (tsy misy antoka fanaterana);
  • QoS 1 - farafahakeliny indray mandeha (miaraka amin'ny fanamafisana ny fandefasana);
  • QoS 2 - indray mandeha katroka (miaraka amin'ny fanamafisana fanaterana fanampiny).

Amin'ny tranga misy antsika dia mampiasa Eclipse Mosquito. Ny anaran'ny lohahevitra dia ny famantarana tsy manam-paharoa amin'ny fanaraha-maso an-trano marani-tsaina. Ny mpanjifa MQTT ao anatin'ny fizotry ny mpizara dia misoratra anarana amin'ity lohahevitra ity ary mandika ireo hafatra JSON avy amin'ny mpitantana hafatra ao anatiny. Mifanohitra amin'izany, ny hafatra avy amin'ny broker MQTT dia alefany any amin'ny mpitantana hafatra, izay avy eo dia mamindra azy ireo amin'ny mpanjifany ao anatin'ny fizotran'ny server:

Cloud Smart Home. Fizarana 1: Controller sy sensor

Mba handefasana hafatra momba ny satan'ny fanaraha-maso an-trano marani-tsaina dia ampiasaina ny mekanika amin'ny hafatra voatahiry hafatra voatazona Ny protocol MQTT. Izany dia ahafahanao manara-maso tsara ny fotoana fampifandraisana indray mandritra ny fahatapahan-jiro.

Ny mpanjifa MQTT dia novolavolaina mifototra amin'ny fampiharana ny tranomboky Eclipse Paho amin'ny fiteny C++.

H.264 + AAC media stream dia alefa any amin'ny rahona amin'ny alΓ lan'ny protocol RTMP, izay misy vondron'ireo mpizara media no tompon'andraikitra amin'ny fanodinana sy fitehirizana azy ireo. Mba hizarana tsara ny enta-mavesatra ao amin'ny cluster ary hisafidy ny lohamilina haino aman-jery faran'izay mavesatra indrindra, dia manao fangatahana mialoha amin'ny mpandrindra entana rahona ny mpandrindra an-trano marani-tsaina ary aorian'izay vao mandefa ny stream media.

famaranana

Ny lahatsoratra dia nandinika fampiharana iray manokana momba ny fanaraha-maso an-trano marani-tsaina miorina amin'ny microcomputer Raspberry Pi 3 B+, ​​izay afaka mandray, manamboatra fampahalalana ary fitaovana fanaraha-maso amin'ny alΓ lan'ny protocol Z-Wave, mifandray amin'ny fakantsary IP amin'ny alΓ lan'ny protocol ONVIF, ary mifanakalo angona sy baiko miaraka amin'ny serivisy rahona amin'ny alΓ lan'ny protocols MQTT sy RTMP. Ny maotera lojika famokarana dia novolavolaina mifototra amin'ny fampitahana ny fitsipika lojika sy ny zava-misy aseho amin'ny endrika JSON.

Mandeha andrana any amin'ny toerana maromaro ao Moskoa sy ny faritr'i Moskoa ny mpiandraikitra ny trano hendry amin'izao fotoana izao.

Ny kinova manaraka amin'ny controller dia mikasa ny hampifandray karazana fitaovana hafa (RF, Bluetooth, WiFi, tariby). Ho fanamorana ny mpampiasa, ny fomba fampifandraisana ireo sensor sy fakan-tsary IP dia hafindra amin'ny fampiharana finday. Misy ihany koa ny hevitra momba ny fanatsarana ny kaody fizotry ny mpizara sy ny fandefasana ny rindrambaiko amin'ny rafitra miasa OpenWrt. Izany dia ahafahanao mitahiry amin'ny fanaraha-maso misaraka ary mamindra ny fiasan'ny trano hendry amin'ny router an-tokantrano mahazatra.

Source: www.habr.com

Add a comment