Node-RED ๊ฐœ์š”

Prev Next

์ด ๋ฌธ์„œ์—์„œ๋Š” Node-RED์— ๋Œ€ํ•œ ์š”์•ฝ๊ณผ ์„ค๋ช…, ๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ Tulip Edge ๋””๋ฐ”์ด์Šค์— ์‚ฌ์šฉ์ž ์ง€์ • ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Node-RED๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Node-RED๋Š” ์›๋ž˜ IBM์˜ ์‹ ํฅ ๊ธฐ์ˆ  ์„œ๋น„์Šค ํŒ€์—์„œ ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ”Œ๋กœ์šฐ ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋„๊ตฌ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๊ฐ์ ์ธ ๋กœ์šฐ์ฝ”๋“œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜์—ฌ ํ”Œ๋กœ์šฐ๋ฅผ ์ƒ์„ฑํ•จ์œผ๋กœ์จ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ์ƒ˜ํ”Œ ํ”Œ๋กœ์šฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

๋ฉ”์‹œ์ง€๋Š” ํ•œ ๋…ธ๋“œ์—์„œ ๋‹ค์Œ ๋…ธ๋“œ๋กœ JSON ๊ฐ์ฒด๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋…ธ๋“œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ณ ๊ธ‰ ๋กœ์ง, ๋ถ„๊ธฐ ๊ฒฝ๋กœ ๋˜๋Š” ๋ณ‘๋ ฌ ์—ฐ์‚ฐ์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜คํ”ˆ ์†Œ์Šค ํŠน์„ฑ์ƒ ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” ๋…ธ๋“œ์™€ ํ”Œ๋กœ์šฐ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์˜จ๋ผ์ธ Node-RED ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์กฐ์—…์ฒด์™€ ํ†ตํ•ฉ์—…์ฒด๋Š” ์ข…์ข… ์žฅ์น˜์™€ ์ธํ„ฐํŽ˜์ด์Šคํ•˜๊ธฐ ์œ„ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋…ธ๋“œ๋ฅผ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Tulip์€ Tulip ๋จธ์‹  ๋ฐ ํ…Œ์ด๋ธ” API์™€ ์ธํ„ฐํŽ˜์ด์Šคํ•˜๊ธฐ ์œ„ํ•œ ๋…ธ๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

Node-RED์™€ Tulip

๋ชจ๋“  Tulip ์—์ง€ ๋””๋ฐ”์ด์Šค์—๋Š” Node-RED๊ฐ€ ์‚ฌ์ „ ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ํฌํ„ธ์˜ Node-RED ํŽธ์ง‘๊ธฐ ๋งํฌ(์žฅ์น˜์˜ IP ์ฃผ์†Œ์—์„œ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ)๋ฅผ ํ†ตํ•ด ๋˜๋Š” ํฌํŠธ 1880์—์„œ ์ง์ ‘(์ฆ‰, <์žฅ์น˜์˜ IP ์ฃผ์†Œ>:1880์œผ๋กœ ์ด๋™) Node-RED์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค.

๊ณ ๊ธ‰ ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜, ๋ณต์žกํ•œ ์‹œ์Šคํ…œ๊ณผ ์ธํ„ฐํŽ˜์ด์Šคํ•˜๊ฑฐ๋‚˜, ์—ฃ์ง€ ๋””๋ฐ”์ด์Šค์—์„œ ๊ณ ์œ ํ•œ ๋””๋ฐ”์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด Node-RED๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์—์ง€ ๋””๋ฐ”์ด์Šค์—์„œ๋Š” Node-RED๋ฅผ Tulip ์šด์˜๊ณผ๋Š” ์™„์ „ํžˆ ๋…๋ฆฝ๋œ '์ƒŒ๋“œ๋ฐ•์Šค' ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ฐ„์ฃผํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Node-RED์˜ '์ธ'๊ณผ '์•„์›ƒ' ํ†ต์‹ ์€ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ํ˜•ํƒœ๋ฅผ ์ทจํ•ฉ๋‹ˆ๋‹ค:

Node-RED์™€์˜ '์ธ' ํ†ต์‹ 

  1. Tulip์—์„œ Node-RED๋กœ '๋“ค์–ด์˜ค๋Š”' ๋ฉ”์‹œ์ง€(์˜ˆ: Tulip ์•ฑ ํŠธ๋ฆฌ๊ฑฐ์˜ ์‚ฌ์šฉ์ž ์ž…๋ ฅ)๋Š” ์ปค๋„ฅํ„ฐ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์™„๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์—์„œ๋Š” ์—์ง€ ๋””๋ฐ”์ด์Šค์—์„œ Tulip ์ปค๋„ฅํ„ฐ ํ•จ์ˆ˜๊ฐ€ ์‹œ์ž‘๋˜๋ฉฐ, ์ด ํ•จ์ˆ˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ Tulip OS์—์„œ Node-RED๋กœ ๋กœ์ปฌ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Tulip์—์„œ Node-RED๋กœ ๋ฉ”์‹œ์ง€ ์ „์†กํ•˜๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  2. ๋ชจ๋“  ์žฅ์น˜(์˜ˆ: USB ๋˜๋Š” GPIO) ๋˜๋Š” ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ ์†Œ์Šค(์˜ˆ: ์›น API, LAN ์žฅ์น˜)๋Š” ๊ด€๋ จ Node-RED ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Node-RED๋กœ ๋ฐ์ดํ„ฐ๋ฅผ '์ „์†ก'ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” RS-232, Modbus ๋˜๋Š” MQTT์™€ ๊ฐ™์€ ํ‘œ์ค€ ์‚ฐ์—… ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
  3. ์ธ์ ํŠธ ๋…ธ๋“œ๋Š” ์‚ฌ์šฉ์ž ์ž…๋ ฅ(ํด๋ฆญ)์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜์—ฌ ํ”Œ๋กœ์šฐ๋ฅผ '์‹œ์ž‘'ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Node-RED์˜ '์•„์›ƒ' ํ†ต์‹ 

  1. Node-RED์—์„œ Tulip์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ '์•„์›ƒ' ํ†ต์‹ ํ•˜๋ ค๋ฉด, Tulip ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Machine Attributes ๋˜๋Š” Tables API๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Tulip ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Node-RED์—์„œ Tulip์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „์†กํ•˜๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  2. ๋˜ํ•œ Node-RED๋Š” RS-232 ๋˜๋Š” Modbus ๋ช…๋ น์„ ๋ณด๋‚ด๊ฑฐ๋‚˜ ์™ธ๋ถ€ API ๋˜๋Š” MQTT ๋ธŒ๋กœ์ปค๋ฅผ ํด๋งํ•˜๋Š” ๋“ฑ ์žฅ์น˜์— ์žˆ๋Š” ํฌํŠธ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.