ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

БСгодня, благодаря Π±ΡƒΡ€Π½ΠΎΠΌΡƒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ микроэлСктроники, ΠΊΠ°Π½Π°Π»ΠΎΠ² связи, Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½ΠΎΠ³ΠΎ Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°, Ρ‚Π΅ΠΌΠ° ΡƒΠΌΠ½Ρ‹Ρ… Π΄ΠΎΠΌΠΎΠ² становится всС Π±ΠΎΠ»Π΅Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ. ЧСловСчСскоС ΠΆΠΈΠ»ΠΈΡ‰Π΅ ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΎ сущСствСнныС измСнСния со Π²Ρ€Π΅ΠΌΠ΅Π½ ΠΊΠ°ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ° ΠΈ Π² эпоху ΠŸΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΉ Π Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΈ 4.0 ΠΈ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π’Π΅Ρ‰Π΅ΠΉ стало ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ бСзопасным. На Ρ€Ρ‹Π½ΠΎΠΊ приходят Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρƒ ΠΈΠ»ΠΈ Π·Π°Π³ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΉ Π΄ΠΎΠΌ Π² слоТныС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы, управляСмыС ΠΈΠ· любой Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΌΠΈΡ€Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ смартфона. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎ-машинного взаимодСйствия ΡƒΠΆΠ΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ знания языков программирования, β€” благодаря Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ распознавания ΠΈ синтСза Ρ€Π΅Ρ‡ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ с ΡƒΠΌΠ½Ρ‹ΠΌ Π΄ΠΎΠΌΠΎΠΌ Π½Π° Ρ€ΠΎΠ΄Π½ΠΎΠΌ языкС.

НСкоторыС систСмы ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, прСдставлСнныС сСйчас Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ систСм ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ видСонаблюдСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… осознали Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² комплСксном Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для контроля, Π½ΠΎ ΠΈ для управлСния ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

Π’Π°ΡˆΠ΅ΠΌΡƒ вниманию прСдлагаСтся Ρ†ΠΈΠΊΠ» ΠΈΠ· Ρ‚Ρ€Π΅Ρ… статСй, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ рассказано ΠΎ всСх основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… систСмы ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ Π² ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ. ΠŸΠ΅Ρ€Π²Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ посвящСна ΠΎΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ клиСнтскому ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ, устанавливаСмому Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, вторая β€” Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ систСмы ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ хранСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ‚Ρ€Π΅Ρ‚ΡŒΡ β€” клиСнтскому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ для управлСния систСмой Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ стационарных устройствах.

ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ для ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°

Π‘ΠΏΠ΅Ρ€Π²Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠ· ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½ΠΎΠΉ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρ‹, Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΡ‚Ρ‚Π΅Π΄ΠΆΠ° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ. Для этого, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, трСбуСтся Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΆΠΈΠ»ΠΈΡ‰Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅:

  1. Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ, ΠΈΠ·ΠΌΠ΅Ρ€ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ внСшнСй срСды;
  2. ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ устройства, Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π° внСшниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹;
  3. ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, производящий вычислСния Π² соотвСтствии с измСрСниями Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, ΠΈ Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… устройств.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС ΠΏΠΎΠΊΠ°Π·Π°Π½Π° схСма ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ располоТСны Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΡ‚Π΅Ρ‡ΠΊΠΈ Π²ΠΎΠ΄Ρ‹ (1) Π² Π²Π°Π½Π½ΠΎΠΉ, Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ (2) ΠΈ освСщСния (3) Π² спальнС, умная Ρ€ΠΎΠ·Π΅Ρ‚ΠΊΠ° (4) Π½Π° ΠΊΡƒΡ…Π½Π΅ ΠΈ ΠΊΠ°ΠΌΠ΅Ρ€Π° видСонаблюдСния (5) Π² ΠΏΡ€ΠΈΡ…ΠΎΠΆΠ΅ΠΉ.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

Π’ настоящСС врСмя ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ бСспроводныС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ RF433, Z-Wave, ZigBee, Bluetooth ΠΈ WiFi. Π˜Ρ… Π³Π»Π°Π²Π½Ρ‹Π΅ прСимущСства β€” удобство ΠΌΠΎΠ½Ρ‚Π°ΠΆΠ° ΠΈ использования, Π° Ρ‚Π°ΠΊΠΆΠ΅ дСшСвизна ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ‚.ΠΊ. ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ стрСмятся вывСсти свои устройства Π½Π° массовый Ρ€Ρ‹Π½ΠΎΠΊ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… доступными рядовому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

Π”Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ устройства, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎ бСспроводному интСрфСйсу ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° (6) β€” спСциализированному ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π΅ΠΌΡƒ всС эти устройства Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌΡƒ ΠΈΠΌΠΈ.

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² сСбС Π΄Π°Ρ‚Ρ‡ΠΈΠΊ, ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ устройство ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. НапримСр, умная Ρ€ΠΎΠ·Π΅Ρ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ, Π° ΠΊΠ°ΠΌΠ΅Ρ€Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ видСонаблюдСния ΡƒΠΌΠ΅Π΅Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ сигналу Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€Π° двиТСния. Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… случаях ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π½ΠΎ для создания Π³ΠΈΠ±ΠΊΠΎΠΉ систСмы со мноТСством сцСнариСв ΠΎΠ½ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ.

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΊ глобальной сСти ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ€ΠΎΡƒΡ‚Π΅Ρ€ (7), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ стал ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΌ Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΈΠ±ΠΎΡ€ΠΎΠΌ Π² любом Π΄ΠΎΠΌΠ΅. Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° β€” Ссли ΠΏΡ€ΠΎΠΏΠ°Π΄Π΅Ρ‚ связь с Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Ρ‚ΠΎ ΡƒΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ благодаря Π±Π»ΠΎΠΊΡƒ Π»ΠΎΠ³ΠΈΠΊΠΈ, хранящСйся Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π° Π½Π΅ Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΌ сСрвисС.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ для систСмы ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, рассматриваСмой Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π½Π° основС ΠΎΠ΄Π½ΠΎΠΏΠ»Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Raspberry Pi 3 model B+, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ Π² ΠΌΠ°Ρ€Ρ‚Π΅ 2018 Π³ΠΎΠ΄Π° ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ достаточными рСсурсами ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ для Π·Π°Π΄Π°Ρ‡ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°. Π’ Π΅Π³ΠΎ состав Π²Ρ…ΠΎΠ΄ΠΈΡ‚ чСтырСхядСрный процСссор Cortex-A53 Π½Π° 64-Π±ΠΈΡ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ARMv8-A, с Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΉ частотой 1.4 Π“Π“Ρ†, Π° Ρ‚Π°ΠΊΠΆΠ΅ 1 Π“Π‘ ΠžΠ—Π£, Wi-Fi 802.11ac, Bluetooth 4.2 ΠΈ Π³ΠΈΠ³Π°Π±ΠΈΡ‚Π½Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ Ethernet, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· ΡˆΠΈΠ½Ρƒ USB 2.0.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΎΡ‡Π΅Π½ΡŒ проста β€” ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ (1) устанавливаСтся Π² пластиковый корпус (2), Π΄Π°Π»Π΅Π΅ Π² Π½Π΅Π³ΠΎ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ слоты устанавливаСтся 8 Π“Π‘ ΠΊΠ°Ρ€Ρ‚Π° памяти Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ microSD с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм (3) ΠΈ USB-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ сСти Z-Wave (4). ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ элСктросСти Ρ‡Π΅Ρ€Π΅Π· Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ питания 5Π’, 2.1А (5) ΠΈ кабСль USB β€” micro-USB (6). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записываСтся Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для взаимодСйствия с сСрвисами ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½Π° основС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Linux Raspbian Stretch. Оно состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… основных подсистСм:

  • сСрвСрного процСсса для взаимодСйствия с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΈ ΠΎΠ±Π»Π°ΠΊΠΎΠΌ;
  • графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для настройки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°;
  • Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для хранСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° основС встраиваСмой Π‘Π£Π‘Π” SQLite ΠΈ прСдставляСт собой Ρ„Π°ΠΉΠ» Π½Π° SD-ΠΊΠ°Ρ€Ρ‚Π΅ с систСмным ПО. Она слуТит Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° β€” ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ состоянии, Π±Π»ΠΎΠΊΠ° логичСских ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ», Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅ΠΉ индСксации (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² локального Π²ΠΈΠ΄Π΅ΠΎΠ°Ρ€Ρ…ΠΈΠ²Π°). ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° эта информация сохраняСтся, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ восстановлСниС работоспособности ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π² случаС сбоСв элСктропитания.

ГрафичСский интСрфСйс ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π½Π° языкС PHP 7 с использованиСм ΠΌΠΈΠΊΡ€ΠΎΡ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Slim. Π—Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π²Π΅Π±-сСрвСр lighttpd, часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉΡΡ Π²ΠΎ встраиваСмых устройствах благодаря своСй Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΌ трСбованиям ΠΊ рСсурсам.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ
(ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² большСм Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ)

Основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ графичСского интСрфСйса являСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ оборудования ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° (IP-ΠΊΠ°ΠΌΠ΅Ρ€ видСонаблюдСния ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²) ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ. Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ считываСт ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊ Π½Π΅ΠΌΡƒ устройств ΠΈΠ· Π‘Π” SQLite. Для измСнСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΎΠ½ΠΎ посылаСт ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON Ρ‡Π΅Ρ€Π΅Π· интСрфСйс RESTful API сСрвСрного процСсса.

Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ процСсс

Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ процСсс β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ всю ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… процСссов, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… основу ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°: ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ сСнсорных Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹Π΄Π°Ρ‡Ρƒ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… воздСйствий Π² зависимости ΠΎΡ‚ Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ. НазначСниС сСрвСрного процСсса β€” взаимодСйствиС с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… логичСских ΠΏΡ€Π°Π²ΠΈΠ», ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΡ‚ графичСского интСрфСйса ΠΈ ΠΎΠ±Π»Π°ΠΊΠ°. Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ процСсс Π² рассматриваСмом ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ Π½Π° языкС Π‘++ ΠΈ запускаСмоС ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис systemd ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Linux Raspbian.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ сСрвСрного процСсса ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

  1. ДиспСтчСр сообщСний;
  2. Π‘Π΅Ρ€Π²Π΅Ρ€ IP-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹;
  3. Π‘Π΅Ρ€Π²Π΅Ρ€ устройств Z-Wave;
  4. Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… логичСских ΠΏΡ€Π°Π²ΠΈΠ»;
  5. Π‘Π°Π·Π° Π”Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ Π±Π»ΠΎΠΊΠ° логичСских ΠΏΡ€Π°Π²ΠΈΠ»;
  6. RESTful API сСрвСр для взаимодСйствия с графичСским интСрфСйсом;
  7. MQTT ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для взаимодСйствия с ΠΎΠ±Π»Π°ΠΊΠΎΠΌ.

Π‘Π»ΠΎΠΊΠΈ сСрвСрного процСсса Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, информация ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ пСрСдаСтся Π² Π²ΠΈΠ΄Π΅ сообщСний Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON (ΠΈΠ»ΠΈ структур Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² памяти процСсса).

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

Π“Π»Π°Π²Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ сСрвСрного процСсса являСтся диспСтчСр сообщСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ сообщСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON для всСх Π±Π»ΠΎΠΊΠΎΠ² сСрвСрного процСсса. Π’ΠΈΠΏΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ JSON-сообщСния ΠΈ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, пСрСчислСны Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

deviceType
protocol
messageType
deviceState
command

camera
onvif
sensorData
on
streaming(On/Off)

sensor
zwave
command
off
recording(On/Off)

effector
mqtt
businessLogicRule
streaming(On/Off)
evice(Add/Remove)

businessLogic
configurationData
recording(On/Off)

bluetooth
deviceState
error

wifi

rf

НапримСр, сообщСниС ΠΎΡ‚ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€Π° двиТСния ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

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

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС ΠΎΡ‚ диспСтчСра, Π±Π»ΠΎΠΊ сСрвСрного процСсса подписываСтся Π½Π° сообщСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Подписка прСдставляСт собой ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ логичСскоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ‚ΠΈΠΏΠ° «Если …, Ρ‚ΠΎ … Β», прСдставлСнноС Π² JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΈ ссылку Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ сообщСния Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° сСрвСрного процСсса. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСрвСр IP-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠ³ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚ графичСского интСрфСйса ΠΈ ΠΎΠ±Π»Π°ΠΊΠ°, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ:

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

Если условия, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² Π°Π½Ρ‚Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚Π΅ (Π»Π΅Π²ΠΎΠΉ части) ΠΏΡ€Π°Π²ΠΈΠ»Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ истинными, Ρ‚ΠΎ выполняСтся консиквСнт (правая Ρ‡Π°ΡΡ‚ΡŒ) ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ Ρ‚Π΅Π»Ρƒ JSON-сообщСния. Π’ Π°Π½Ρ‚Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ сравнСниС JSON-ΠΏΠ°Ρ€ Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β»:

  1. Ρ€Π°Π²Π½ΠΎ Β«equalΒ»;
  2. Π½Π΅ Ρ€Π°Π²Π½ΠΎ Β«not_equalΒ»;
  3. мСньшС «less»;
  4. большС «greater»;
  5. мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Β«less_or_equalΒ»;
  6. большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Β«greater_or_equalΒ».

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сравнСния ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π±ΡƒΠ»Π΅Π²ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€Ρ‹:

  1. И «and»;
  2. Π˜Π›Π˜ Β«orΒ»;
  3. НЕ Β«notΒ».

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, записывая ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ Π² польской Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ достаточно слоТныС условия с большим количСством ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, основанный Π½Π° JSON-сообщСниях ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΉ Π² JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, примСняСтся Π² Π±Π»ΠΎΠΊΠ΅ сСрвСра ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ для прСдставлСния Π·Π½Π°Π½ΠΈΠΉ ΠΈ осущСствлСния логичСского Π²Ρ‹Π²ΠΎΠ΄Π° с использованиСм сСнсорных Π΄Π°Π½Π½Ρ‹Ρ… с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мобильного прилоТСния составляСт сцСнарии, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ. НапримСр: «Если сработал Π΄Π°Ρ‚Ρ‡ΠΈΠΊ открытия Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π΄Π²Π΅Ρ€ΠΈ, Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свСт Π² ΠΏΡ€ΠΈΡ…ΠΎΠΆΠ΅ΠΉΒ». ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ считываСт ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² (Π΄Π°Ρ‚Ρ‡ΠΈΠΊ открытия) ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… устройств (умная Ρ€ΠΎΠ·Π΅Ρ‚ΠΊΠ° ΠΈΠ»ΠΈ умная Π»Π°ΠΌΠΏΠ°) ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ логичСскоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ пСрСсылаСтся Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСн Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ нашСго Ρ†ΠΈΠΊΠ»Π°, Π³Π΄Π΅ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ ΠΎ клиСнтском ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ для управлСния ΡƒΠΌΠ½Ρ‹ΠΌ Π΄ΠΎΠΌΠΎΠΌ.

РассмотрСнный Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ RapidJSON β€” SAX-парсСра Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° JSON Π½Π° языкС Π‘++. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Π±ΠΎΡ€ массива ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» позволяСт Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сопоставлСния Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Π°Π½Ρ‚Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ΠΎΠ²:

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

Π—Π΄Π΅ΡΡŒ pFact β€” структура, содСрТащая ΠΏΠ°Ρ€Ρ‹ Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» ΠΈΠ· JSON-сообщСния, m_Rules β€” строковый массив ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ». БопоставлСниС входящСго сообщСния ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ производится Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ reader.Parse(ruleStream, ruleHandler), Π³Π΄Π΅ ruleHandler β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий Π»ΠΎΠ³ΠΈΠΊΡƒ Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния. sRuleId β€” ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»Π°, благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°. m_pActions β€” массив с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ логичСского Π²Ρ‹Π²ΠΎΠ΄Π°: JSON-сообщСниями, содСрТащими консиквСнты ΠΈΠ· Π±Π°Π·Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ» ΠΈ пСрСсылаСмыС Π΄Π°Π»Π΅Π΅ Π² диспСтчСр сообщСний, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΈ-подписчики ΠΌΠΎΠ³Π»ΠΈ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ RapidJSON сопоставима с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ strlen(), Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ трСбования ΠΊ систСмным рСсурсам ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π²ΠΎ встраиваСмых устройствах. ИспользованиС сообщСний ΠΈ логичСских ΠΏΡ€Π°Π²ΠΈΠ» Π² JSON-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΡƒΡŽ систСму ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρƒ всСми ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°.

Π”Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ устройства Z-Wave

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΌΠ΅Π΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ внСшнСй срСды ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² зависимости ΠΎΡ‚ ситуации. Для этого ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ устройства. Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии β€” это бСспроводныС устройства, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ Z-Wave Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ частотС 869 ΠœΠ“Ρ† для России. Для своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² mesh-ΡΠ΅Ρ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ рСтрансляторы сигнала, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π·ΠΎΠ½Ρƒ покрытия. Π’Π°ΠΊΠΆΠ΅ устройства ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ энСргосбСрСТСния β€” Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ΠΈ проводят Π² спящСм Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ своСго состояния, Ρ‡Ρ‚ΠΎ позволяСт сущСствСнно ΠΏΡ€ΠΎΠ΄Π»ΠΈΡ‚ΡŒ Тизнь встроСнной Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

На Ρ€Ρ‹Π½ΠΊΠ΅ сСйчас ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ достаточно большоС количСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… устройств Z-Wave. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим нСсколько:

  1. Умная Ρ€ΠΎΠ·Π΅Ρ‚ΠΊΠ° Zipato PAN16 ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ элСктроэнСргии (ΠΊΠ’Ρ‚/Ρ‡), ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ (Π’Ρ‚), напряТСниС (Π’) ΠΈ Ρ‚ΠΎΠΊ (А) Π² элСктросСти. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ элСктроприбором;
  2. Π”Π°Ρ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΡ‚Π΅Ρ‡ΠΊΠΈ Neo Coolcam опрСдСляСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‚ΠΎΠΉ Тидкости ΠΏΠΎ Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΡŽ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² выносного Ρ‰ΡƒΠΏΠ°;
  3. Π”Π°Ρ‚Ρ‡ΠΈΠΊ задымлСния Zipato PH-PSG01 срабатываСт ΠΏΡ€ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ частиц Π΄Ρ‹ΠΌΠ° Π² ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Π³Π°Π·ΠΎΠ°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°;
  4. Π”Π°Ρ‚Ρ‡ΠΈΠΊ двиТСния Neo Coolcam Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ инфракрасноС ΠΈΠ·Π»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅Π»Π° Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ имССтся Π΄Π°Ρ‚Ρ‡ΠΈΠΊ освСщСнности (Π›ΠΊ);
  5. ΠœΡƒΠ»ΡŒΡ‚ΠΈΡΠ΅Π½ΡΠΎΡ€ Philio PST02-A измСряСт Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ (Β°C), ΠΎΡΠ²Π΅Ρ‰Π΅Π½Π½ΠΎΡΡ‚ΡŒ (%), ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π΄Π²Π΅Ρ€ΠΈ, присутствиС Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ;
  6. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ сСти Z-Wave USB Stick ZME E UZB1, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ.

ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ устройства ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ частотС, β€” ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ, ΠΏΠΎ-просту, Π½Π΅ увидят Π΄Ρ€ΡƒΠ³-Π΄Ρ€ΡƒΠ³Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. К ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ сСти Z-Wave ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎ 232 устройств, Ρ‡Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ достаточно для ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρ‹ ΠΈΠ»ΠΈ Π·Π°Π³ΠΎΡ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°. Для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π·ΠΎΠ½Ρ‹ покрытия сСти Π²Π½ΡƒΡ‚Ρ€ΠΈ помСщСния умная Ρ€ΠΎΠ·Π΅Ρ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована ΠΊΠ°ΠΊ рСтранслятор сигнала.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

Π’ сСрвСрном процСссС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, рассмотрСнном Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅, Π·Π° взаимодСйствиС с устройствами Z-Wave ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ сСрвСр Z-Wave. Для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ OpenZWave Π½Π° языкС Π‘++, которая прСдоставляСт интСрфСйс для взаимодСйствия с USB-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ сСти Z-Wave ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со мноТСством Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… устройств. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° внСшнСй срСды, ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ, записываСтся сСрвСром Z-Wave Π² Π²ΠΈΠ΄Π΅ 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"
}

Π”Π°Π»Π΅Π΅ ΠΎΠ½ΠΎ пСрСсылаСтся Π² диспСтчСр сообщСний сСрвСрного процСсса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΈ-подписчики ΠΌΠΎΠ³Π»ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ подписчиком являСтся сСрвСр ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сопоставляСт значСния ΠΏΠΎΠ»Π΅ΠΉ сообщСния Π² Π°Π½Ρ‚Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚Π°Ρ… логичСских ΠΏΡ€Π°Π²ΠΈΠ». Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ логичСского Π²Ρ‹Π²ΠΎΠ΄Π°, содСрТащиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ управлСния, ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»Π°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² диспСтчСр сообщСний ΠΈ ΠΎΡ‚Ρ‚ΡƒΠ΄Π° ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² сСрвСр Z-Wave, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡ… Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ отсылаСт Π² USB-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ сСти Z-Wave. Π”Π°Π»Π΅Π΅ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ устройство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мСняСт состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² внСшнСй срСды, ΠΈ ΡƒΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ
(ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² большСм Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ)

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ устройств Z-Wave производится Π² графичСском интСрфСйсС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° страничку со списком устройств ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΒ». Команда добавлСния Ρ‡Π΅Ρ€Π΅Π· интСрфСйс RESTful API ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² сСрвСрный процСсс ΠΈ, Π·Π°Ρ‚Π΅ΠΌ, пСрСсылаСтся диспСтчСром сообщСний сСрвСру Z-Wave, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ USB-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ сСти Z-Wave Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ добавлСния устройств. Π”Π°Π»Π΅Π΅, Π½Π° устройствС Z-Wave Π½ΡƒΠΆΠ½ΠΎ произвСсти ΡΠ΅Ρ€ΠΈΡŽ быстрых Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ (3 наТатия Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ 1,5 сСкунд) сСрвисной ΠΊΠ½ΠΎΠΏΠΊΠΈ. USB-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ устройство Π² ΡΠ΅Ρ‚ΡŒ ΠΈ отправляСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π΅ΠΌ Π² сСрвСр Z-Wave. Π’ΠΎΡ‚, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, создаСт Π½ΠΎΠ²ΡƒΡŽ запись Π² Π‘Π” SQLite с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ устройства. ГрафичСский интСрфСйс ΠΏΠΎ истСчСнии Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ возвращаСтся Π½Π° страничку списка устройств Z-Wave, считываСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Π‘Π” ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ устройство Π² спискС. КаТдоС устройство ΠΏΡ€ΠΈ этом ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ свой ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ логичСского Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΎΠ±Π»Π°ΠΊΠ΅. Π Π°Π±ΠΎΡ‚Π° этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° UML-Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅:

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ
(ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² большСм Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ)

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ IP-ΠΊΠ°ΠΌΠ΅Ρ€

БистСма ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, рассматриваСмая Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅, являСтся ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ систСмы ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ видСонаблюдСния, Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ, которая ΡƒΠΆΠ΅ нСсколько Π»Π΅Ρ‚ присутствуСт Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство инсталляций Π² России.

Для систСм ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ видСонаблюдСния ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· острых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ являСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ оборудования, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ произвСсти ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π΅ Π·Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Π»Π°ΠΊΡƒ, устанавливаСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, Ρ‡Ρ‚ΠΎ сразу ΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ трСбования ΠΊ Π΅Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Π½Π°Ρ‡ΠΈΠ½ΠΊΠ΅ β€” процСссору ΠΈ количСству свободной памяти. Π­Ρ‚ΠΈΠΌ, Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ высокая Ρ†Π΅Π½Π° ΠΊΠ°ΠΌΠ΅Ρ€ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ видСонаблюдСния ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ IP-ΠΊΠ°ΠΌΠ΅Ρ€Π°ΠΌΠΈ. ΠšΡ€ΠΎΠΌΠ΅ этого, трСбуСтся Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап ΠΏΠ΅Ρ€Π΅Π³ΠΎΠ²ΠΎΡ€ΠΎΠ² с компаниями-производитСлями ΠΊΠ°ΠΌΠ΅Ρ€ видСонаблюдСния для получСния доступа ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈ всСх Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, всС соврСмСнныС IP-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ стандартныС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ для взаимодСйствия с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Π² частности, видСорСгистраторами). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, использованиС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ стандартному ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ ΠΈ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² с IP-ΠΊΠ°ΠΌΠ΅Ρ€ Π² ΠΎΠ±Π»Π°ΠΊΠΎ, прСдоставляСт сущСствСнныС ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½Ρ‹Π΅ прСимущСства для систСм ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ видСонаблюдСния. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π±Ρ‹Π»Π° ΡƒΠΆΠ΅ установлСна систСма видСонаблюдСния Π½Π° основС простых IP-ΠΊΠ°ΠΌΠ΅Ρ€, Ρ‚ΠΎ появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ прСвращСния Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ ΡƒΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ.

Π‘Π°ΠΌΡ‹ΠΉ популярный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» для систСм IP-видСонаблюдСния, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ сСйчас всСми Π±Π΅Π· ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ производитСлями IP-ΠΊΠ°ΠΌΠ΅Ρ€, β€” это ONVIF Profile S, спСцификации ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π° языкС описания Π²Π΅Π±-сСрвисов WSDL. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈΠ· инструмСнтария gSOAP Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ сСрвисов, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с 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

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π½Π°Π±ΠΎΡ€ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Β«*.hΒ» ΠΈ исходных Β«*.cppΒ» Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° языкС Π‘++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ прямо Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компилятора GCC. Из-Π·Π° мноТСства Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠΎΠ΄ получаСтся большим ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Raspberry Pi 3 model B+ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ достаточной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ этот ΠΊΠΎΠ΄, Π½ΠΎ Π² случаС, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΈ систСмныС рСсурсы.

IP-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ стандарт ONVIF, ΠΏΡ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² локальной сСти ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΊΠ°ΡΡ‚ΠΎΠ²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ с адрСсом 239.255.255.250. БущСствуСт ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» WS-Discovery, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ поиск устройств Π² локальной сСти.

Π’ графичСском интСрфСйсС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° функция поиска IP-ΠΊΠ°ΠΌΠ΅Ρ€ Π½Π° языкС PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½ ΠΏΡ€ΠΈ взаимодСйствии с Π²Π΅Π±-сСрвисами посрСдством XML-сообщСний. ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню Устройства > IP-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ > Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ запускаСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска IP-ΠΊΠ°ΠΌΠ΅Ρ€, выводящий Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ
(ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² большСм Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ)

ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ настройки, Π² соотвСтствии с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΠ±Π»Π°ΠΊΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ Π½Π° этом этапС Π΅ΠΉ автоматичСски присваиваСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ устройства, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΅Π΅ Π² дальнСйшСм ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΈΠ΄Π΅Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Π»Π°ΠΊΠ°.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

Π”Π°Π»Π΅Π΅ формируСтся сообщСниС Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON, содСрТащСС всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ добавляСмой ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, ΠΈ отправляСтся Π² сСрвСрный процСсс ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ RESTful API, Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Π‘Π” SQLite, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для запуска ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:

  1. установлСния RTSP-соСдинСния для получСния Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π°ΡƒΠ΄ΠΈΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²;
  2. транскодирования Π°ΡƒΠ΄ΠΈΠΎ ΠΈΠ· Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² G.711 mu-Law, G.711 A-Law, G.723, ΠΈΡ‚Π΄. Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ AAC;
  3. транскодирования ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ H.264 ΠΈ Π°ΡƒΠ΄ΠΈΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ AAC Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ FLV ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΅Π³ΠΎ Π² ΠΎΠ±Π»Π°ΠΊΠΎ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ RTMP;
  4. установлСния соСдинСния с ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€Π° двиТСния IP-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ ONVIF ΠΈ Π΅Π΅ пСриодичСский опрос;
  5. пСриодичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ изобраТСния ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра (preview) ΠΈ пСрСсылкС Π΅Π³ΠΎ Π² ΠΎΠ±Π»Π°ΠΊΠΎ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ MQTT;
  6. локальной записи Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π°ΡƒΠ΄ΠΈΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ MP4 Π½Π° SD- ΠΈΠ»ΠΈ Flash-ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

Для установлСния соСдинСния с ΠΊΠ°ΠΌΠ΅Ρ€Π°ΠΌΠΈ, транскодирования, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ записи Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² сСрвСрном процСссС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ FFmpeg 4.1.0.

Π’ экспСримСнтС Π½Π° тСстированиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ 3 ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹:

  1. HiWatch DS-I114W (Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” 720p, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сТатия β€” H.264, Π±ΠΈΡ‚Ρ€Π΅ΠΉΡ‚ β€” 1 Mb/s, Π·Π²ΡƒΠΊ G.711 mu-Law);
  2. Microdigital MDC-M6290FTD-1 (Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” 1080p, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сТатия β€” H.264, Π±ΠΈΡ‚Ρ€Π΅ΠΉΡ‚ β€” 1 Mb/s, Π±Π΅Π· Π·Π²ΡƒΠΊΠ°);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” 1080p, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сТатия β€” H.264, Π±ΠΈΡ‚Ρ€Π΅ΠΉΡ‚ β€” 1.5 Mb/s, Π·Π²ΡƒΠΊ AAC).

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

ВсС Ρ‚Ρ€ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π² ΠΎΠ±Π»Π°ΠΊΠΎ, транскодированиС Π·Π²ΡƒΠΊΠ° ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, запись локального Π°Ρ€Ρ…ΠΈΠ²Π° Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° CPU составила ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 5%, использованиС RAM β€” 32 ΠœΠ‘ (Π½Π° процСсс), 56 ΠœΠ‘ (всСго вмСстС с ОБ).

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 20 β€” 30 ΠΊΠ°ΠΌΠ΅Ρ€ (Π² зависимости ΠΎΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ Π±ΠΈΡ‚Ρ€Π΅ΠΉΡ‚Π°), Ρ‡Ρ‚ΠΎ достаточно для систСмы видСонаблюдСния трСхэтаТного ΠΊΠΎΡ‚Ρ‚Π΅Π΄ΠΆΠ° ΠΈΠ»ΠΈ нСбольшого склада. Π’ Π·Π°Π΄Π°Ρ‡Π°Ρ…, Π³Π΄Π΅ трСбуСтся большая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Ρ‚Ρ‚ΠΎΠΏ с многоядСрным процСссором Intel ΠΈ ОБ Linux Debian Sarge. Π’ настоящСС врСмя ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠΏΡ‹Ρ‚Π½ΡƒΡŽ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ, ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒΡΡ.

ВзаимодСйствиС с ΠΎΠ±Π»Π°ΠΊΠΎΠΌ

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ ΡƒΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ (Π²ΠΈΠ΄Π΅ΠΎ ΠΈ измСрСния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²) Π² ΠΎΠ±Π»Π°ΠΊΠ΅. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ нашСго Ρ†ΠΈΠΊΠ»Π°. БСйчас ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± интСрфСйсС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… сообщСний ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Π² ΠΎΠ±Π»Π°ΠΊΠΎ.

Бостояния ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… устройств ΠΈ измСрСния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ MQTT, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто примСняСтся Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π’Π΅Ρ‰Π΅ΠΉ ΠΈΠ·-Π·Π° простоты ΠΈ энСргоэффСктивности. MQTT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ модСль, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠΏΠΈΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ свои сообщСния. Π‘Ρ€ΠΎΠΊΠ΅Ρ€ рассылаСт сообщСния всСм подписчикам ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, опрСдСляСмым ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ QoS (Quality of Service):

  • QoS 0 β€” максимум ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· (Π½Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ доставки);
  • QoS 1 β€” хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· (с ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ доставки);
  • QoS 2 β€” Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· (с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ доставки).

Π’ нашСм случаС Π² качСствС MQTT-Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Eclipse Mosquitto. ИмСнСм Ρ‚ΠΎΠΏΠΈΠΊΠ° являСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°. MQTT-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСрвСрного процСсса подписываСтся Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΠΏΠΈΠΊ ΠΈ транслируСт Π² Π½Π΅Π³ΠΎ JSON-сообщСния, приходящиС ΠΎΡ‚ диспСтчСра сообщСний. И, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, сообщСния ΠΈΠ· MQTT-Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»Π°ΡŽΡ‚ΡΡ ΠΈΠΌ Π² диспСтчСр сообщСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π»Π΅Π΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… своим подписчикам Π²Π½ΡƒΡ‚Ρ€ΠΈ сСрвСрного процСсса:

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ Π£ΠΌΠ½Ρ‹ΠΉ Π”ΠΎΠΌ. Π§Π°ΡΡ‚ΡŒ 1: ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний ΠΎ состоянии ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сохранСнных сообщСний retained messages ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT. Π­Ρ‚ΠΎ позволяСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ сбоях элСктропитания.

MQTT-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π½Π° основС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Eclipse Paho Π½Π° языкС Π‘++.

ΠœΠ΅Π΄ΠΈΠ°ΠΏΠΎΡ‚ΠΎΠΊΠΈ H.264 + AAC ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠΎ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ RTMP, Π³Π΄Π΅ Π·Π° ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ кластСр мСдиасСрвСров. Для ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ распрСдСлСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² кластСрС ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ мСдиасСрвСра ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ запрос ΠΊ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΌΡƒ балансировщику Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого отправляСт ΠΌΠ΅Π΄ΠΈΠ°ΠΏΠΎΡ‚ΠΎΠΊ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±Ρ‹Π»Π° рассмотрСна ΠΎΠ΄Π½Π° конкрСтная рСализация ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Raspberry Pi 3 B+, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ Z-Wave, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с IP-ΠΊΠ°ΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ ONVIF, Π° Ρ‚Π°ΠΊΠΆΠ΅ обмСниваСтся Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ с ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌ сСрвисом ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ MQTT ΠΈ RTMP. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π° основС сопоставлСния логичСских ΠΏΡ€Π°Π²ΠΈΠ» ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΠ², прСдставлСнных Π² JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

БСйчас ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠΏΡ‹Ρ‚Π½ΡƒΡŽ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… Π² МосквС ΠΈ ПодмосковьС.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ вСрсии ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° планируСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ устройств Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² (RF, Bluetooth, WiFi, ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½Ρ‹Π΅). Для удобства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ IP-ΠΊΠ°ΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ пСрСнСсСна Π² мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° сСрвСрного процСсса ΠΈ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму OpenWrt. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ ΠΈ пСрСнСсти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π±Ρ‹Ρ‚ΠΎΠ²ΠΎΠΉ Ρ€ΠΎΡƒΡ‚Π΅Ρ€.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com