ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ื”ื™ื™ึทื ื˜, ื“ืึทื ืง ืฆื• ื“ื™ ื’ื™ืš ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ืžื™ืงืจืึธืขืœืขืงื˜ืจืึธื ื™ืงืก, ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ื˜ืฉืึทื ืึทืœื–, ืื™ื ื˜ืขืจื ืขืฅ ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื– ืื•ืŸ ืึทืจื˜ื™ืคื™ืกื™ืึทืœ ื™ื ื˜ืขืœืœื™ื’ืขื ืกืข, ื“ื™ ื˜ืขืžืข ืคื•ืŸ โ€‹โ€‹ืงืœื•ื’ ื”ืึธืžืขืก ืื™ื– ืฉื™ื™ืŸ ืžืขืจ ืื•ืŸ ืžืขืจ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง. ืžืขื ื˜ืฉืœืขืš ื”ืึธื•ืกื™ื ื’ ื”ืื˜ ืึทื ื“ืขืจื’ืึธืŸ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ื™ื ื˜ ื“ื™ ืฉื˜ื™ื™ืŸ ืึทื’ืข ืื•ืŸ ืื™ืŸ ื“ืขืจ ืชืงื•ืคื” ืคื•ืŸ ื™ื ื“ื•ืกื˜ืจื™ืึทืœ ืจืขื•ื•ืืœื•ืฆื™ืข 4.0 ืื•ืŸ ื“ื™ ืื™ื ื˜ืขืจื ืขื˜ ืคื•ืŸ ื˜ื”ื™ื ื’ืก, ืขืก ืื™ื– ื’ืขื•ื•ืืจืŸ ื‘ืึทืงื•ื•ืขื, ืคืึทื ื’ืงืฉืึทื ืึทืœ ืื•ืŸ ื–ื™ื›ืขืจ. ืกืึทืœื•ืฉืึทื ื– ืงื•ืžืขืŸ ืฆื• ื“ื™ ืžืึทืจืง ื•ื•ืึธืก ื•ื•ืขื ื“ืŸ ืึท ื•ื•ื•ื™ื ื•ื ื’ ืึธื“ืขืจ ืึท ืœืึทื ื“ ื”ื•ื™ื– ืื™ืŸ ืงืึธืžืคึผืœืขืงืก ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืกื™ืกื˜ืขืžืขืŸ ืงืึทื ื˜ืจืึธื•ืœื“ ืคึฟื•ืŸ ืขืจื’ืขืฅ ืื™ืŸ ื“ืขืจ ื•ื•ืขืœื˜ ืžื™ื˜ ืึท ืกืžืึทืจื˜ืคืึธื ืข. ื“ืขืจืฆื•, ืžืขื ื˜ืฉ-ืžืึทืฉื™ืŸ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ื“ืึทืจืฃ ื ื™ื˜ ืžืขืจ ื•ื•ื™ืกืŸ ืคื•ืŸ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทื›ืŸ - ื“ืึทื ืง ืฆื• ืจื™ื™ื“ ื“ืขืจืงืขื ื•ื ื’ ืื•ืŸ ืกื™ื ื˜ืขื– ืึทืœื’ืขืจื™ื“ืึทืžื–, ืึท ืžืขื ื˜ืฉ ืจืขื“ื˜ ืฆื• ืึท ืงืœื•ื’ ื”ื™ื™ื ืื™ืŸ ื–ื™ื™ืขืจ ื’ืขื‘ื•ื™ืจืŸ ืฉืคึผืจืึทืš.

ืขื˜ืœืขื›ืข ืงืœื•ื’ ื”ื™ื™ื ืกื™ืกื˜ืขืžืขืŸ ื“ืขืจื•ื•ื™ื™ึทืœ ืื•ื™ืฃ ื“ื™ ืžืึทืจืง ื–ืขื ืขืŸ ืึท ืœืึทื“ื–ืฉื™ืงืึทืœ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ื•ื•ืึธืœืงืŸ ื•ื•ื™ื“ืขื ืกืขืจื•ื•ื™ื™ืœืึทื ืก ืกื™ืกื˜ืขืžืขืŸ, ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืคื•ืŸ ื•ื•ืึธืก ื”ืึธื‘ืŸ ืื™ื™ื ื’ืขื–ืขืŸ ื“ื™ ื ื•ื™ื˜ ืคึฟืึทืจ ืึท ืคื•ืœืฉื˜ืขื ื“ื™ืง ืœื™ื™ื–ื•ื ื’ ื ื™ื˜ ื‘ืœื•ื™ื– ืคึฟืึทืจ ืžืึธื ื™ื˜ืึธืจื™ื ื’, ืึธื‘ืขืจ ืื•ื™ืš ืคึฟืึทืจ ืึธื ืคื™ืจื•ื ื’ ื•ื•ื™ื™ึทื˜ ืึทื‘ื“ื–ืฉืขืงืฅ.

ืžื™ืจ ืคืึธืจืฉื˜ืขืœืŸ ืฆื• ื“ื™ื™ืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ื˜ ืึท ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ืจื™ื™ ืึทืจื˜ื™ืงืœืขืŸ, ื•ื•ืึธืก ื•ื•ืขื˜ ื–ืึธื’ืŸ ืื™ืจ ื•ื•ืขื’ืŸ ืึทืœืข ื“ื™ ื”ื•ื™ืคึผื˜ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคื•ืŸ ืึท ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื ืกื™ืกื˜ืขื, ืคึผืขืจืกื ืึทืœื™ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ื•ืจืš ื“ืขืจ ืžื—ื‘ืจ ืื•ืŸ ืฉื˜ืขืœืŸ ืื™ืŸ ืึธืคึผืขืจืึทืฆื™ืข. ื“ืขืจ ืขืจืฉื˜ืขืจ ืึทืจื˜ื™ืงืœ ืื™ื– ื“ืขื“ืึทืงื™ื™ื˜ืึทื“ ืฆื• ื“ื™ ื•ื•ืึธืงื–ืึทืœ ืงืœื™ืขื ื˜ ื•ื™ืกืจื™ื›ื˜ ืื™ื ืกื˜ืึทืœื™ืจืŸ ืื™ืŸ ืึท ืกืžืึทืจื˜ ื”ื™ื™ื, ื“ืขืจ ืฆื•ื•ื™ื™ื˜ืขืจ ืฆื• ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืคื•ืŸ ื“ื™ ื•ื•ืึธืœืงืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ืŸ ื“ืึทื˜ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืกื™ืกื˜ืขื, ืื•ืŸ ืœืขืกืึธืฃ ื“ื™ ื“ืจื™ื˜ ืฆื• ื“ื™ ืงืœื™ืขื ื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึฟืึทืจ ืึธื ืคื™ืจื•ื ื’ ื“ื™ ืกื™ืกื˜ืขื ืื•ื™ืฃ ืจื™ืจืขื•ื•ื“ื™ืง ืื•ืŸ ืกื˜ื™ื™ืฉืึทื ืขืจื™ ื“ืขื•ื•ื™ืกืขืก.

ืกืžืึทืจื˜ ื”ื™ื™ื ื•ื™ืกืจื™ื›ื˜

ืขืจืฉื˜ืขืจ, ืœืึธื–ืŸ ืก ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื•ื•ื™ ืฆื• ืžืึทื›ืŸ ืึท ืงืœื•ื’ ื”ื™ื™ื ืคื•ืŸ ืึท ืคึผืจืึธืกื˜ ื•ื•ื•ื™ื ื•ื ื’, ื“ืึทื˜ืฉืึท ืึธื“ืขืจ ื”ื™ื™ึทื–ืงืข. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ื•ื•ื™ ืึท ื”ืขืจืฉืŸ, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืฉื˜ืขืœืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื•ื™ืกืจื™ื›ื˜ ืื™ืŸ ื“ืขืจ ื”ื™ื™ื:

  1. ืกืขื ืกืึธืจืก ื•ื•ืึธืก ืžืขืกื˜ืŸ ืคืึทืจืฉื™ื“ืŸ ื™ื ื•ื•ื™ื™ืจืึทื ืžืขื ืึทืœ ืคึผืึทืจืึทืžืขื˜ืขืจืก;
  2. ืึทืงื˜ื•ื™ื™ื˜ืขืจื– ืึทืงื˜ื™ื ื’ ืื•ื™ืฃ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืึทื‘ื“ื–ืฉืขืงืฅ;
  3. ืึท ืงืึธื ื˜ืจืึธืœืœืขืจ ื•ื•ืึธืก ืคึผืขืจืคืึธืจืžื– ื—ืฉื‘ื•ื ื•ืช ืื™ืŸ ืœื•ื™ื˜ ืžื™ื˜ ืกืขื ืกืขืจ ืžืขื–ืฉืขืจืžืึทื ืฅ ืื•ืŸ ืขืžื‘ืขื“ื™ื“ ืœืึธื’ื™ืง, ืื•ืŸ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืงืึทืžืึทื ื“ื– ืฆื• ืึทืงื˜ื•ื™ื™ื˜ืขืจื–.

ื“ื™ ืคืืœื’ืขื ื“ืข ืคื™ื’ื•ืจ ื•ื•ื™ื™ื–ื˜ ืึท ื“ื™ืึทื’ืจืึทืžืข ืคื•ืŸ โ€‹โ€‹ืึท ืงืœื•ื’ ื”ื™ื™ื, ืื•ื™ืฃ ื•ื•ืึธืก ืขืก ื–ืขื ืขืŸ ืกืขื ืกืึธืจืก ืคึฟืึทืจ ื•ื•ืึทืกืขืจ ืœื™ืงืึทื“ื–ืฉ (1) ืื™ืŸ ื“ื™ ืงืœืึธื–ืขื˜, ื˜ืขืžืคึผืขืจืึทื˜ื•ืจ (2) ืื•ืŸ ืœื™ื™ื˜ื™ื ื’ (3) ืื™ืŸ ื“ื™ ืฉืœืึธืคืฆื™ืžืขืจ, ืึท ืงืœื•ื’ ื›ืึธืœืขืœ (4) ืื™ืŸ ื“ืขืจ ืงื™ืš ืื•ืŸ ืึท ื•ื•ื™ื“ืขื ืกืขืจื•ื•ื™ื™ืœืึทื ืก ืึทืคึผืึทืจืึทื˜ (5) ืื™ืŸ ื“ื™ ื›ืึธืœื•ื•ื™ื™.

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ื“ืขืจื•ื•ื™ื™ึทืœ, ื•ื•ื™ื™ืจืœื™ืก ืกืขื ืกืึธืจืก ืึทืคึผืขืจื™ื™ื˜ื™ื ื’ ืžื™ื˜ ื“ื™ RF433, Z-Wave, ZigBee, ื‘ืœื•ืขื˜ืึธืึธื˜ื” ืื•ืŸ WiFi ืคึผืจืึธื˜ืึธืงืึธืœืก ื–ืขื ืขืŸ ื•ื•ื™ื™ื“ืœื™ ื’ืขื ื™ืฆื˜. ื–ื™ื™ืขืจ ื”ื•ื™ืคึผื˜ ืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ื–ืขื ืขืŸ ื™ื– ืคื•ืŸ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’ ืื•ืŸ ื ื•ืฆืŸ, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื ื™ื“ืขืจื™ืง ืคึผืจื™ื™ึทื– ืื•ืŸ ืจื™ืœื™ื™ืึทื‘ื™ืœืึทื˜ื™, ื•ื•ื™ื™ึทืœ ืžืึทื ื™ืึทืคืึทืงื˜ืฉืขืจืขืจื– ื–ืขื ืขืŸ ืฉื˜ืจืขื‘ื•ื ื’ ืฆื• ื‘ืจืขื ื’ืขืŸ ื–ื™ื™ืขืจ ื“ืขื•ื•ื™ืกืขืก ืฆื• ื“ื™ ืžืึทืกืข ืžืึทืจืง ืื•ืŸ ืžืึทื›ืŸ ื–ื™ื™ ืฆื•ื˜ืจื™ื˜ืœืขืš ืคึฟืึทืจ ื“ื™ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ื‘ืึทื ื™ืฆืขืจ.

ืกืขื ืกืึธืจืก ืื•ืŸ ืึทืงื˜ื•ื™ื™ื˜ืขืจื–, ื•ื•ื™ ืึท ื”ืขืจืฉืŸ, ื–ืขื ืขืŸ ืคืืจื‘ื•ื ื“ืŸ ื“ื•ืจืš ืึท ื•ื•ื™ื™ืจืœื™ืก ืฆื•ื‘ื™ื ื“ ืฆื• ืึท ืงืœื•ื’ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ (6) - ืึท ืกืคึผืขืฉืึทืœื™ื™ื–ื“ ืžื™ืงืจืึธืงืึธืžืคึผื•ื˜ืขืจ ื•ื•ืึธืก ืงืึทืžื‘ื™ื™ื ื– ืึทืœืข ื“ื™ ื“ืขื•ื•ื™ืกืขืก ืื™ืŸ ืึท ืื™ื™ืŸ ื ืขืฅ ืื•ืŸ ืงืึธื ื˜ืจืึธืœ ื–ื™ื™.

ืึธื‘ืขืจ, ืขื˜ืœืขื›ืข ืกืึทืœื•ืฉืึทื ื– ืงืขื ืขืŸ ืคืึทืจื‘ื™ื ื“ืŸ ืึท ืกืขื ืกืขืจ, ืึท ืึทืงื˜ื•ืึทื˜ืึธืจ ืื•ืŸ ืึท ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืึท ืงืœื•ื’ ืฆืึทืคึผืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคึผืจืึธื•ื’ืจืึทืžื“ ืฆื• ืงืขืจ ืื•ื™ืฃ ืึธื“ืขืจ ืึทื•ื•ืขืง ืœื•ื™ื˜ ืึท ืคึผืœืึทืŸ, ืื•ืŸ ืึท ื•ื•ืึธืœืงืŸ ื•ื•ื™ื“ืขื ืกืขืจื•ื•ื™ื™ืœืึทื ืก ืึทืคึผืึทืจืึทื˜ ืงืขื ืขืŸ ืจืขืงืึธืจื“ื™ืจืŸ ื•ื•ื™ื“ืขื ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึท ื‘ืึทื•ื•ืขื’ื•ื ื’ ื“ืขื˜ืขืงื˜ืึธืจ ืกื™ื’ื ืึทืœ. ืื™ืŸ ื“ื™ ืกื™ืžืคึผืœืึทืกื˜ ืงืึทืกืขืก, ืื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ืึธืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืงืึธื ื˜ืจืึธืœืœืขืจ, ืึธื‘ืขืจ ืฆื• ืฉืึทืคึฟืŸ ืึท ืคืœืขืงืกืึทื‘ืึทืœ ืกื™ืกื˜ืขื ืžื™ื˜ ืคื™ืœืข ืกื™ื ืขืจื™ืึธื•ื–, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง.

ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ื“ื™ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ืฆื• ื“ื™ ื’ืœืื‘ืืœืข ื ืขืฅ, ืึท ืจืขื’ื•ืœืขืจ ืื™ื ื˜ืขืจื ืขื˜ ืจืึทื•ื˜ืขืจ (7) ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜, ื•ื•ืึธืก ืื™ื– ืœืึทื ื’ ื’ืขื•ื•ืืจืŸ ืึท ืคึผืจืึธืกื˜ ื”ื•ื™ื–ื’ืขื–ื™ื ื“ ืึทืคึผืคึผืœื™ืึทื ืกืข ืื™ืŸ ืงื™ื™ืŸ ื”ื™ื™ื. ื“ืึธ ืื™ื– ื ืึธืš ืึท ืึทืจื’ื•ืžืขื ื˜ ืื™ืŸ ื˜ื•ื™ื•ื•ืข ืคื•ืŸ โ€‹โ€‹ืึท ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ - ืื•ื™ื‘ ื“ื™ ืงืฉืจ ืฆื• ื“ื™ ืื™ื ื˜ืขืจื ืขื˜ ืื™ื– ืคืึทืจืคืึทืœืŸ, ื“ื™ ืงืœื•ื’ ื”ื™ื™ื ื•ื•ืขื˜ ืคืึธืจื–ืขืฆืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ ื•ื•ื™ ื ืึธืจืžืึทืœ ื“ืึทื ืง ืฆื• ื“ื™ ืœืึธื’ื™ืง ื‘ืœืึธืง ืกื˜ืึธืจื“ ืื™ืŸ ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ, ืื•ืŸ ื ื™ืฉื˜ ืื™ืŸ ื“ื™ ื•ื•ืึธืœืงืŸ ื“ื™ื ืกื˜.

ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ

ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ ืคึฟืึทืจ ื“ื™ ื•ื•ืึธืœืงืŸ ืงืœื•ื’ ื”ื™ื™ื ืกื™ืกื˜ืขื ื“ื™ืกืงืึทืกื˜ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึท ืื™ื™ืŸ-ื‘ืจืขื˜ ืžื™ืงืจืึธืงืึธืžืคึผื•ื˜ืขืจ Raspberry Pi 3 ืžืึธื“ืขืœ ื‘+, ื•ื•ืึธืก ืื™ื– ื‘ืืคืจื™ื™ื˜ ืื™ืŸ ืžืขืจืฅ 2018 ืื•ืŸ ื”ืื˜ ื’ืขื ื•ื’ ืจืขืกื•ืจืกืŸ ืื•ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคึฟืึทืจ ืกืžืึทืจื˜ ื”ื™ื™ื ื˜ืึทืกืงืก. ืขืก ื›ื•ืœืœ ืึท ืงื•ื•ืึทื“-ื”ืึทืจืฅ Cortex-A53 ืคึผืจืึทืกืขืกืขืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ 64-ื‘ื™ืกืœ ARMv8-A ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ืงืœืึทืงื˜ ื‘ื™ื™ 1.4 GHz, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ 1 ื’ื™ื’ืื‘ื™ื™ื˜ ืคื•ืŸ ื‘ืึทืจืึทืŸ, Wi-Fi 802.11ac, ื‘ืœื•ืขื˜ืึธืึธื˜ื” 4.2 ืื•ืŸ ืึท ื’ื™ื’ืึทื‘ื™ื˜ ืขื˜ื”ืขืจื ืขื˜ ืึทื“ืึทืคึผื˜ืขืจ ืึทืคึผืขืจื™ื™ื˜ื™ื ื’ ื“ื•ืจืš ื•ืกื‘ 2.0 .

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ืึทืกืขืžื‘ืึทืœ ื“ื™ ืงืึทื ื˜ืจืึธื•ืœืขืจ ืื™ื– ื–ื™ื™ืขืจ ืคึผืฉื•ื˜ - ื“ื™ ืžื™ืงืจืึธืงืึธืžืคึผื•ื˜ืขืจ (1) ืื™ื– ืื™ื ืกื˜ืึทืœื™ืจืŸ ืื™ืŸ ืึท ืคึผืœืึทืกื˜ื™ืง ืคืึทืœ (2), ืื•ืŸ ืึท 8 ื’ื™ื’ืื‘ื™ื™ื˜ ื–ื›ึผืจื•ืŸ ืงืึธืจื˜ ืื™ืŸ ืžื™ืงืจืึธืกื“ ืคึฟืึธืจืžืึทื˜ ืžื™ื˜ ื•ื•ื™ื™ื›ื•ื•ืืจื’ (3) ืื•ืŸ ืึท ื•ืกื‘ ื–-ื•ื•ืึทื•ื•ืข ื ืขืฅ ืงืึธื ื˜ืจืึธืœืœืขืจ (4) ื–ืขื ืขืŸ ืื™ื ืกื˜ืึทืœื™ืจืŸ ืื™ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืกืœืึธืฅ. ื“ื™ ืงืœื•ื’ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ื– ืคืืจื‘ื•ื ื“ืŸ ืฆื• ื“ื™ ืžืึทื›ื˜ ืฆื•ืฉื˜ืขืœืŸ ื“ื•ืจืš ืึท 5 ื•ื•, 2.1 ืึท ืžืึทื›ื˜ ืึทื“ืึทืคึผื˜ืขืจ (5) ืื•ืŸ ืึท ื•ืกื‘ - ืžื™ืงืจืึธ-ื•ืกื‘ ืงืึทื‘ืœืข (6). ื™ืขื“ืขืจ ืงืึธื ื˜ืจืึธืœืœืขืจ ื”ืื˜ ืึท ื™ื™ื ืฆื™ืง ืœืขื’ื™ื˜ื™ืžืึทืฆื™ืข ื ื•ืžืขืจ, ื•ื•ืึธืก ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืข ื•ื•ืขืŸ ืขืจืฉื˜ืขืจ ืœืึธื ื˜ืฉื˜ ืื•ืŸ ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื ื‘ืึทื“ื™ื ื•ื ื’ืก.

ื“ื™ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืคึฟืึทืจ ืงืœื•ื’ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ื•ืจืš ื“ืขืจ ืžื—ื‘ืจ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื Linux Raspbian Stretch. ืขืก ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื”ื•ื™ืคึผื˜ ืกืึทื‘ืกื™ืกื˜ืึทืžื–:

  • ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ืงืœื•ื’ ื”ื™ื™ื ื•ื™ืกืจื™ื›ื˜ ืื•ืŸ ื“ื™ ื•ื•ืึธืœืงืŸ;
  • ื’ืจืึทืคื™ืงืึทืœ ื‘ืึทื ื™ืฆืขืจ ืฆื•ื‘ื™ื ื“ ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื•ืŸ ืึทืคึผืขืจื™ื™ื˜ื™ื ื’ ืคึผืึทืจืึทืžืขื˜ืขืจืก ืคื•ืŸ ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ;
  • ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึฟืึทืจ ืกื˜ืึธืจื™ื ื’ ืงืึทื ื˜ืจืึธื•ืœืขืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ.

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

Database ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึทืŸ ืขืžื‘ืขื“ื™ื“ ื“ื‘ืžืก ืกืงืœื™ื˜ืข ืื•ืŸ ืื™ื– ืึท ื˜ืขืงืข ืื•ื™ืฃ ืึท ืกื“ ืงืึธืจื˜ ืžื™ื˜ ืกื™ืกื˜ืขื ื•ื•ื™ื™ื›ื•ื•ืืจื’. ืขืก ืกืขืจื•ื•ืขืก ื•ื•ื™ ืึท ืกื˜ืึธืจื™ื“ื–ืฉ ืคึฟืึทืจ ืงืึทื ื˜ืจืึธื•ืœืขืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ - ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ืงืึธื ื ืขืงื˜ืขื“ ื•ื™ืกืจื™ื›ื˜ ืื•ืŸ ื–ื™ื™ึทืŸ ืงืจืึทื ื˜ ืฉื˜ืึทื˜, ืึท ื‘ืœืึธืง ืคื•ืŸ ืœืึทื“ื–ืฉื™ืงืึทืœ ืคึผืจืึธื“ื•ืงืฆื™ืข ื›ึผืœืœื™ื, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืึธืก ืจื™ืงื•ื•ื™ื™ืขืจื– ื™ื ื“ืขืงืกื™ื ื’ (ืœืžืฉืœ, ื˜ืขืงืข ื ืขืžืขืŸ ืคื•ืŸ ืึท ื”ื™ื’ืข ื•ื•ื™ื“ืขื ืึทืจืงื™ื™ื•ื•). ื•ื•ืขืŸ ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ื– ืจืขื‘ืึธืึธื˜ืขื“, ื“ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ื– ื’ืขืจืื˜ืขื•ื•ืขื˜, ื•ื•ืึธืก ืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ื•ืžืงืขืจืŸ ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ืŸ ื“ื™ ื’ืขืฉืขืขื ื™ืฉ ืคื•ืŸ ืึท ืžืึทื›ื˜ ื“ื•ืจื›ืคืึทืœ.

GUI ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืื™ืŸ PHP 7 ืžื™ื˜ ืึท ืžื™ืงืจืึธืคืจืึทืžืขื•ื•ืึธืจืง ืฉืœืึทื ืง. ื“ืขืจ ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืคืœื™ืกื ื“ื™ืง ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืœื™ื’ื”ื˜ื˜ืคึผื“, ืึธืคื˜ ื’ืขื ื™ืฆื˜ ืื™ืŸ ืขืžื‘ืขื“ื™ื“ ื“ืขื•ื•ื™ืกืขืก ืจืขื›ื˜ ืฆื• ื–ื™ื™ึทืŸ ื’ื•ื˜ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื•ืŸ ื ื™ื“ืขืจื™ืง ืžื™ื˜ืœ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ.

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก
(ื“ืจื™ืงื˜ ืื•ื™ืฃ ื“ื™ ื‘ื™ืœื“ ืฆื• ืขืคืขื ืขืŸ ืขืก ืื™ืŸ ื”ืขื›ืขืจ ื”ืึทื›ืœืึธื˜ืข)

ื“ื™ ื”ื•ื™ืคึผื˜ ืคึฟื•ื ืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื’ืจืึทืคื™ืงืึทืœ ืฆื•ื‘ื™ื ื“ ืื™ื– ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืกืžืึทืจื˜ ื”ื™ื™ื ื•ื™ืกืจื™ื›ื˜ (IP ืกืขืจื•ื•ื™ื™ืœืึทื ืก ืงืึทืžืขืจืึทืก ืื•ืŸ ืกืขื ืกืึธืจืก) ืฆื• ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ. ื“ื™ ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืœื™ื™ืขื ื˜ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื•ืŸ ืงืจืึทื ื˜ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ื“ื™ื•ื•ื™ื™ืกืึทื– ืคืืจื‘ื•ื ื“ืŸ ืฆื• ืขืก ืคึฟื•ืŸ ื“ื™ SQLite ื“ืึทื˜ืึทื‘ื™ื™ืก. ืฆื• ื˜ื•ื™ืฉืŸ ื“ื™ ืงืึทื ื˜ืจืึธื•ืœืขืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืขืก ืกืขื ื“ื– ืงืึธื ื˜ืจืึธืœ ืงืึทืžืึทื ื“ื– ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜ ื“ื•ืจืš ื“ื™ RESTful API ืฆื•ื‘ื™ื ื“ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก.

ืกืขืจื•ื•ื™ืจืขืจ ืคึผืจืึธืฆืขืก

ืกืขืจื•ื•ื™ืจืขืจ ืคึผืจืึธืฆืขืก - ืึท ืฉืœื™ืกืœ ืงืึธืžืคึผืึธื ืขื ื˜ ื•ื•ืึธืก ืคึผืขืจืคืึธืจืžื– ืึทืœืข ื“ื™ ื”ื•ื™ืคึผื˜ ืึทืจื‘ืขื˜ ืื•ื™ืฃ ืึธื˜ืึทืžื™ื™ื˜ื™ื ื’ ื“ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืคึผืจืึทืกืขืกืึทื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื“ื™ ื™ืงืขืจ ืคื•ืŸ ืึท ืงืœื•ื’ ื”ื™ื™ื: ืจื™ืกื™ื•ื•ื™ื ื’ ืื•ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืกืขื ืกืขืจื™ ื“ืึทื˜ืŸ, ืึทืจื•ื™ืกื’ืขื‘ืŸ ืงืึธื ื˜ืจืึธืœ ืึทืงืฉืึทื ื– ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ืขืžื‘ืขื“ื™ื“ ืœืึธื’ื™ืง. ื“ืขืจ ืฆื™ืœ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก ืื™ื– ืฆื• ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ืกืžืึทืจื˜ ื”ื™ื™ื ื•ื™ืกืจื™ื›ื˜, ื•ื™ืกืคื™ืจืŸ ืœืึทื“ื–ืฉื™ืงืึทืœ ื›ึผืœืœื™ื ืคื•ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข, ื‘ืึทืงื•ืžืขืŸ ืื•ืŸ ืคึผืจืึธืฆืขืก ืงืึทืžืึทื ื“ื– ืคึฟื•ืŸ ื“ื™ ื’ืจืึทืคื™ืงืึทืœ ืฆื•ื‘ื™ื ื“ ืื•ืŸ ื“ื™ ื•ื•ืึธืœืงืŸ. ื“ืขืจ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก ืื™ืŸ ื“ื™ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ื ื˜ืขืจ ื‘ืึทื˜ืจืึทื›ื˜ื•ื ื’ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ื•ื•ื™ ืึท ืžื•ืœื˜ื™-ื˜ืจืขื“ื™ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืื™ืŸ C ++ ืื•ืŸ ืœืึธื ื˜ืฉื˜ ื•ื•ื™ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื“ื™ื ืกื˜ systemd ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ืœื™ื ื•ืงืก ืจืึทืกืคึผื‘ื™ืึทืŸ.

ื“ื™ ื”ื•ื™ืคึผื˜ ื‘ืœืึทืงืก ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก ื–ืขื ืขืŸ:

  1. ืึธื ื–ืึธื’ ืžืึทื ืึทื’ืขืจ;
  2. IP ืึทืคึผืึทืจืึทื˜ ืกืขืจื•ื•ืขืจ;
  3. ื–-ื•ื•ืึทื•ื•ืข ืžื™ื˜ืœ ืกืขืจื•ื•ืขืจ;
  4. ืกืขืจื•ื•ื™ืจืขืจ ืคื•ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข ืœืึทื“ื–ืฉื™ืงืึทืœ ื›ึผืœืœื™ื;
  5. ื“ืึทื˜ืึทื‘ืึทืกืข ืคื•ืŸ โ€‹โ€‹ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ื‘ืœืึธืง ืคื•ืŸ ืœืึทื“ื–ืฉื™ืงืึทืœ ื›ึผืœืœื™ื;
  6. RESTful API ืกืขืจื•ื•ืขืจ ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ื“ื™ ื’ืจืึทืคื™ืงืึทืœ ืฆื•ื‘ื™ื ื“;
  7. MQTT ืงืœื™ืขื ื˜ ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงื˜ื™ื ื’ ืžื™ื˜ ื“ื™ ื•ื•ืึธืœืงืŸ.

ืกืขืจื•ื•ื™ืจืขืจ ืคึผืจืึธืฆืขืก ื‘ืœืึทืงืก ื–ืขื ืขืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ื•ื•ื™ ื‘ืึทื–ื•ื ื“ืขืจ ืคึฟืขื“ืขื, ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืฆื•ื•ื™ืฉืŸ ื•ื•ืึธืก ืื™ื– ื˜ืจืึทื ืกืคืขืจื“ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึทืจื˜ื™ืงืœืขืŸ ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜ (ืึธื“ืขืจ ื“ืึทื˜ืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื– ืจืขืคึผืจื™ื–ืขื ื˜ื™ื ื’ ื“ืขื ืคึฟืึธืจืžืึทื˜ ืื™ืŸ ืคึผืจืึธืฆืขืก ื–ื›ึผืจื•ืŸ).

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ื“ืขืจ ื”ื•ื™ืคึผื˜ ืงืึธืžืคึผืึธื ืขื ื˜ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก ืื™ื– ืึธื ื–ืึธื’ ืคืึทืจื•ื•ืึทืœื˜ืขืจ, ื•ื•ืึธืก ืจื•ืฅ JSON ืึทืจื˜ื™ืงืœืขืŸ ืฆื• ืึทืœืข ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก ื‘ืœืึทืงืก. ื“ื™ ื˜ื™ื™ืคึผืก ืคื•ืŸ JSON ืึธื ื–ืึธื’ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืคืขืœื“ืขืจ ืื•ืŸ ื“ื™ ื•ื•ืึทืœื•ืขืก ื–ื™ื™ ืงืขื ืขืŸ ืึธื ื ืขืžืขืŸ ื–ืขื ืขืŸ ืœื™ืกื˜ืขื“ ืื™ืŸ ื“ื™ ื˜ื™ืฉ:

deviceType
ืคึผืจืึธื˜ืึธืงืึธืœ
messageType
deviceState
ื‘ืึทืคืขืœ

ืึทืคึผืึทืจืึทื˜
onvif
sensorData
on
ืกื˜ืจื™ืžื™ื ื’ (ืื•ื™ืฃ / ืึทื•ื•ืขืง)

ืกืขื ืกืขืจ
zwave
ื‘ืึทืคืขืœ
ืึทื•ื•ืขืง
ืจืขืงืึธืจื“ื™ื ื’ (ืื•ื™ืฃ / ืึทื•ื•ืขืง)

ืขืคืคืขืงื˜ืึธืจ
ืžืงื˜ื˜
businessLogicRule
ืกื˜ืจื™ืžื™ื ื’ (ืื•ื™ืฃ / ืึทื•ื•ืขืง)
evice (ืœื™ื™ื’ / ืึทืจืึธืคึผื ืขืžืขืŸ)

BusinessLogic
ืงืึธื ืคื™ื’ื•ืจืึทื˜ื™ืึธืŸ ื“ืึทื˜ืึท
ืจืขืงืึธืจื“ื™ื ื’ (ืื•ื™ืฃ / ืึทื•ื•ืขืง)

ื‘ืœื•ืขื˜ืึธืึธื˜ื”
deviceState
ื’ืจื™ื™ึทื–

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 ืึทืคึผืึทืจืึทื˜ ืกืขืจื•ื•ืขืจ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืงืึทืžืึทื ื“ื– ืคื•ืŸ ื“ื™ GUI ืื•ืŸ ื“ื™ ื•ื•ืึธืœืงืŸ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœื™ื™ื’ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื”ืขืจืฉืŸ:

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

ืื•ื™ื‘ ื“ื™ ื‘ืื“ื™ื ื’ื•ื ื’ืขืŸ ืกืคึผืขืกื™ืคื™ืขื“ ืื™ืŸ ืึทื ื˜ืขื“ืขื ื˜ (ืœื™ื ืงืก ื–ื™ื™ื˜) ื“ื™ ื›ืœืœื™ื ื–ืขื ืขืŸ ืืžืช, ื“ืืŸ ืื™ื– ืขืก ืฆื•ืคึฟืจื™ื“ืŸ ืงืึธื ืกืขืงื•ื•ืขื ื˜ (ืจืขื›ื˜ ื–ื™ื™ึทื˜) ื›ึผืœืœื™ื, ืื•ืŸ ื“ืขืจ ื”ืึทื ื“ืœืขืจ ื’ืขืฅ ืึทืงืกืขืก ืฆื• ื“ื™ ื’ื•ืฃ ืคื•ืŸ ื“ื™ JSON ืึธื ื–ืึธื’. ื“ืขืจ ืึทื ื˜ื™ืกืขื“ืขื ื˜ ืฉื˜ื™ืฆื˜ ืœืึทื“ื–ืฉื™ืงืึทืœ ืึธืคึผืขืจื™ื™ื˜ืขืจื– ื•ื•ืึธืก ืคืึทืจื’ืœื™ื™ึทื›ืŸ JSON ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืคึผืขืจื–:

  1. ื’ืœื™ื™ืš "ื’ืœื™ื™ึทืš";
  2. ื ื™ื˜ ื’ืœื™ื™ึทืš ืฆื• "ื ื™ื˜_ื™ืงื•ื•ืึทืœ";
  3. ื•ื•ื™ื™ื ื™ืงืขืจ "ื•ื•ื™ื™ื ื™ืงืขืจ";
  4. ืžืขืจ "ื’ืจืขืกืขืจ";
  5. ื•ื•ื™ื™ื ื™ืงืขืจ ื•ื•ื™ ืึธื“ืขืจ ื’ืœื™ื™ึทืš ืฆื• "less_or_equal";
  6. ื’ืจืขืกืขืจ ื•ื•ื™ ืึธื“ืขืจ ื’ืœื™ื™ึทืš ืฆื• "ื’ืจืขืกืขืจ_ืึธื“ืขืจ_ื™ืงื•ื•ืึทืœ".

ื“ื™ ืคืึทืจื’ืœื™ื™ึทืš ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืฉื™ื™ึทื›ื•ืช ืฆื• ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ ื ื™ืฆืŸ ื‘ืึธืึธืœืขืึทืŸ ืึทืœื’ืขื‘ืจืึท ืึธืคึผืขืจื™ื™ื˜ืขืจื–:

  1. ืื•ืŸ "ืื•ืŸ"
  2. ืึธื“ืขืจ "ืึธื“ืขืจ";
  3. ื ื™ืฉื˜ "ื ื™ืฉื˜".

ืื–ื•ื™, ื“ื•ืจืš ืฉืจื™ื™ื‘ืŸ ืึธืคึผืขืจื™ื™ื˜ืขืจื– ืื•ืŸ ืึธืคึผืขืจืึทื ื“ื– ืื™ืŸ ืคื•ื™ืœื™ืฉ ื ืึธื•ื˜ื™ื™ืฉืึทืŸ, ืื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ื’ืึทื ืฅ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ื˜ื ืึธื™ื ืžื™ื˜ ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ืคึผืึทืจืึทืžืขื˜ืขืจืก.

ืคึผื•ื ืงื˜ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืžืขืงืึทื ื™ื–ืึทื, ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ JSON ืึทืจื˜ื™ืงืœืขืŸ ืื•ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข ื›ึผืœืœื™ื ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜, ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ ืคึผืจืึธื“ื•ืงืฆื™ืข ืœืึธื’ื™ืง ืกืขืจื•ื•ืขืจ ื‘ืœืึธืง ืฆื• ืคืึธืจืฉื˜ืขืœืŸ ื•ื•ื™ืกืŸ ืื•ืŸ ื“ื•ืจื›ืคื™ืจืŸ ืœืึทื“ื–ืฉื™ืงืึทืœ ื™ื ืคืขืจืึทื ืก ื ื™ืฆืŸ ืกืขื ืกืขืจื™ ื“ืึทื˜ืŸ ืคื•ืŸ ืกืžืึทืจื˜ ื”ื™ื™ื ืกืขื ืกืึธืจืก.

ื ื™ืฆืŸ ืึท ืจื™ืจืขื•ื•ื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืจื™ื™ื™ืฅ ืกื™ื ืขืจื™ืึธื•ื– ืœื•ื™ื˜ ื•ื•ืึธืก ื“ื™ ืงืœื•ื’ ื”ื™ื™ื ื–ืึธืœ ืคื•ื ืงืฆื™ืึธื ื™ืจืŸ. ืœืžืฉืœ: "ืื•ื™ื‘ ื“ื™ ืกืขื ืกืขืจ ืคึฟืึทืจ ืขืคืŸ ื“ื™ ืคืจืึธื ื˜ ื˜ื™ืจ ืื™ื– ื˜ืจื™ื’ืขืจื“, ืงืขืจ ืื•ื™ืฃ ื“ื™ ืœื™ื›ื˜ ืื™ืŸ ื“ื™ ื›ืึธืœื•ื•ื™ื™.". ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืœื™ื™ืขื ื˜ ื“ื™ ื™ื“ืขื ื˜ื™ืคื™ืขืจืก ืคื•ืŸ ืกืขื ืกืึธืจืก (ืขืคืŸ ืกืขื ืกืขืจ) ืื•ืŸ ืึทืงื˜ื•ื™ื™ื˜ืขืจื– (ืงืœื•ื’ ื›ืึธืœืขืœ ืึธื“ืขืจ ืงืœื•ื’ ืœืึธืžืคึผ) ืคึฟื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื•ืŸ ื“ื–ืฉืขื ืขืจื™ื™ืฅ ืึท ืœืึทื“ื–ืฉื™ืงืึทืœ ื”ืขืจืฉืŸ ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜, ื•ื•ืึธืก ืื™ื– ื’ืขืฉื™ืงื˜ ืฆื• ื“ื™ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ. ื“ืขื ืžืขืงืึทื ื™ื–ืึทื ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ืกืงืึทืกื˜ ืื™ืŸ ืžืขืจ ื“ืขื˜ืึทืœ ืื™ืŸ ื“ื™ ื“ืจื™ื˜ ืึทืจื˜ื™ืงืœ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืกืขืจื™ืข, ื•ื•ื• ืžื™ืจ ื•ื•ืขืœืŸ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืงืœื™ืขื ื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึฟืึทืจ ืึธื ืคื™ืจื•ื ื’ ืึท ืงืœื•ื’ ื”ื™ื™ื.

ื“ื™ ืคึผืจืึธื“ื•ืงืฆื™ืข ืœืึธื’ื™ืง ืžืขืงืึทื ื™ื–ืึทื ื“ื™ืกืงืึทืกื˜ ืื•ื™ื‘ืŸ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ื ื™ืฆืŸ ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง RapidJSON - SAX ืคึผืึทืจืกืขืจ ืคึฟืึทืจ JSON ืคึฟืึธืจืžืึทื˜ ืื™ืŸ C ++. ืกืึทืงื•ื•ืขื ื˜ืฉืึทืœ ืœื™ื™ืขื ืขืŸ ืื•ืŸ ืคึผืึทืจืกื™ื ื’ ืคื•ืŸ ืึท ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืคึผืจืึธื“ื•ืงืฆื™ืข ื›ึผืœืœื™ื ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืœื™ื™ื›ื˜ ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ ื“ืึทื˜ืŸ ืคืึทืจื’ืœื™ื™ึทืš ืคื•ื ืงืฆื™ืึธื ื™ืจืŸ ืื™ืŸ ืึทื ื˜ื™ืกืึทื“ืึทื ืฅ:

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 ืึธื ื–ืึธื’, ืž_ืจื•ืœืขืก - ืฉื˜ืจื™ืงืœ ืžืขื ื’ืข ืคื•ืŸ โ€‹โ€‹ืคึผืจืึธื“ื•ืงืฆื™ืข ื›ึผืœืœื™ื. ื“ืขืจ ืคืึทืจื’ืœื™ื™ึทืš ืคื•ืŸ ื“ื™ ื™ื ืงืึทืžื™ื ื’ ืึธื ื–ืึธื’ ืื•ืŸ ื“ื™ ืคึผืจืึธื“ื•ืงืฆื™ืข ื”ืขืจืฉืŸ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื™ืŸ ื“ื™ ืคื•ื ืงืฆื™ืข reader.Parse(ruleStream, ruleHandler)ื•ื•ื• ruleHandler ืื™ื– ืึท ื›ื™ื™ืคืขืฅ ืžื™ื˜ ื“ื™ ืœืึธื’ื™ืง ืคื•ืŸ ื‘ืึธืึธืœืขืึทืŸ ืื•ืŸ ืคืึทืจื’ืœื™ื™ึทืš ืึธืคึผืขืจื™ื™ื˜ืขืจื–. sRuleId - ืึท ื™ื™ื ืฆื™ืง ื”ืขืจืฉืŸ ื™ื“ืขื ื˜ื™ืคื™ืขืจ, ื“ืึทื ืง ืฆื• ื•ื•ืึธืก ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืงืจืึธื ืื•ืŸ ืจืขื“ืึทื’ื™ืจืŸ ื›ึผืœืœื™ื ืื™ืŸ ื“ื™ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืก. ืž_ืคึผืึทืงื˜ื™ืึธื ืก - ืึท ืžืขื ื’ืข ืžื™ื˜ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ ืœืึทื“ื–ืฉื™ืงืึทืœ ื™ื ืคืขืจืึทื ืก: JSON ืึทืจื˜ื™ืงืœืขืŸ ืžื™ื˜ ืงืึธื ืกืขืงื•ื•ืขื ืฅ ืคื•ืŸ ื“ื™ ื”ืขืจืฉืŸ ื‘ืึทื–ืข ืื•ืŸ ื’ืขืฉื™ืงื˜ ื•ื•ื™ื™ึทื˜ืขืจ ืฆื• ื“ืขืจ ืึธื ื–ืึธื’ ืคืึทืจื•ื•ืึทืœื˜ืขืจ ืึทื–ื•ื™ ืึทื– ืึทื‘ืึธื ืขื ื˜ ืคึฟืขื“ืขื ืงืขื ืขืŸ ืคึผืจืึธืฆืขืก ื–ื™ื™.

ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ RapidJSON ืื™ื– ืคืึทืจื’ืœื™ื™ึทื›ืœืขืš ืžื™ื˜ ื“ื™ ืคื•ื ืงืฆื™ืข ืกื˜ืจืœืขืŸ (), ืื•ืŸ ื“ื™ ืžื™ื ื™ืžื•ื ืกื™ืกื˜ืขื ืžื™ื˜ืœ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ืœืึธื–ืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ืขื ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ืŸ ืขืžื‘ืขื“ื™ื“ ื“ืขื•ื•ื™ืกืขืก. ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืึทืจื˜ื™ืงืœืขืŸ ืื•ืŸ ืœืึทื“ื–ืฉื™ืงืึทืœ ื›ึผืœืœื™ื ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึท ืคืœืขืงืกืึทื‘ืึทืœ ืกื™ืกื˜ืขื ืคื•ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขืงืกืœ ืฆื•ื•ื™ืฉืŸ ืึทืœืข ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคื•ืŸ ื“ื™ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ.

ื–-ื•ื•ืึทื•ื•ืข ืกืขื ืกืึธืจืก ืื•ืŸ ืึทืงื˜ื•ื™ื™ื˜ืขืจื–

ื“ืขืจ ื”ื•ื™ืคึผื˜ ืžื™ื™ึทืœืข ืคื•ืŸ โ€‹โ€‹ืึท ืงืœื•ื’ ื”ื™ื™ื ืื™ื– ืึทื– ืขืก ืงืขื ืขืŸ ื™ื ื“ื™ืคึผืขื ื“ืึทื ื˜ืœื™ ืžืขืกื˜ืŸ ืคืึทืจืฉื™ื“ืŸ ืคึผืึทืจืึทืžืขื˜ืขืจืก ืคื•ืŸ ื“ื™ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืกื•ื•ื™ื•ื•ืข ืื•ืŸ ื“ื•ืจื›ืคื™ืจืŸ ื ื•ืฆื™ืง ืคืึทื ื’ืงืฉืึทื ื– ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ืกื™ื˜ื•ืึทืฆื™ืข. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืกืขื ืกืึธืจืก ืื•ืŸ ืึทืงื˜ื•ื™ื™ื˜ืขืจื– ื–ืขื ืขืŸ ืงืึธื ื ืขืงื˜ืขื“ ืฆื• ื“ื™ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ. ืื™ืŸ ื“ื™ ืงืจืึทื ื˜ ื•ื•ืขืจืกื™ืข, ื“ืึธืก ื–ืขื ืขืŸ ื•ื•ื™ื™ืจืœื™ืก ื“ืขื•ื•ื™ืกืขืก ื•ื•ืึธืก ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ืขื ืคึผืจืึธื˜ืึธืงืึธืœ ื–-ื•ื•ืึทื•ื•ืข ืื•ื™ืฃ ืึท ืกืคึผืขืฆื™ืขืœ ืึทืœืึทืงื™ื™ื˜ื™ื“ ืึธืคื˜ืงื™ื™ึทื˜ 869 ืžื”ื– ืคึฟืึทืจ ืจื•ืกืœืึทื ื“. ืฆื• ืึทืจื‘ืขื˜ืŸ, ื–ื™ื™ ื–ืขื ืขืŸ ืงืึทืžื‘ื™ื™ื ื“ ืื™ืŸ ืึท ืžืขืฉ ื ืขืฅ, ื•ื•ืึธืก ื›ึผื•ืœืœ ืกื™ื’ื ืึทืœ ืจื™ืคึผื™ื˜ืขืจื– ืฆื• ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ืงืึทื•ื•ืขืจื™ื“ื–ืฉ ื’ืขื’ื ื˜. ื“ื™ ื“ืขื•ื•ื™ืกืขืก ืื•ื™ืš ื”ืึธื‘ืŸ ืึท ืกืคึผืขืฆื™ืขืœ ืขื ืขืจื’ื™ืข ืฉืคึผืึธืจืŸ ืžืึธื“ืข - ื–ื™ื™ ืคืึทืจื‘ืจืขื ื’ืขืŸ ืจื•ื‘ึฟ ืคื•ืŸ ื“ื™ ืฆื™ื™ื˜ ืื™ืŸ ืฉืœืึธืคืŸ ืžืึธื“ืข ืื•ืŸ ืฉื™ืงืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื‘ืœื•ื™ื– ื•ื•ืขืŸ ื–ื™ื™ืขืจ ืฉื˜ืึทื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ, ื•ื•ืึธืก ืงืขื ืขืŸ ื‘ืื˜ื™ื™ื˜ื™ืง ืคืึทืจื‘ืจื™ื™ื˜ืขืจืŸ ื“ื™ ืœืขื‘ืŸ ืคื•ืŸ ื“ื™ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ื‘ืึทื˜ืึทืจื™ื™ืข.

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ืื™ืจ ืงืขื ืขืŸ ืื™ืฆื˜ ื’ืขืคึฟื™ื ืขืŸ ืึท ืคืขืจืœื™ ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข Z-Wave ื“ืขื•ื•ื™ืกืขืก ืื•ื™ืฃ ื“ืขื ืžืึทืจืง. ืœืึธืžื™ืจ ื ืขืžืขืŸ ืึท ืงื•ืง ืื™ืŸ ืขื˜ืœืขื›ืข ื‘ื™ื™ืฉืคื™ืœืŸ:

  1. ื“ื™ Zipato PAN16 ืงืœื•ื’ ื›ืึธืœืขืœ ืงืขื ืขืŸ ืžืขืกื˜ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืคึผืึทืจืึทืžืขื˜ืขืจืก: ืขืœืขืงื˜ืจืข ืงืึทื ืกืึทืžืฉืึทืŸ (ืงื•ื•ื”), ืžืึทื›ื˜ (ื•ื•), ื•ื•ืึธื•ืœื˜ื™ื“ื–ืฉ (V) ืื•ืŸ ืงืจืึทื ื˜ (ื) ืื™ืŸ ื“ื™ ืขืœืขืงื˜ืจื™ืงืึทืœ ื ืขืฅ. ืขืก ืื•ื™ืš ื”ืื˜ ืึท ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ื‘ืึทืฉื˜ื™ืžืขืŸ ืžื™ื˜ ื•ื•ืึธืก ืื™ืจ ืงืขื ืขืŸ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืคืืจื‘ื•ื ื“ืŸ ืขืœืขืงื˜ืจื™ืงืึทืœ ืึทืคึผืคึผืœื™ืึทื ืกืข;
  2. ื“ื™ ื ืขืึธ ืงืึธืึธืœืงืึทื ืจื™ื ืขืŸ ืกืขื ืกืขืจ ื“ื™ื˜ืขืงืฅ ื“ื™ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืกืคึผื™ืœื“ ืคืœื™ืกื™ืง ื“ื•ืจืš ืงืœืึธื•ื–ื™ื ื’ ื“ื™ ืงืึธื ื˜ืึทืงื˜ืŸ ืคื•ืŸ ื“ื™ ื•ื•ื™ื™ึทื˜ ื–ืึธื ื“;
  3. ื“ื™ Zipato PH-PSG01 ืจื•ื™ืš ืกืขื ืกืขืจ ืื™ื– ื˜ืจื™ื’ืขืจื“ ื•ื•ืขืŸ ืจื•ื™ืš ืคึผืึทืจื˜ื™ืงืึทืœื– ืึทืจื™ื™ึทืŸ ื“ื™ ื’ืึทื– ืึทื ืึทืœื™ื–ืขืจ ืงืึทืžืขืจ;
  4. ื“ื™ ื ืขืึธ ืงืึธืึธืœืงืึทื ื‘ืึทื•ื•ืขื’ื•ื ื’ ืกืขื ืกืขืจ ืึทื ืึทืœื™ื–ืขืก ื“ื™ ื™ื ืคืจืขืจืขื“ ืจืึทื“ื™ืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ืขื ืžืขื ื˜ืฉ ื’ื•ืฃ. ืื™ืŸ ื“ืขืจืฆื•, ืขืก ืื™ื– ืึท ืœื™ื›ื˜ ืกืขื ืกืขืจ (Lx);
  5. ืžื•ืœื˜ื™ืกืขื ืกืึธืจ Philio PST02-A ืžื™ื˜ืœืขืŸ ื˜ืขืžืคึผืขืจืึทื˜ื•ืจ (ยฐC), ืœื™ื›ื˜ (%), ื˜ื™ืจ ืขืคืŸ, ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืึท ืžืขื ื˜ืฉ ืื™ืŸ ื“ื™ ืฆื™ืžืขืจ;
  6. Z-Wave USB Stick ZME E UZB1 ื ืขืฅ ืงืึธื ื˜ืจืึธืœืœืขืจ, ืฆื• ื•ื•ืึธืก ืกืขื ืกืึธืจืก ื–ืขื ืขืŸ ืงืึธื ื ืขืงื˜ืขื“.

ืขืก ืื™ื– ื–ื™ื™ืขืจ ื•ื•ื™ื›ื˜ื™ืง ืึทื– ื“ื™ ื“ืขื•ื•ื™ืกืขืก ืื•ืŸ ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ ืึทืจื‘ืขื˜ืŸ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืึธืคื˜ืงื™ื™ึทื˜, ืึทื ื“ืขืจืฉ ื–ื™ื™ ื•ื•ืขืœืŸ ื ื™ืฉื˜ ื–ืขืŸ ื™ืขื“ืขืจ ืื ื“ืขืจืข ืื™ืŸ ื“ืขื ืžืึธืžืขื ื˜ ืคื•ืŸ ืงืฉืจ. ืึทืจื•ื™ืฃ ืฆื• 232 ื“ืขื•ื•ื™ืกืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืงืึธื ื ืขืงื˜ืขื“ ืฆื• ืื™ื™ืŸ ื–-ื•ื•ืึทื•ื•ืข ื ืขืฅ ืงืึธื ื˜ืจืึธืœืœืขืจ, ื•ื•ืึธืก ืื™ื– ื’ืึทื ืฅ ื’ืขื ื•ื’ ืคึฟืึทืจ ืึท ื•ื•ื•ื™ื ื•ื ื’ ืึธื“ืขืจ ืึท ืœืึทื ื“ ื”ื•ื™ื–. ืฆื• ื™ืงืกืคึผืึทื ื“ ื“ื™ ื ืขืฅ ืงืึทื•ื•ืขืจื™ื“ื–ืฉ ื’ืขื’ื ื˜ ื™ื ืขื•ื•ื™ื™ื ื™ืง, ืึท ืงืœื•ื’ ื›ืึธืœืขืœ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื•ื•ื™ ืึท ืกื™ื’ื ืึทืœ ืจืขืคึผืขืึทื˜ืขืจ.

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ืื™ืŸ ื“ื™ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก ื“ื™ืกืงืึทืกื˜ ืื™ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืคึผืึทืจืึทื’ืจืึทืฃ, ื“ื™ Z-Wave ืกืขืจื•ื•ืขืจ ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงื˜ื™ื ื’ ืžื™ื˜ Z-Wave ื“ืขื•ื•ื™ืกืขืก. ืขืก ื ื™ืฆื˜ ืึท ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืฆื• ื‘ืึทืงื•ืžืขืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืกืขื ืกืึธืจืก OpenZWave ืื™ืŸ C ++, ื•ื•ืึธืก ื’ื™ื˜ ืึท ืฆื•ื‘ื™ื ื“ ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงื˜ื™ื ื’ ืžื™ื˜ ื“ื™ 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 ืกืขืจื•ื•ืขืจ, ื•ื•ืึธืก ื“ืขืงืึธื“ืขืก ื–ื™ื™ ืื•ืŸ ืกืขื ื“ื– ื–ื™ื™ ืฆื• ื“ื™ Z-Wave ื ืขืฅ ื•ืกื‘ ืงืึธื ื˜ืจืึธืœืœืขืจ. ื“ืขืจื ืึธืš ื–ื™ื™ ืึทืจื™ื™ึทืŸ ื“ื™ ืึทืงื˜ื•ืึทื˜ืึธืจ, ื•ื•ืึธืก ืขื ื“ืขืจื•ื ื’ืขืŸ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ื™ื ื•ื•ื™ื™ืจืึทื ืžืขื ืึทืœ ืึทื‘ื“ื–ืฉืขืงืฅ, ืื•ืŸ ื“ื™ ืงืœื•ื’ ื”ื™ื™ื ืึทื–ื•ื™ ืคึผืขืจืคืึธืจืžื– ื ื•ืฆื™ืง ืึทืจื‘ืขื˜.

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก
(ื“ืจื™ืงื˜ ืื•ื™ืฃ ื“ื™ ื‘ื™ืœื“ ืฆื• ืขืคืขื ืขืŸ ืขืก ืื™ืŸ ื”ืขื›ืขืจ ื”ืึทื›ืœืึธื˜ืข)

ืงืึทื ืขืงื˜ื™ื ื’ Z-Wave ื“ืขื•ื•ื™ืกืขืก ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื™ืŸ ื“ื™ ื’ืจืึทืคื™ืงืึทืœ ืฆื•ื‘ื™ื ื“ ืคื•ืŸ ื“ื™ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ื’ื™ื™ืŸ ืฆื• ื“ื™ ื‘ืœืึทื˜ ืžื™ื˜ ืึท ืจืฉื™ืžื” ืคื•ืŸ ื“ืขื•ื•ื™ืกืขืก ืื•ืŸ ื’ื™ื˜ ื“ื™ "ืœื™ื™ื’" ืงื ืขืคึผืœ. ื“ื™ ืœื™ื™ื’ ื‘ืึทืคึฟืขืœ ื“ื•ืจืš ื“ื™ RESTful API ืฆื•ื‘ื™ื ื“ ื’ื™ื™ื˜ ืืจื™ื™ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก ืื•ืŸ ืื™ื– ื’ืขืฉื™ืงื˜ ื“ื•ืจืš ื“ื™ ืึธื ื–ืึธื’ ืคืึทืจื•ื•ืึทืœื˜ืขืจ ืฆื• ื“ื™ Z-Wave ืกืขืจื•ื•ืขืจ, ื•ื•ืึธืก ืฉื˜ืขืœืŸ ื“ื™ Z-Wave ื ืขืฅ ื•ืกื‘ ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ืŸ ืึท ืกืคึผืขืฆื™ืขืœ ืžืึธื“ืข ืคึฟืึทืจ ืึทื“ื™ื ื’ ื“ืขื•ื•ื™ืกืขืก. ื“ืขืจื ืึธืš, ืื•ื™ืฃ ื“ื™ Z-Wave ืžื™ื˜ืœ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืžืึทื›ืŸ ืึท ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ืฉื ืขืœ ืคึผืจืขืกืขืก (3 ื“ืจื™ืงื˜ ืื™ืŸ 1,5 ืกืขืงื•ื ื“ืขืก) ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ื™ืก ืงื ืขืคึผืœ. ื“ื™ ื•ืกื‘ ืงืึธื ื˜ืจืึธืœืœืขืจ ืงืึทื ืขืงืฅ ื“ื™ ืžื™ื˜ืœ ืฆื• ื“ื™ ื ืขืฅ ืื•ืŸ ืกืขื ื“ื– ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืขืก ืฆื• ื“ื™ Z-Wave ืกืขืจื•ื•ืขืจ. ื“ืึธืก, ืื™ืŸ ืงืขืจ, ืงืจื™ื™ื™ืฅ ืึท ื ื™ื™ึทืข ืคึผืึธื–ื™ืฆื™ืข ืื™ืŸ ื“ื™ SQLite ื“ืึทื˜ืึทื‘ื™ื™ืก ืžื™ื˜ ื“ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก ืคื•ืŸ ื“ื™ ื ื™ื™ึทืข ืžื™ื˜ืœ. ื ืึธืš ืึท ืกืคึผืขืกื™ืคื™ืขื“ ืฆื™ื™ื˜ ืžืขื”ืึทืœืขืš, ื“ื™ ื’ืจืึทืคื™ืงืึทืœ ืฆื•ื‘ื™ื ื“ ืงืขืจื˜ ืฆื• ื“ื™ Z-Wave ืžื™ื˜ืœ ืจืฉื™ืžื” ื‘ืœืึทื˜, ืœื™ื™ืขื ื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื•ืŸ ื“ื™ืกืคึผืœื™ื™ื– ื“ื™ ื ื™ื™ึทืข ืžื™ื˜ืœ ืื™ืŸ ื“ืขืจ ืจืฉื™ืžื”. ื™ืขื“ืขืจ ืžื™ื˜ืœ ื‘ืืงื•ืžื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื™ื™ื ืฆื™ืง ื™ื“ืขื ื˜ื™ืคื™ืขืจ, ื•ื•ืึธืก ืื™ื– ื’ืขื ื•ืฆื˜ ืื™ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข ืื™ื ืคื™ืจืึทื ืก ื›ึผืœืœื™ื ืื•ืŸ ื•ื•ืขืŸ ืืจื‘ืขื˜ืŸ ืื™ืŸ ื“ื™ ื•ื•ืึธืœืงืŸ. ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ืขื ืึทืœื’ืขืจื™ื“ืึทื ืื™ื– ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ UML ื“ื™ืึทื’ืจืึทืžืข:

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก
(ื“ืจื™ืงื˜ ืื•ื™ืฃ ื“ื™ ื‘ื™ืœื“ ืฆื• ืขืคืขื ืขืŸ ืขืก ืื™ืŸ ื”ืขื›ืขืจ ื”ืึทื›ืœืึธื˜ืข)

ืงืึทื ืขืงื˜ื™ื ื’ IP ืงืึทืžืขืจืึทืก

ื“ื™ ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื ืกื™ืกื˜ืขื ื“ื™ืกืงืึทืกื˜ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ื– ืึท ืึทืคึผื’ืจื™ื™ื“ ืคื•ืŸ ื“ื™ ื•ื•ืึธืœืงืŸ ื•ื•ื™ื“ืขื ืกืขืจื•ื•ื™ื™ืœืึทื ืก ืกื™ืกื˜ืขื, ืื•ื™ืš ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ื•ืจืš ื“ืขืจ ืžื—ื‘ืจ, ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ืื•ื™ืฃ ื“ื™ ืžืึทืจืง ืคึฟืึทืจ ืขื˜ืœืขื›ืข ื™ืึธืจืŸ ืื•ืŸ ื”ืื˜ ืคื™ืœืข ื™ื ืกื˜ืึทืœื™ื™ืฉืึทื ื– ืื™ืŸ ืจื•ืกืœืึทื ื“.

ืคึฟืึทืจ ื•ื•ืึธืœืงืŸ ื•ื•ื™ื“ืขื ืกืขืจื•ื•ื™ื™ืœืึทื ืก ืกื™ืกื˜ืขืžืขืŸ, ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืึทืงื•ื˜ืข ืคึผืจืึธื‘ืœืขืžืก ืื™ื– ื“ื™ ืœื™ืžื™ื˜ืขื“ ืกืขืœืขืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืขืงื•ื•ื™ืคึผืžืขื ื˜ ืžื™ื˜ ื•ื•ืึธืก ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜. ื“ื™ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืงืึทื ืขืงื˜ื™ื ื’ ืฆื• ื“ื™ ื•ื•ืึธืœืงืŸ ืื™ื– ืื™ื ืกื˜ืึทืœื™ืจืŸ ื™ืŸ ื“ื™ ื•ื•ื™ื“ืขื ืึทืคึผืึทืจืึทื˜, ื•ื•ืึธืก ื’ืœื™ื™ืš ืฉื˜ืขืœื˜ ืขืจื ืกื˜ ืคืื“ืขืจื•ื ื’ืขืŸ ืื•ื™ืฃ ื–ื™ื™ึทืŸ ื™ื™ึทื–ื ื•ื•ืึทืจื’ - ื“ื™ ืคึผืจืึทืกืขืกืขืจ ืื•ืŸ ื“ื™ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ืคืจื™ื™ ื–ื›ึผืจื•ืŸ. ื“ืึธืก ื“ืขืจ ื”ื•ื™ืคึผื˜ ื“ืขืจืงืœืขืจื˜ ื“ื™ ื”ืขื›ืขืจ ืคึผืจื™ื™ึทื– ืคื•ืŸ ื•ื•ืึธืœืงืŸ ืงืงื˜ื•ื• ืงืึทืžืขืจืึทืก ืงืึทืžืคึผืขืจื“ ืžื™ื˜ ืจืขื’ื•ืœืขืจ IP ืงืึทืžืขืจืึทืก. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ืึท ืœืึทื ื’ ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ื ืึทื’ืึธื•ืฉื™ื™ื™ืฉืึทื ื– ืžื™ื˜ ืงืงื˜ื•ื• ืึทืคึผืึทืจืึทื˜ ืžืึทื ื•ืคืึทืงื˜ื•ืจื™ื ื’ ืงืึธืžืคึผืึทื ื™ืขืก ืื™ื– ืคืืจืœืื ื’ื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึทืงืกืขืก ืฆื• ื“ื™ ืึทืคึผืึทืจืึทื˜ ื˜ืขืงืข ืกื™ืกื˜ืขื ืื•ืŸ ืึทืœืข ื“ื™ ื ื•ื™ื˜ื™ืง ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืžื›ืฉื™ืจื™ื.

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ืื•ื™ืฃ ื“ื™ ืื ื“ืขืจืข ื”ืึทื ื˜, ืึทืœืข ืžืึธื“ืขืจืŸ IP ืงืึทืžืขืจืึทืก ื”ืึธื‘ืŸ ื ืึธืจืžืึทืœ ืคึผืจืึธื˜ืึธืงืึธืœืก ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ืื ื“ืขืจืข ื•ื™ืกืจื™ื›ื˜ (ืกืคึผืขืฆื™ืขืœ ื•ื•ื™ื“ืขื ืจืขืงืึธืจื“ืขืจืก). ืื–ื•ื™, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืงืึธื ื˜ืจืึธืœืœืขืจ ื•ื•ืึธืก ืงืึทื ืขืงืฅ ื“ื•ืจืš ืึท ื ืึธืจืžืึทืœ ืคึผืจืึธื˜ืึธืงืึธืœ ืื•ืŸ ื‘ืจืึธื“ืงืึทืกืฅ ื•ื•ื™ื“ืขื ืกื˜ืจื™ืžื– ืคื•ืŸ ื™ืคึผ ืงืึทืžืขืจืึทืก ืฆื• ื“ื™ ื•ื•ืึธืœืงืŸ ื’ื™ื˜ ื‘ืึทื˜ื™ื™ื˜ื™ืง ืงืึทืžืคึผืขื˜ื™ื˜ื™ื•ื• ืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ืคึฟืึทืจ ื•ื•ืึธืœืงืŸ ื•ื•ื™ื“ืขื ืกืขืจื•ื•ื™ื™ืœืึทื ืก ืกื™ืกื˜ืขืžืขืŸ. ื“ืขืจืฆื•, ืื•ื™ื‘ ื“ืขืจ ืงืœื™ืขื ื˜ ื”ืื˜ ืฉื•ื™ืŸ ืื™ื ืกื˜ืึทืœื™ืจืŸ ืึท ื•ื•ื™ื“ืขื ืกืขืจื•ื•ื™ื™ืœืึทื ืก ืกื™ืกื˜ืขื ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืคึผืฉื•ื˜ IP ืงืึทืžืขืจืึทืก, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ื™ืงืกืคึผืึทื ื“ ืขืก ืื•ืŸ ืžืึทื›ืŸ ืขืก ืึท ืคื•ืœ-ืคืœืขื“ื–ืฉื“ ื•ื•ืึธืœืงืŸ ืงืœื•ื’ ื”ื™ื™ื.

ื“ื™ ืžืขืจืกื˜ ืคืึธืœืงืก ืคึผืจืึธื˜ืึธืงืึธืœ ืคึฟืึทืจ IP ื•ื•ื™ื“ืขื ืกืขืจื•ื•ื™ื™ืœืึทื ืก ืกื™ืกื˜ืขืžืขืŸ, ืื™ืฆื˜ ื’ืขืฉื˜ื™ืฆื˜ ื“ื•ืจืš ืึทืœืข IP ืึทืคึผืึทืจืึทื˜ ืžืึทื ื™ืึทืคืึทืงื˜ืฉืขืจืขืจื– ืึธืŸ ื•ื™ืกื ืขื, ืื™ื– ONVIF ืคึผืจืึธืคื™ืœ, ื•ื•ืขืžืขื ืก ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทื ื– ืขืงืกื™ืกื˜ื™ืจืŸ ืื™ืŸ ืึท ื•ื•ืขื‘ ื‘ืึทื“ื™ื ื•ื ื’ืก ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืฉืคึผืจืึทืš 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

ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ืกื›ื•ื ืคื•ืŸ ื›ืขื“ืขืจ "*. ื”" ืื•ืŸ ืžืงื•ืจ "*. ืงืคึผืคึผ" ื˜ืขืงืขืก ืื™ืŸ C ++, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืฉื˜ืขืœื˜ ื’ืœื™ื™ึทืš ืื™ืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึธื“ืขืจ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื•ืŸ ืงืึทืžืคึผื™ื™ืœื“ ืžื™ื˜ ื“ื™ GCC ืงืึทืžืคึผื™ื™ืœืขืจ. ืจืขื›ื˜ ืฆื• ื“ืขืจ ืคื™ืœืข ืคืึทื ื’ืงืฉืึทื ื–, ื“ื™ ืงืึธื“ ืื™ื– ื’ืจื•ื™ืก ืื•ืŸ ืจื™ืงื•ื•ื™ื™ืขืจื– ื ืึธืš ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ. ื“ื™ Raspberry Pi 3 ืžืึธื“ืขืœ ื‘ + ืžื™ืงืจืึธืงืึธืžืคึผื•ื˜ืขืจ ื”ืื˜ ื’ืขื ื•ื’ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืฆื• ื•ื™ืกืคื™ืจืŸ ื“ืขื ืงืึธื“, ืึธื‘ืขืจ ืื•ื™ื‘ ืขืก ืื™ื– ืึท ื ื•ื™ื˜ ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื“ื™ ืงืึธื“ ืฆื• ืืŸ ืื ื“ืขืจ ืคึผืœืึทื˜ืคืึธืจืžืข, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ืจื™ื›ื˜ื™ืง ืคึผืจืึทืกืขืกืขืจ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืื•ืŸ ืกื™ืกื˜ืขื ืจืขืกื•ืจืกืŸ.

IP ืงืึทืžืขืจืึทืก ื•ื•ืึธืก ืฉื˜ื™ืฆืŸ ื“ื™ ONVIF ื ืึธืจืžืึทืœ, ื•ื•ืขืŸ ืึทืคึผืขืจื™ื™ื˜ื™ื ื’ ืื•ื™ืฃ ืึท ื”ื™ื’ืข ื ืขืฅ, ื–ืขื ืขืŸ ืคืืจื‘ื•ื ื“ืŸ ืฆื• ืึท ืกืคึผืขืฆื™ืขืœ ืžื•ืœื˜ื™ืงืึทืกื˜ ื’ืจื•ืคึผืข ืžื™ื˜ ื“ื™ ืึทื“ืจืขืก 239.255.255.250. ืขืก ืื™ื– ืึท ืคึผืจืึธื˜ืึธืงืึธืœ WS Discovery, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืึธื˜ืึทืžื™ื™ื˜ ื“ื™ ื–ื•ื›ืŸ ืคึฟืึทืจ ื“ืขื•ื•ื™ืกืขืก ืื•ื™ืฃ ื“ื™ ื”ื™ื’ืข ื ืขืฅ.

ื“ื™ ื’ืจืึทืคื™ืงืึทืœ ืฆื•ื‘ื™ื ื“ ืคื•ืŸ ื“ื™ ืงืœื•ื’ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ื™ืžืคึผืœืึทืžืึทื ืฅ ืึท ื–ื•ื›ืŸ ืคื•ื ืงืฆื™ืข ืคึฟืึทืจ IP ืงืึทืžืขืจืึทืก ืื™ืŸ PHP, ื•ื•ืึธืก ืื™ื– ื–ื™ื™ืขืจ ื‘ืึทืงื•ื•ืขื ื•ื•ืขืŸ ื™ื ื˜ืขืจืึทืงื˜ื™ื ื’ ืžื™ื˜ ื•ื•ืขื‘ ื‘ืึทื“ื™ื ื•ื ื’ืก ื“ื•ืจืš ืงืกืžืœ ืึทืจื˜ื™ืงืœืขืŸ. ื•ื•ืขืŸ ืกืึทืœืขืงื˜ื™ื ื’ ืžืขื ื™ื• ื–ืื›ืŸ ื“ืขื•ื•ื™ืกืขืก> IP ืงืึทืžืขืจืึทืก> ืกืงืึทื ื™ื ื’ ื“ืขืจ ืึทืœื’ืขืจื™ื“ืึทื ืคึฟืึทืจ ื–ื•ื›ืŸ ืคึฟืึทืจ IP ืงืึทืžืขืจืึทืก ืื™ื– ืœืึธื ื˜ืฉื˜, ื•ื•ื™ื™ึทื–ื ื“ื™ืง ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ื˜ื™ืฉ:

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก
(ื“ืจื™ืงื˜ ืื•ื™ืฃ ื“ื™ ื‘ื™ืœื“ ืฆื• ืขืคืขื ืขืŸ ืขืก ืื™ืŸ ื”ืขื›ืขืจ ื”ืึทื›ืœืึธื˜ืข)

ื•ื•ืขืŸ ืื™ืจ ืœื™ื™ื’ืŸ ืึท ืึทืคึผืึทืจืึทื˜ ืฆื• ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ, ืื™ืจ ืงืขื ืขืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ ืกืขื˜ื˜ื™ื ื’ืก ืœื•ื™ื˜ ื•ื•ืึธืก ืขืก ื•ื•ืขื˜ ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ื“ื™ ื•ื•ืึธืœืงืŸ. ืื•ื™ืš ืื™ืŸ ื“ืขื ื‘ื™ื ืข, ืขืก ืื™ื– ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืึทืกื™ื™ื ื“ ืึท ื™ื™ื ืฆื™ืง ืžื™ื˜ืœ ื™ื“ืขื ื˜ื™ืคื™ืขืจ, ื“ื•ืจืš ื•ื•ืึธืก ืขืก ืงืขื ืขืŸ ืฉืคึผืขื˜ืขืจ ื–ื™ื™ืŸ ืœื™ื™ื›ื˜ ื™ื™ื“ืขื ืึทืคื™ื™ื“ ืื™ืŸ ื“ื™ ื•ื•ืึธืœืงืŸ.

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ื“ืขืจื ืึธืš, ืึท ืึธื ื–ืึธื’ ืื™ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜ ืžื™ื˜ ืึทืœืข ื“ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก ืคื•ืŸ ื“ื™ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืึทืคึผืึทืจืึทื˜ ืื•ืŸ ื’ืขืฉื™ืงื˜ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก ืคื•ืŸ ื“ื™ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ื“ื•ืจืš ื“ื™ RESTful API ื‘ืึทืคึฟืขืœ, ื•ื•ื• ื“ื™ ืึทืคึผืึทืจืึทื˜ ืคึผืึทืจืึทืžืขื˜ืขืจืก ื–ืขื ืขืŸ ื“ืขืงืึธื“ืขื“ ืื•ืŸ ื’ืขืจืื˜ืขื•ื•ืขื˜ ืื™ืŸ ื“ื™ ื™ื ืขืจืœืขืš SQLite ื“ืึทื˜ืึทื‘ื™ื™ืก, ืื•ืŸ ืื•ื™ืš ื’ืขื ื™ืฆื˜ ืฆื• ืงืึทื˜ืขืจ ื“ื™ ืคืืœื’ืขื ื“ืข ืคึผืจืึทืกืขืกื™ื ื’ ืคึฟืขื“ืขื:

  1. ื’ืจื™ื ื“ืŸ ืึท RTSP ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื•ื•ื™ื“ืขื ืื•ืŸ ืึทื•ื“ื™ืึธ ืกื˜ืจื™ืžื–;
  2. ื˜ืจืึทื ืกืงืึธื“ื™ื ื’ ืึทื•ื“ื™ืึธ ืคึฟื•ืŸ G.711 mu-Law, G.711 A-Law, G.723, ืขื˜ืง ืคึฟืึธืจืžืึทื˜ื™ืจื•ื ื’ืขืŸ. ืฆื• ืึทืึทืง ืคึฟืึธืจืžืึทื˜;
  3. ื˜ืจืึทื ืกืงืึธื“ื™ื ื’ ื•ื•ื™ื“ืขื ืกื˜ืจื™ืžื– ืื™ืŸ H.264 ืคึฟืึธืจืžืึทื˜ ืื•ืŸ ืึทื•ื“ื™ืึธ ืื™ืŸ ืึทืึทืง ืคึฟืึธืจืžืึทื˜ ืื™ืŸ ืึท FLV ืงืึทื ื˜ื™ื™ื ืขืจ ืื•ืŸ ื˜ืจืึทื ืกืžื™ื˜ื™ื ื’ ืขืก ืฆื• ื“ื™ ื•ื•ืึธืœืงืŸ ื“ื•ืจืš ื“ื™ RTMP ืคึผืจืึธื˜ืึธืงืึธืœ;
  4. ื’ืจื™ื ื“ืŸ ืึท ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืžื™ื˜ ื“ื™ ืขื ื“ืคึผื•ื™ื ื˜ ืคื•ืŸ ื“ื™ IP ืึทืคึผืึทืจืึทื˜ ื‘ืึทื•ื•ืขื’ื•ื ื’ ื“ืขื˜ืขืงื˜ืึธืจ ื“ื•ืจืš ื“ื™ ONVIF ืคึผืจืึธื˜ืึธืงืึธืœ ืื•ืŸ ืคึผื™ืจื™ืึทื“ื™ืงืœื™ ืคึผืึธืœืœื™ื ื’ ืขืก;
  5. ืคึผื™ืจื™ืึทื“ื™ืงืœื™ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืึท ื˜ืึทืžื ื™ื™ืœ ืคืึธืจื•ื™ืกื™ืงืข ื•ื•ื™ื™ึทื–ื•ื ื’ ื‘ื™ืœื“ ืื•ืŸ ืฉื™ืงืŸ ืขืก ืฆื• ื“ื™ ื•ื•ืึธืœืงืŸ ื“ื•ืจืš ื“ื™ MQTT ืคึผืจืึธื˜ืึธืงืึธืœ;
  6. ื”ื™ื’ืข ืจืขืงืึธืจื“ื™ื ื’ ืคื•ืŸ ื•ื•ื™ื“ืขื ืื•ืŸ ืึทื•ื“ื™ืึธ ืกื˜ืจื™ืžื– ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ื˜ืขืงืขืก ืื™ืŸ MP4 ืคึฟืึธืจืžืึทื˜ ืื•ื™ืฃ ืึท ืกื“ ืึธื“ืขืจ ืคืœืึทืฉ ืงืึธืจื˜ ืคื•ืŸ ืึท ืงืœื•ื’ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ.

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ืฆื• ืคืึทืจืœื™ื™ื’ืŸ ืึท ืงืฉืจ ืžื™ื˜ ืงืึทืžืขืจืึทืก, ื˜ืจืึทื ืกืงืึธื“ืข, ืคึผืจืึธืฆืขืก ืื•ืŸ ืจืขืงืึธืจื“ื™ืจืŸ ื•ื•ื™ื“ืขื ืกื˜ืจื™ืžื– ืื™ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก, ืคืึทื ื’ืงืฉืึทื ื– ืคื•ืŸ ื“ืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜ ืคืคืžืคึผืขื’ ืงืกื ื•ืžืงืก.

ืื™ืŸ ื“ืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื˜ืขืกื˜ื™ื ื’ ืขืงืกืคึผืขืจื™ืžืขื ื˜, 3 ืงืึทืžืขืจืึทืก ื–ืขื ืขืŸ ืคืืจื‘ื•ื ื“ืŸ ืฆื• ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ:

  1. ื”ื™ื•ื•ืึทื˜ื˜ืฉ ื“ืก-ื™114ื•ื• (ื”ืึทื›ืœืึธื˜ืข - 720 ืคึผ, ืงืึทืžืคึผืจืขืฉืึทืŸ ืคึฟืึธืจืžืึทื˜ - ื”.264, ื‘ื™ื˜ืจืึทื˜ืข - 1 ืžื‘ / s, ื’ืขื–ื•ื ื˜ ื’.711 ืžื•-ื’ืขื–ืขืฅ);
  2. ืžื™ืงืจืึธื“ื™ื’ื™ื˜ืึทืœ ืžื“ืง-ืž6290ืคื˜ื“-1 (ื”ืึทื›ืœืึธื˜ืข - 1080 ืคึผ, ืงืึทืžืคึผืจืขืฉืึทืŸ ืคึฟืึธืจืžืึทื˜ - ื”.264, ื‘ื™ื˜ืจืึทื˜ืข - 1 ืžื‘ / s, ืงื™ื™ืŸ ื’ืขื–ื•ื ื˜);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (ื”ืึทื›ืœืึธื˜ืข - 1080 ืคึผ, ืงืึทืžืคึผืจืขืฉืึทืŸ ืคึฟืึธืจืžืึทื˜ - ื”.264, ื‘ื™ื˜ืจืึทื˜ืข - 1.5 ืžื‘ / s, ืึทืึทืง ืึทื•ื“ื™ืึธ).

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ืึทืœืข ื“ืจื™ื™ ืกื˜ืจื™ืžื– ื–ืขื ืขืŸ ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™ ืจืขื–ื•ืœื˜ืึทื˜ ืฆื• ื“ื™ ื•ื•ืึธืœืงืŸ, ืึทื•ื“ื™ืึธ ื˜ืจืึทื ืกืงืึธื“ื™ื ื’ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืคึฟื•ืŸ ื‘ืœื•ื™ื– ืื™ื™ืŸ ืึทืคึผืึทืจืึทื˜, ืื•ืŸ ื“ื™ ื”ื™ื’ืข ืึทืจืงื™ื™ื•ื• ืจืขืงืึธืจื“ื™ื ื’ ืื™ื– ืคืึทืจืงืจื™ืคึผืœื˜. ืงืคึผื• ื™ื•ื˜ืึทืœืึทื–ื™ื™ืฉืึทืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ืขืขืจืขืš 5%, ื‘ืึทืจืึทืŸ ื‘ืึทื ื™ืฅ ืื™ื– ื’ืขื•ื•ืขืŸ 32 ืžืขื’ืื‘ื™ื™ื˜ืŸ (ืคึผืขืจ ืคึผืจืึธืฆืขืก), 56 ืžืขื’ืื‘ื™ื™ื˜ืŸ (ื’ืึทื ืฅ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืึทืก).

ืื–ื•ื™, ื‘ืขืขืจืขืš 20 - 30 ืงืึทืžืขืจืึทืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืงืึธื ื ืขืงื˜ืขื“ ืฆื• ื“ื™ ืงืœื•ื’ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ (ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื”ืึทื›ืœืึธื˜ืข ืื•ืŸ ื‘ื™ื˜ืจืึทื˜ืข), ื•ื•ืึธืก ืื™ื– ื’ืขื ื•ื’ ืคึฟืึทืจ ืึท ื•ื•ื™ื“ืขื ืกืขืจื•ื•ื™ื™ืœืึทื ืก ืกื™ืกื˜ืขื ืคึฟืึทืจ ืึท ื“ืจื™ื™-ืกื˜ืึธืจื™ ื”ื™ื™ึทื–ืงืข ืึธื“ืขืจ ืึท ืงืœื™ื™ืŸ ื•ื•ืขืจื›ืึทื•ืก. ืคึฟืึทืจ ื˜ืึทืกืงืก ื•ื•ืึธืก ื“ืึทืจืคืŸ ืžืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ืึท ื ืขื˜ื˜ืึธืคึผ ืžื™ื˜ ืึท ืžืึทืœื˜ื™-ื”ืึทืจืฅ ื™ื ื˜ืขืœ ืคึผืจืึทืกืขืกืขืจ ืื•ืŸ Linux Debian Sarge OS. ื“ืขืจ ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ื– ื“ืขืจื•ื•ื™ื™ึทืœ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืคึผืจืึธืฆืขืก ืึธืคึผืขืจืึทืฆื™ืข, ืื•ืŸ ื“ืึทื˜ืŸ ื•ื•ืขื’ืŸ ื–ื™ื™ึทืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜.

ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ื“ื™ ื•ื•ืึธืœืงืŸ

ื ื•ื•ืึธืœืงืŸ-ื‘ืื–ื™ืจื˜ ืงืœื•ื’ ื”ื™ื™ื ืกื˜ืึธืจื– ื‘ืึทื ื™ืฆืขืจ ื“ืึทื˜ืŸ (ื•ื•ื™ื“ืขื ืื•ืŸ ืกืขื ืกืขืจ ืžืขื–ืฉืขืจืžืึทื ืฅ) ืื™ืŸ ื“ื™ ื•ื•ืึธืœืงืŸ. ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืคื•ืŸ ื•ื•ืึธืœืงืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ืกืงืึทืกื˜ ืื™ืŸ ืžืขืจ ื“ืขื˜ืึทืœ ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืึทืจื˜ื™ืงืœ ืื™ืŸ ืื•ื ื“ื–ืขืจ ืกืขืจื™ืข. ืื™ืฆื˜ ืœืึธื–ืŸ ืก ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืฆื•ื‘ื™ื ื“ ืคึฟืึทืจ ื˜ืจืึทื ืกืžื™ื˜ื™ื ื’ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืึทืจื˜ื™ืงืœืขืŸ ืคื•ืŸ ื“ื™ ืงืœื•ื’ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ืฆื• ื“ื™ ื•ื•ืึธืœืงืŸ.

ื“ื™ ืฉื˜ืึทื˜ืŸ ืคื•ืŸ ืงืึธื ื ืขืงื˜ืขื“ ื“ืขื•ื•ื™ืกืขืก ืื•ืŸ ืกืขื ืกืขืจ ืžืขื–ืฉืขืจืžืึทื ืฅ ื–ืขื ืขืŸ ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ื“ื•ืจืš ื“ืขื ืคึผืจืึธื˜ืึธืงืึธืœ ืžืงื˜ื˜, ื•ื•ืึธืก ืื™ื– ืึธืคื˜ ื’ืขื ื™ืฆื˜ ืื™ืŸ ืื™ื ื˜ืขืจื ืขื˜ ืคื•ืŸ ื˜ื”ื™ื ื’ืก ืคึผืจืึทื“ื–ืฉืขืงืก ืจืขื›ื˜ ืฆื• ื–ื™ื™ึทืŸ ืคึผืึทืฉื˜ืขืก ืื•ืŸ ืขื ืขืจื’ื™ืข ืขืคืขืงื˜ื™ื•ื•ืงื™ื™ึทื˜. MQTT ื ื™ืฆื˜ ืึท ืงืœื™ืขื ื˜-ืกืขืจื•ื•ืขืจ ืžืึธื“ืขืœ, ื•ื•ื• ืงืœื™ื™ืึทื ืฅ ืึทื‘ืึธื ื™ืจืŸ ืฆื• ืกืคึผืขืฆื™ืคื™ืฉ ื˜ืขืžืขืก ืื™ืŸ ื“ืขืจ ืžืขืงืœืขืจ ืื•ืŸ ืึทืจื•ื™ืกื’ืขื‘ืŸ ื–ื™ื™ืขืจ ืึทืจื˜ื™ืงืœืขืŸ. ื“ืขืจ ืžืขืงืœืขืจ ืกืขื ื“ื– ืึทืจื˜ื™ืงืœืขืŸ ืฆื• ืึทืœืข ืื‘ืื ืขื ื˜ืŸ ืœื•ื™ื˜ ื“ื™ ื›ึผืœืœื™ื ื‘ืืฉืœืืกืŸ ื“ื•ืจืš ื“ื™ QoS (ืงื•ื•ืึทืœื™ื˜ืขื˜ ืคื•ืŸ ืกืขืจื•ื•ื™ืก) ืžื“ืจื’ื”:

  • QoS 0 - ืžืึทืงืกื™ืžื•ื ืึทืžืึธืœ (ืงื™ื™ืŸ ืขืงืกืคึผืจืขืก ื’ืึทืจืึทื ื˜ื™ืจืŸ);
  • QoS 1 - ืœืคึผื—ื•ืช ืึทืžืึธืœ (ืžื™ื˜ ืขืงืกืคึผืจืขืก ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’);
  • QoS 2 - ืคึผื•ื ืงื˜ ืึทืžืึธืœ (ืžื™ื˜ ื ืึธืš ืขืงืกืคึผืจืขืก ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’).

ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, ืžื™ืจ ื ื•ืฆืŸ ืึทืงืœื™ืคึผืก ืงืึธืžืึทืจ. ื“ืขืจ ื˜ืขืžืข ื ืึธืžืขืŸ ืื™ื– ื“ื™ ื™ื™ื ืฆื™ืง ื™ื“ืขื ื˜ื™ืคื™ืขืจ ืคื•ืŸ ื“ื™ ืงืœื•ื’ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ. ื“ืขืจ MQTT ืงืœื™ืขื ื˜ ืื™ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก ืึทื‘ืึธื ื™ืจืŸ ืฆื• ื“ืขื ื˜ืขืžืข ืื•ืŸ ืื™ื‘ืขืจื–ืขืฆืŸ JSON ืึทืจื˜ื™ืงืœืขืŸ ืคึฟื•ืŸ ื“ืขืจ ืึธื ื–ืึธื’ ืคืึทืจื•ื•ืึทืœื˜ืขืจ ืื™ืŸ ืขืก. ืงืึธื ื•ื•ืขืจืกืขืœื™, ืึทืจื˜ื™ืงืœืขืŸ ืคื•ืŸ ื“ื™ MQTT ืžืขืงืœืขืจ ื–ืขื ืขืŸ ืคืึธืจื•ื•ืขืจื“ื™ื“ ื“ื•ืจืš ืขืก ืฆื• ื“ืขืจ ืึธื ื–ืึธื’ ืคืึทืจื•ื•ืึทืœื˜ืขืจ, ื•ื•ืึธืก ื“ืขืžืึธืœื˜ ืžื•ืœื˜ื™ืคึผืœืขืงืก ื–ื™ื™ ืฆื• ื–ื™ื™ืŸ ืื‘ืื ืขื ื˜ืŸ ืื™ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก:

ื•ื•ืึธืœืงืŸ ืกืžืึทืจื˜ ื”ื™ื™ื. ื˜ื™ื™ืœ 1: ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืกืขื ืกืึธืจืก

ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืขื’ืŸ ื“ื™ ืกื˜ืึทื˜ื•ืก ืคื•ืŸ ื“ื™ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ, ื“ื™ ืžืขืงืึทื ื™ื–ืึทื ืคื•ืŸ ื’ืขืจืื˜ืขื•ื•ืขื˜ ืึทืจื˜ื™ืงืœืขืŸ ืื™ื– ื’ืขื ื™ืฆื˜ ืจื™ื˜ื™ื™ื ื“ ืึทืจื˜ื™ืงืœืขืŸ MQTT ืคึผืจืึธื˜ืึธืงืึธืœ. ื“ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืจื™ื›ื˜ื™ืง ืžืึธื ื™ื˜ืึธืจ ื“ื™ ื˜ื™ื™ืžื™ื ื’ ืคื•ืŸ ืจื™ืงืึทื ืขืงืฉืึทื ื– ื‘ืขืฉืึทืก ืžืึทื›ื˜ ืคื™ื™ืœื™ืขืจื–.

ื“ืขืจ MQTT ืงืœื™ืขื ื˜ ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืึทืงืœื™ืคึผืก ืคึผืึทื”ืึธ ืื™ืŸ C ++ ืฉืคึผืจืึทืš.

ื”.264 + ืึทืึทืง ืžืขื“ื™ืข ืกื˜ืจื™ืžื– ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜ ืฆื• ื“ื™ ื•ื•ืึธืœืงืŸ ื“ื•ืจืš ื“ื™ RTMP ืคึผืจืึธื˜ืึธืงืึธืœ, ื•ื•ื• ืึท ืงื ื•ื™ืœ ืคื•ืŸ ืžื™ื“ื™ืึท ืกืขืจื•ื•ืขืจืก ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืคึผืจืึทืกืขืกื™ื ื’ ืื•ืŸ ืกื˜ืึธืจื™ื ื’ ื–ื™ื™. ืฆื• ืึธืคึผื˜ื™ืžืึทืœ ืคืึทืจืฉืคึผืจื™ื™ื˜ืŸ ื“ื™ ืžืึทืกืข ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ ืื•ืŸ ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ืงืœืขื ืกื˜ืขืจ ืœืึธื•ื“ื™ื“ ืžืขื“ื™ืข ืกืขืจื•ื•ืขืจ, ื“ื™ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ืžืื›ื˜ ืึท ืคึผืจื™ืœื™ืžืึทื ืขืจื™ ื‘ืขื˜ืŸ ืฆื• ื“ื™ ื•ื•ืึธืœืงืŸ ืžืึทืกืข ื‘ืึทืœืึทื ืกืขืจ ืื•ืŸ ื‘ืœื•ื™ื– ื ืึธืš ื“ืขื ืกืขื ื“ื– ื“ื™ ืžื™ื“ื™ืึท ื˜ื™ื™ึทืš.

ืกืึธืฃ

ื“ืขืจ ืึทืจื˜ื™ืงืœ ื™ื’ื–ืึทืžืึทื ื“ ืื™ื™ืŸ ืกืคึผืขืฆื™ืคื™ืฉ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืึท ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ Raspberry Pi 3 B+ ืžื™ืงืจืึธืงืึธืžืคึผื•ื˜ืขืจ, ื•ื•ืึธืก ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ, ืคึผืจืึทืกืขืกื™ื ื’ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ืŸ ืงืึธื ื˜ืจืึธืœ ื•ื™ืกืจื™ื›ื˜ ื“ื•ืจืš ื“ื™ Z-Wave ืคึผืจืึธื˜ืึธืงืึธืœ, ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ IP ืงืึทืžืขืจืึทืก ื“ื•ืจืš ื“ื™ ONVIF ืคึผืจืึธื˜ืึธืงืึธืœ, ืื•ืŸ ืื•ื™ืš ื•ื•ืขืงืกืœ ื“ืึทื˜ืŸ ืื•ืŸ ืงืึทืžืึทื ื“ื– ืžื™ื˜ ื“ื™ ื•ื•ืึธืœืงืŸ ื“ื™ื ืกื˜ ื“ื•ืจืš MQTT ืื•ืŸ RTMP ืคึผืจืึธื˜ืึธืงืึธืœืก. ื ืคึผืจืึธื“ื•ืงืฆื™ืข ืœืึธื’ื™ืง ืžืึธื˜ืึธืจ ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึท ืคืึทืจื’ืœื™ื™ึทืš ืคื•ืŸ ืœืึทื“ื–ืฉื™ืงืึทืœ ื›ึผืœืœื™ื ืื•ืŸ ืคืืงื˜ืŸ ื“ืขืจืœืื ื’ื˜ ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜.

ื“ืขืจ ืกืžืึทืจื˜ ื”ื™ื™ื ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ื– ื“ืขืจื•ื•ื™ื™ึทืœ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืคึผืจืึธืฆืขืก ืึธืคึผืขืจืึทืฆื™ืข ืื™ืŸ ืขื˜ืœืขื›ืข ื–ื™ื™ื˜ืœืขืš ืื™ืŸ ืžืึธืกืงื•ื•ืข ืื•ืŸ ื“ื™ ืžืึธืกืงื•ื•ืข ื’ืขื’ื ื˜.

ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืงืึธื ื˜ืจืึธืœืœืขืจ ืคึผืœืึทื ื– ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืื ื“ืขืจืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ื“ืขื•ื•ื™ืกืขืก (ืจืฃ, ื‘ืœื•ืขื˜ืึธืึธื˜ื”, ื•ื•ื™ืคื™, ื•ื•ื™ื™ืขืจื“). ืคึฟืึทืจ ื“ื™ ืงืึทื ื•ื•ื™ื ื™ืึทื ืก ืคื•ืŸ ื ื™ืฆืขืจืก, ื“ื™ ืคึผืจืึธืฆืขื“ื•ืจ ืคึฟืึทืจ ืงืึทื ืขืงื˜ื™ื ื’ ืกืขื ืกืึธืจืก ืื•ืŸ IP ืงืึทืžืขืจืึทืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื˜ืจืึทื ืกืคืขืจื“ ืฆื• ื“ื™ ืจื™ืจืขื•ื•ื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืขืก ื–ืขื ืขืŸ ืื•ื™ืš ื™ื™ื“ื™ืึทื– ืคึฟืึทืจ ืึธืคึผื˜ื™ืžื™ื–ื™ื ื’ ื“ื™ ืกืขืจื•ื•ืขืจ ืคึผืจืึธืฆืขืก ืงืึธื“ ืื•ืŸ ืคึผืึธืจื˜ื™ื ื’ ื“ื™ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืฆื• ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื OpenWrt. ื“ืึธืก ื•ื•ืขื˜ ืœืึธื–ืŸ ืื™ืจ ืฆื• ืฉืคึผืึธืจืŸ ืื•ื™ืฃ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืงืึธื ื˜ืจืึธืœืœืขืจ ืื•ืŸ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื“ื™ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืคื•ืŸ ืึท ืงืœื•ื’ ื”ื™ื™ื ืฆื• ืึท ืจืขื’ื•ืœืขืจ ื”ื•ื™ื–ื’ืขื–ื™ื ื“ ืจืึทื•ื˜ืขืจ.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’