Skip to content

StarfruitTeam/go-IoTLinker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

55 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

IoTLinker

IoTLinker ์†Œ๊ฐœ

IoT Linker๋Š” ์‚ฐ์—…์šฉ IoT ํ™˜๊ฒฝ์„ ์„œ๋กœ ์‰ฝ๊ฒŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” IIoT ์„œ๋น„์Šค ํ”„๋ ˆ์ž„ ์›Œํฌ์ž…๋‹ˆ๋‹ค. ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด ๊ฐ™์€ ์†Œํ˜• ์ปดํ“จํ„ฐ์—์„œ ๋™์ž‘ ๊ฐ€๋Šฅ ํ•˜๋ฉฐ ๋น ๋ฅธ์‘๋‹ต์„ ์ง€ํ–ฅ ํ•ฉ๋‹ˆ๋‹ค. ๋ฃฐ ๊ธฐ๋ฐ˜์˜ ์ด๋ฒคํŠธ๋ฅผ ํƒ์ง€ ํ•ฉ๋‹ˆ๋‹ค. ํƒ์ง€ํ•œ ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์•ก์…˜์„ ๋ฐœ์ƒํ•˜์—ฌ ํ™˜๊ฒฝ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ๋˜ํ•œ ์‚ฌ์šฉ์ž๋“ค์ด ์‰ฝ๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ ํ• ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

IoTLinker ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  • IoT Data Acquisition (๋ฐ์ดํ„ฐ ์ˆ˜์ง‘)
  • IoT Device Management (์žฅ์น˜ ๊ด€๋ฆฌ)
  • IoT Rule Engine (๋ฃฐ ์—”์ง„)
  • IoT Event Management (์ด๋ฒคํŠธ ๊ด€๋ฆฌ)
  • IoT Action Management (์•ก์…˜ ์ฒ˜๋ฆฌ)
  • IoT Data Analytics (๋ฐ์ดํ„ฐ ๋ถ„์„)

IoTLinker Design Goals

  1. Data Tag ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
  2. ๊ณ ์† ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์ง€์› (ms ๋‹จ์œ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ,์ˆ˜์ง‘๋œ ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ,์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ)
  3. ์ €์‚ฌ์–‘ ๋””๋ฐ”์ด์Šค์—์„œ๋„ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ์–ธ์ œ ์–ด๋””์„œ๋‚˜ ๋””๋ฐ”์ด์Šค๊ฐ„ ์—ฐ๊ณ„๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋งˆ์ดํฌ๋กœ IoT ์„œ๋ฒ„ ๊ตฌ์ถ• ํ•œ๋‹ค. (๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด)
  4. ํ”Œ๋žซํผ์€ ์ตœ์†Œ ๊ธฐ๋Šฅ๋งŒ ์ œ๊ณตํ•œ๋‹ค. (์ˆ˜์ง‘(Mqtt),์žฅ์น˜ ๊ด€๋ฆฌ,์ฒ˜๋ฆฌ(Context Engin),์‹ค์‹œ๊ฐ„ ์ œ๊ณต(Websocket),๋ฐ์ดํ„ฐ ๋ถ„์„(๋ถ„์„),๋Œ€์‰ฌ๋ณด๋“œ)
  5. ์‰ฝ๊ฒŒ ๋จธ์‹  ๋Ÿฌ๋‹ ํ”Œ๋žซํผ๊ณผ์˜ ์—ฐ๊ณ„ํ•œ๋‹ค.(๋ฐ์ดํ„ฐ ๋ถ„์„์ด ์šฉ์ด)

์ฃผ์š” Package

  • Context Package : Rule ๋ฃฐ์„ ์ด์šฉํ•ด์„œ ์ด๋ฒคํŠธ ๊ฒ€์ถœ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํŒจํ‚ค์ง€
  • Net Package : ์™ธ๋ถ€ ์™ธ๋ถ€ ์ธํ„ฐํŽ˜์ด์Šค ํŒจํ‚ค์ง€
  • Database Package : ๋ฐ์ด๋ฒ ์ด์Šค ๊ด€๋ จ ํŒจํ‚ค์ง€
  • Messaging Package : ๋ฉ”์‹œ์ง€ ๊ด€๋ จ ํŒจํ‚ค์ง€

์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชฉ๋ก

Language

Database

Messaging System

์™ธ๋ถ€๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

Go ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ๊ณ ๋ คํ• ๋งŒํ•œ ๋ถ€๋ถ„

  1. ๊ฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ์ข…์„์„ฑ์„ ์ค„์ธ๋‹ค. ๋ฉ”์‹œ์ง€ ํ๋‚˜ ์ด๋ฒคํŠธ ๋ฒ„์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ฐ ๊ฐ ํ”„๋กœ๊ทธ๋žจ ์ค‘์•™์— ๋ฉ”์‹œ์ง€ ํ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ ๊ณต์œ  ๋ฐ ์ƒํ˜ธ ์ž‘์šฉ ๊ฐ€๋Šฅ
  2. Redis ์—์„œ ์ˆ˜ํ–‰ํ•˜๋˜ Device & Tag ๋งค์นญ ๋ถ€๋ถ„์„ ์ง์ ‘ ๋ชฝ๊ณ ๋””๋น„์—์„œ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ˆ˜์ • ์˜ˆ์ •
  3. Root/main.go ๋Š” ๊ฐ App ์‹คํ–‰ํ•˜๋Š” ์—ญํ•  ์ˆ˜ํ–‰

Architecture

./IoTLinker.png

๋ฐ์ดํ„ฐ ํƒ€์ž…

DATA TYPE
BIT
NUMBER
ARRAY
STRING
JSON
IMAGE
GEO POINT

์‹๋ณ„์ž ๊ตฌ์กฐ

ObjectID_TYPE
LocationLOCATION_ID
DevcieUUID
TAGTAG_NAME

๊ธฐ๋Šฅ

IoT Data Acquisition (๋ฐ์ดํ„ฐ ์ˆ˜์ง‘)

MQTT ๋ฉ”์‹œ์ง€ ์ˆ˜์ง‘ ์ง€์›

Modbus ๋ฉ”์‹œ์ง€ ์ง€์›

OPC UA ์ง€์›

MT Connect ์ง€์›

Coap ์ง€์›(๋ฏธ์ •)

์‚ฌ์šฉ์ž ์ •์˜ ํ† ํ”ฝ ์ง€์ •

  • Redis๋ฅผ ์ด์šฉํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ํ•„์š”
  • ํ…Œํฌ๋ฐ ๋””๋ฐ”์ด์Šค์˜ ํ† ํ”ฝ์„ ๋ ˆ๋””์Šค์— ์ €์žฅํ•˜์—ฌ ์ฒ˜๋ฆฌ
  • ๋””๋ฐ”์ด์Šค ๋ฐ ํ…Œ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํ† ํ”ฝ์„ ๋ ˆ๋””์Šค์— ์ €์žฅํ•œ๋‹ค.
  • ํ† ํ”ฝ์€ MQTT ์—ฐ๊ฒฐ์‹œ ๊ตฌ๋…์„ ๋“ฑ๋กํ•œ๋‹ค.
  • ๋ฉ”์‹œ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•ด๋‹น ํ† ํ”ฝ์ด ๋ฉ”์‹œ์ง€์— ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค.
  • ํ† ํ”ฝ์„ ๊ฒ€์‚ฌํ•˜์—ฌ ํ•ต์‹ฌ ์ •๋ณด๋ฅผ ๊ตฌํ•œ๋‹ค. ๋””๋ฐ”์ด์Šค ์ •๋ณด/ ํ…Œํฌ ์ •๋ณด
  • ํ•ด๋‹น ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌ ํ•œ๋‹ค.

๊ฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋”ฐ๋กœ ๋งŒ๋“ฌ

  • ์„œ๋น„์Šค ํฌํŠธ, Queue ์—ฐ๊ฒฐ ์ •๋ณด, ์ธ์ฆ ์ •๋ณด๋Š” ๋”ฐ๋กœ ๋ฐ›์Œ , ์ธ์ฆ ์ •๋ณด๋Š” Redis ๋ฅผ ์ด์šฉํ•ด์„œ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

REDIS ํ™œ์šฉ

์†Œ๋ฌธ์ž๋งŒ ์‚ฌ์šฉ ๊ธฐ๋ณธ TAG ํ‚ค tag ๋ณ„ ํ† ํ”ฝ์„ ๋ ˆ๋””์Šค์— ์ €์žฅํ•˜์—ฌ ์บ์‰ฌ๋กœ ์‚ฌ์šฉ ์•„๋ž˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•จ ๋‹ค๋ฅธ ํ”„๋กœํ† ์ฝœ์—์„œ๋„ ๋ ˆ๋””์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๋””๋ฐ”์ด์Šค์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค. (๊ธ์ •์  ๊ณ ๋ ค ) topic:<์‹ค์ œํ† ํ”ฝ> topic์€ ์…‹๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ์ €์žฅํ•˜์—ฌ ์ค‘๋ณต์„ ๋ง‰๋Š”๋‹ค. sadd,smember

IoT Device Management (์žฅ์น˜ ๊ด€๋ฆฌ)

IoT Rule Engine (๋ฃฐ ์—”์ง„)

Context Rule Linker Context Engin

์‹ค์‹œ๊ฐ„ ๋ฃฐ ์ฒ˜๋ฆฌ ์—”์ง„

์Šค์ผ€์ค„๋ง ๋ฃฐ ๊ธฐ๋Šฅ

  • ์ผ์ • ์‹œ๊ฐ„๋งˆ๋‹ค ๋ฃฐ ๊ฒ€์‚ฌํ›„ ํ•ด๋‹น ์ด๋ฒคํŠธ ๋ฐœ์ƒ

Tag ๋ณ„ ๋ฃฐ ์ง€์ •

๋ฃฐ๋ณ„ ๋„ํ๋จผํŠธ ๊ตฌ์„ฑ

WAITING ํƒ€์ž„์‹œ๋ฆฌ์ฆˆ ๋ฃฐ (๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ์˜ ์ˆœ์ฐจ์ ์ธ ๋ชจ๋Ÿ‰ ํ‰๊ตฐ ํŽธ์ฐจ ๋“ฑ์„ ๊ฒ€์ถœ ํ•˜์—ฌ ํŒ๋ณ„ํ•˜๋Š” ๋ฃฐ )

๋ณตํ•ฉ ๋ฃฐ (๋ณตํ•ฉ์ ์ธ ํ…Œ๊ทธ์˜ ์ •๋ณด๋กœ ์ด๋ฒคํŠธ ํŒ๋ณ„ ->๋ ˆ๋””์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณตํ•ฉ์ ์ธ ํ…Œํฌ ์ •๋ณด๋ฅผ ๋ฌถ์–ด์„œ ์ €์žฅ)

๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ (๋จธ์‹ ๋Ÿฌ๋‹๋ชจ๋ธ์˜ ํŒ๋ณ„๋œ ํ“จ์ฒ˜๋“ค์„ ๋ณตํ•ฉ๋ฃฐ์„ ์ด์šฉํ•˜์—ฌ ํŒ๋ณ„ )

  • ํ…์„œ์˜ ๋ชจ๋ธ์„ ์ ์šฉ ํ• ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„ ์›Œํฌ ๊ตฌ์ถ•
  • ์˜ค๋‹‰์Šค ๋ชจ๋ธ ์ง€์›(๋ชจ๋ธ ๋ฐ์ดํ„ฐ ONNX)

IoT Event Management (์ด๋ฒคํŠธ ๊ด€๋ฆฌ)

IoT Action Management (์•ก์…˜ ์ฒ˜๋ฆฌ)

Context Action

Message Section Action (MQTT,CoAP,REST,MODBUS,OPC_UA)

CANCELLED ์ผ์ • ์ฃผ๊ธฐ๋งˆ๋‹ค ํŒŒ์ผ ์ €์žฅ(์ •๋ง ํ•„์š”ํ•˜์ง„ ์˜๋ฌธ ๋ชฝ๊ณ ๋””๋น„์—์„œ ์กฐํšŒํ•ด์„œ ๋ณด์—ฌ์ฃผ๋Š”๊ฒŒ ๋” ํšจ๊ณผ์ )

์ด๋ฒคํŠธ ๋ฐœ์ƒ(์•Œ๋žŒ,๊ฒฝ๊ณ ,์ •๋ณด,์‚ฌ์šฉ์ž ์ง€์ •)

Work Flow ์ง€์ •(์—ฐ์†์ ์ธ ์ˆœ์ฐจ์ ์ธ ์•ก์…˜ ์ฒ˜๋ฆฌ,Context Cain)

IoT Data Analytics (๋ฐ์ดํ„ฐ ๋ถ„์„)

์„ผ์„œ ๋ฐ์ดํ„ฐ ๋ถ„์„

  • ํ•ซ ๋ฐ์ดํ„ฐ (๋งŽ์€ ์–‘์— ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ธ์‚ฌ์ดํŠธ ๋ถ„์„)
  • ์ฝœ๋“œ ๋ฐ์ดํ„ฐ (๋ฐ์ดํ„ฐ๋ฅผ ๋ˆ„์ ํ•ด์„œ ๋ฐ์ดํ„ฐ ๋ถ„์„)
  • ์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ ๋ถ„์„ (์‹ค์‹œ๊ฐ„ ํ†ต๊ณ„ ๋ถ„์„, ์ด๋™ํ‰๊ท )

Common ๊ธฐ๋Šฅ

API ์ œ๊ณต

REST API ์ œ๊ณต

Swgger Api ๋ฌธ์„œํ™”

๋Œ€์‰ฌ ๋ณด๋“œ ์ œ๊ณต

  • Tag ๋ณ„ ์œ„์ ฏ ํƒ€์ž…
  • ๊ทธ๋ฃน ๋ณ„ ์œ„์ ฏ ํƒ€์ž…
  • ์นด๋“œ UI
  • Websocket

ํŒŒ์ผ ๋ฐ์ดํ„ฐ Export

๋ณด์•ˆ

์ธ์ฆ์„œ ์ฒ˜๋ฆฌ

Mqtt ๋ณด์•ˆ

๊ธฐ๋ณธ ๋ชจ๋ธ ๊ตฌ์„ฑ

User

  • ์‚ฌ์šฉ์ž ์ˆ˜์ง‘ ์ •๋ณด(๋ฉ”์ผ )
  • ๋“ฑ๊ธ‰(admin,manager,customer)

Role

  • manager,admin,costomer
  • ์†Œ์œ ๊ถŒ ๊ฐœ๋…์ด ํ•„์š”
  • Tag, Group , Device ์˜ค๋„ˆ ๊ฐœ๋…์ด ํ•„์š” ํ•˜๋‹ค.
  • ํ–ฅํ›„๋ฅผ ์œ„ํ•˜์—ฌ ๊ตฌํ˜„์„ ๋ฏธ๋ฃธ

Tag

  • Tag ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ Bloker์— ๋“ฑ๋ก์„ ํ•ด์ œ ํ•˜๊ฑฐ๋‚˜ ๋“ฑ๋ก ํ•œ๋‹ค.
  • Read/Write tag ์ง€์ •
  • ์Šค์นด๋‹ค์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๊ตฌ์„ฑ ํ•˜์ž(๊ธฐ์กด PLC ๋ฐ์ดํ„ฐ์— ์ ํ•ฉ ํ•˜๋„๋ก ๊ตฌ์„ฑ)
  • @listens_for(Image, โ€˜after_deleteโ€™) ์ฐธ๊ณ 
  • ๋ฐ์ดํ„ฐ ํƒ€์ž…
  • ํ…Œ๊ทธ ์ด๋ฆ„
  • ๋””๋ฐ”์ด์Šค์—์„œ ์œ ์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง
  • Topic ์„ ๊ฐ€์ง ๋ ˆ๋””์Šค์— ํ† ํ”ฝ์„ ๋“ฑ๋ก ํ•œ๋‹ค.

Location

  • LocationType ์ง€์ •
  • ๋””๋ฐ”์ด์Šค ์œ„์น˜
  • ๋…ผ๋ฆฌ์  ์œ„์น˜๋‚˜ gps ์ •๋ณด ๋ณด์œ 
  • ๋นŒ๋”ฉ ๊ณต์žฅ ์œ„์ฃผ

Device

  • TAG๊ฐ€ ์กด์žฌํ•˜๋Š” ๋””๋ฐ”์ด์Šค
  • ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด
  • ํ…Œํฌ๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Œ
  • UUID๊ธฐ์ค€์˜ ID๋ฅผ ๊ฐ€์ง: 022db29c-d0e2-11e5-bb4c-60f81dca7676
  • ๋””๋ฐ”์ด์Šค ํƒ€์ž…์€ ์ •์ ์œผ๋กœ ํ•˜๋Š”๊ฐ€ ๋™์ ์œผ๋กœ ํ•ด์•ผํ•˜๋Š”๊ฐ€?

Context Rule

  • Rule
  • ์‹คํ–‰ ์•ก์…˜ N๊ฐœ
  • ๋ฐœ์ƒ ์ด๋ฒคํŠธ N๊ฐœ
  • ๋ฃฐ ์ข…๋ฅ˜
  • ๋ฃฐ์€ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ„๋กœ ์ •์˜
  • ๋ฃฐ์„ ์—์„œ Json ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์ฒ˜๋ฆฌ ํ•˜๋„๋ก ๊ตฌ์„ฑ ํ•„์š”(์Šคํฌ๋ฆฝํŠธ ์—”์ง„)
    DATA TYPERule
    All๊ธฐ๋ณธ ์ €์žฅ
    BITTrue/flas,On/Off
    NUMBER</>,= , ๋ฒ”์œ„๋‚ด, ๋ฒ”์œ„ ๋ฐ– /
    ARRAYํ•ฉ๊ณ„/ํ‰๊ท /๋ถ„์‚ฐ/๊ธฐ์šธ๊ธฐ/๋น„ํŠธ์—ฐ์‚ฐ
    STRING๊ฐ™๋‹ค / ๋‹ค๋ฅด๋‹ค
    Json์†์„ฑ ์—ฐ์‚ฐ

Context Action

  • ๋ฃฐ์— ๋”ฐ๋ผ์„œ ์ˆ˜ํ–‰๋˜๋Š” ์•ก์…˜
  • ์ €์žฅ
  • ๋ฉ”์‹œ์ง€ ์ „์†ก
  • ์ถ”๊ฐ€๋ฃฐ ์ง€์ •
  • ์ƒˆ๋กœ์šด ํ…Œํฌ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ ˆ๋””์Šค์— ์ €์žฅ
  • ์—ฐ์‚ฐ ์ €์žฅ

Context Event

  • ๋ฃฐ์— ๋”ฐ๋ผ์„œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
  • ๊ทธ๋ฃน์— ๋”ฐ๋ผ์„œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
  • ํƒ€์ž„ ๋ผ์ธ์— ๋””์Šคํ”Œ๋ ˆ์ด ํ•˜๊ธฐ ์ข‹์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ ธ์•ผ ํ•จ
  • ์ด๋ฒคํŠธ ํƒ€์ž…์„ ๊ฐ€์ง„๋‹ค. (์•Œ๋žŒ,์•Œ๋ฆผ,์ •์˜,ํ–‰์œ„ )

Context Event History ๊ตฌ์„ฑ

  • ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ

Context Action History ๊ตฌ์„ฑ

  • ์•ก์…˜ ์ฒ˜๋ฆฌ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ

UI (Vue.js)

Dashboard :๋Œ€์‰ฌ ๋ณด๋“œ ๊ตฌํ˜„์€ ์ตœํ•˜์œ„

  • ๋ณต์ˆ˜์˜ ๋Œ€์‰ฌ ๋ณด๋“œ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ
  • Layout ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๋ฐฉ์•ˆ ๋ชจ์ƒ‰
  • ์‚ฌ์šฉ์ž ๊ตฌ์„ฑ ๊ฐ€๋Šฅ
  • ์‚ฐ์—…์šฉ ๊ตฌ์„ฑ์— ์ ํ•ฉํ•˜๋„๋ก ๊ตฌ์„ฑ
  • SCADA ์ž‘ํ™”์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•ด ๋ณด์ž

TagWeget

  • TAG๋ณ„ ์œ„์ ฏ ์ง€์ •
  • ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ๋”ฐ๋ผ์„œ ์ง€์ •
  • ๊ฐ์ฒด๋Š” ๋ชจ์–‘์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋ณต์ˆ˜๋„ ์ง€์ •

WegetGroup

  • ๋ณต์ˆ˜์˜ ์œ„์ ฏ ๊ตฌ์„ฑ
  • ๊ทธ๋ฃน ๊ฐ์ฒด ์ง€์ •(๊ทธ๋ฃน ๊ฐ์ฒด ๋ชจ์–‘๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ตฌ์„ฑ)
  • ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณด์ด๋Š” ๋ทฐ๋„ ์žˆ์—ˆ์œผ๋ฉด ํ•œ๋‹ค. ํด๋ฆญ์‹œ ํฐ ํ™”๋ฉด์„ ๋ณด์—ฌ์คŒ(์•„์ด๋””์–ด)

๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ํ”„๋กœ์„ธ์Šค

Celery ๋ฅผ ์ด์šฉํ•œ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ(ํ•ด๋‹น ๋ถ€๋ถ„ ๋ณ€๊ฒฝ ์˜ˆ์ •)

  1. ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค.
  2. ๋™์ผ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ •์ง€ ์—†์ด ๊ณ„์† ์ˆ˜์ง‘ํ•œ๋‹ค.
  3. ์…€๋Ÿฌ๋ฆฌ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ์„ ๋„ฃ๋Š”๋‹ค.
  4. ์…€๋Ÿฌ๋ฆฌ์—์„œ ์—‘์…˜์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์„ ์ด์šฉํ•ด์„œ Chain ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  5. ๊ทธ๋ฃน๋‹จ์œ„๋กœ ํ…Œํฌ ์ฒ˜๋ฆฌ
  6. ์ด์Šˆ ํด๋ž˜์Šค๋กœ ์ฒ˜๋ฆฌํ•  ํ•„์š” ์žˆ์Œ

Linker Context Engine (๋ฃฐ ์—”์ง„ ์ฒ˜๋ฆฌ)

  1. ๋ ˆ๋””์Šค์— ๋„ฃ์€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ํ”„๋กœ์„ธ์Šค๋กœ ์ฒ˜๋ฆฌ ํ•œ๋‹ค.
  2. ๊ทธ๋ฃน๋‹จ์œ„ ํ”„๋กœ์„ธ์Šค ํ…Œ๊ทธ ๋‹จ์œ„ ํ”„๋กœ์„ธ์Šค
  3. ํ•ด๋‹น ๋ฉ”์‹œ์ง€์˜ ์†์„ฑ์„ ๊ฐ’์„ ๋น„๊ตํ•ด์„œ ์ฒ˜๋ฆฌ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ • ํ•œ๋‹ค.
  4. ์ดˆ๊ธฐ์—๋Š” ํ•ด๋‹น ํ…Œํฌ ๊ธฐ๊ฐ„ ๋“ฑ์„ ์ง€์ •ํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋Ÿฌ๋ฅผ ์ €์žฅํ•˜๋„๋ก ํ•˜์ž
  5. ๊ธฐ๊ฐ„,Tag or Group ์ง€์ •, ์กฐ๊ฑด ์ง€์ • ๋ณต์ˆ˜์˜ ์•ก์…˜์„ ์ง€์ •
  6. ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„์„ค๊ณ„ ํ•„์š”

์ปจํ…์ŠคํŠธ ์ฒ˜๋ฆฌ ๊ตฌ์กฐ
๋ฆฌ์†Œ์Šค: Tag/ Group/ ๋ฐ์ดํ„ฐ (๋ฉ”์‹œ์ง€)
์กฐ๊ฑด : < > = ๊ธฐ๊ฐ„
์•ก์…˜ : ํŒŒ์ผ์ €์žฅ

ActionAdapter: ํ•„์š”ํ•œ๊ฐ€?

Action ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋Š” Adpter

  • FilerAdapter
  • RestAdapter
  • MailAdapter

๋””๋ฐ”์ด์Šค ๋ณ„ ์ปค๋„ฅ์…˜ ๊ด€๋ฆฌ

  • ๋””๋ฐ”์ด์Šค ํƒ€์ž„์•ˆ์›ƒ ์‹œ๊ฐ„ ๋™์•ˆ ๋ณด์œ ํ•œ ํ…Œ๊ทธ์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์—†์„ ๊ฒฝ์šฐ TimeOut ์œผ๋กœ ํŒ๋ณ„
  • ๋””๋ฐ”์˜์— ์ฃผ๊ธฐ์ ์œผ๋กœ ํ•‘์„ ๋‚ ๋ ค์„œ ์ปค๋„ฅ์…˜์„ ํ™•์ธ (์ •์ƒ์ ์ธ ์ž‘๋™์ด ์–ด๋ ค์›€)

Celery Task ์ž‘์—…

  • task Type ์ฃผ๊ธฐ์ ์ธ ์ž‘์—…
  • ์ผํšŒ์„ฑ ์ž‘์—…
  • ์ผ์ • ๊ธฐ๊ฐ„๋™์•ˆ ์œ ์ง€๋˜๋Š” ์ž‘์—… ?? ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ ํ•„์š”
  • ๊ธด ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…

message ์ˆ˜์‹ 

  1. ๋ ˆ๋””์Šค ํ๋ฅผ ๊ฐฑ์‹  ํ•œ๋‹ค.
  2. ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ๋ ˆ๋””์Šค์— ๋„ฃ๋Š”๋‹ค. Set Json ํ˜•ํƒœ๋กœ ๋„ฃ๋Š”๋‹ค.
  3. ํ๋Š” ๊ทธ๋ฃน ๋ฐ ํ…Œํฌ์˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์— ๋”ฐ๋ผ์„œ ์ฒ˜๋ฆฌ ํ•œ๋‹ค.
  4. ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฃฐ์— ๋”ฐ๋ผ์„œ ๊ทธ๋ฃน์ด๋‚˜ ํ…Œ๊ทธ์˜ ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌ ํ•œ๋‹ค. ์•„์ง ๋ฃฐ์˜ ์ •๋ณด ์ฒ˜๋ฆฌ ๋ฐฉ์‹์€ ์•„์ง ๋ฏธ์ •

Websocket

  • Dashboard Websocket ๊ธฐ๋Šฅ ์ถ”๊ฐ€

DATA Pub/Sub (TAG,DEVICE,History)

์‹œ์ž‘ํ•˜๊ธฐ(ํŠœํ† ๋ฆฌ์–ผ ์ž‘์„ฑ )

์„ค์น˜ํ•˜๊ธฐ (Raspbarrypie,Ubuntu)

Service Application Start

  • IoTLinker run

Redis Install

mosquitto Install

mosquitto start

mosquitto -v or service moquitto start 

MQTT

Node-Red Install // ํ•„์š” ํ•œ๊ฐ€?

Mongo DB

Mongodb Service Start

์„œ๋น„์Šค ์ž๋™์‹œ์ž‘ systemctl enable mongod.service

์„œ๋น„์Šค ์ˆ˜๋™ ์‹œ์ž‘ sudo service mongod start

๋””๋ฐ”์ด์Šค ๊ฒŒ์ดํŠธ์›จ์ด

  • ๊ฐ ๋…ธ๋“œ๋“ค์ด ๋””๋ฐ”์ด์Šค ์ •๋ณด๋ฅผ ๊ฒŒ์ดํŠธ์›จ์ด์— ๋“ฑ๋กํ•˜๊ณ  ์š”์ฒญ์‹œ UUID ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.
  • ๋””๋ฐ”์ด์Šค ๋ฐ์ดํ„ฐ ์บ์‰ฌ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹น
  • ๊ฐ ๋…ธ๋“œ๋ฅผ ๋„คํŠธ์›Œํฌ๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ์•ž๋‹จ์—์„œ ๊ฒŒ์ดํŠธ ์›จ์ด๋ฅผ ํ†ตํ•ด์„œ ์—ฌ๋Ÿฌ ๋…ธ๋“œ๋ฅผ ํ†ตํ•ฉ