nCube:Thyme for Arduino Application : nCube Air (Korean) nCube Air Data Retrieve with oneM2M API - IoTKETI/nCube-Thyme-Arduino GitHub Wiki

nCube-Air Data Retrieve with oneM2M API

1. oneM2M-API-Testing importing to Postman

oneM2M API๋ฅผ ์ด์šฉํ•˜๋ฉด, oneM2M Resource Monitor for Mobius๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ๋”์šฑ ๋‹ค์–‘ํ•œ ์กฐ๊ฑด์„ ์ด์šฉํ•˜์—ฌ nCube-Air๊ฐ€ Mobius์— ์ƒ์„ฑํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š”๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.


https://github.com/IoTKETI/oneM2M-API-Testing ์— ์ ‘์†ํ•˜์—ฌ API Collections์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ณ  ์••์ถ•์„ ํ•ด์ œํ•œ๋‹ค.


https://www.getpostman.com/downloads/ ์— ์ ‘์†ํ•˜์—ฌ ๊ฐœ๋ฐœํ™˜๊ฒฝ์˜ OS์— ๋งž๋Š” Postman installer๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ณ , ์‹คํ–‰์‹œ์ผœ Postman์„ ์„ค์น˜ํ•œ๋‹ค.


Postman ์„ค์น˜๋ฅผ ์™„๋ฃŒํ•œ ๋’ค, Postman์„ ์ตœ์ดˆ๋กœ ์‹คํ–‰ํ•œ ํ™”๋ฉด์ด๋‹ค.
ํšŒ์›๊ฐ€์ž…์„ ํ•˜๊ฑฐ๋‚˜ Google ID์™€ ์—ฐ๋™ํ•˜์—ฌ ์ด์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณ„๋„์˜ ํšŒ์›๊ฐ€์ž…์„ ์›์น˜ ์•Š์„๊ฒฝ์šฐ, X ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ํšŒ์›๊ฐ€์ž… ์—†์ด ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


Postman์˜ ๋ฉ”์ธ ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚˜๋ฉด, Import ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.


Import ์ฐฝ์—์„œ Choose Files๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ , ์œ„์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ oneM2M-API-Testing ์˜ Mobius2 release2 (json)ํŒŒ์ผ์„ ์„ ํƒํ•˜๊ณ  ์—ด๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค.


Postman์˜ ๋ฉ”์ธ ํ™”๋ฉด ์™ผ์ชฝ์€ Collections ํƒญ์„ ํด๋ฆญํ•˜๋ฉด Mobius release2 (json) API๋“ค์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ถ”๊ฐ€๋œ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

2. Postman Environment Setup


Mobius release2 (json) API๋“ค์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ™˜๊ฒฝ์„ค์ •์˜ ์ถ”๊ฐ€๊ฐ€ ํ•„์š”ํ•˜๋‹ค. Postman์˜ ์šฐ์ธก ์ƒ๋‹จ์— ์œ„์น˜ํ•œ ํ†ฑ๋‹ˆ๋ฐ”ํ€ด ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜๊ณ , MANAGE ENVIRONMENTS์ฐฝ์˜ Add ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.


Add Environment ์ฐฝ์ด ๋‚˜ํƒ€๋‚˜๋ฉด, Mobius๋กœ ์ด๋ฆ„์„ ์„ค์ •ํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•œ ๋’ค์— Add ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

  VARIABLE  |   INITIAL VALUE
   mp_url   |   http://203.253.128.161:7579
----------------------------------------------
    cb      |   Mobius




์œ„์—์„œ ์ž…๋ ฅํ•œ Mobius ํ™˜๊ฒฝ์„ค์ •์ด ์ž…๋ ฅ๋œ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ , X ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ํ™˜๊ฒฝ ๊ด€๋ฆฌ ์ฐฝ์„ ๋‹ซ๋Š”๋‹ค.


Postman์˜ ๋ฉ”์ธ ํ™”๋ฉด ์šฐ์ธก ์œ„์— No Environment์˜ ์šฐ์ธก ๋“œ๋กญ๋‹ค์šด๋ฉ”๋‰ด ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ , ์œ„์—์„œ ์ถ”๊ฐ€ํ•œ Mobius ํ™˜๊ฒฝ์„ ์„ ํƒํ•œ๋‹ค.

3. Latest cin Retrieving


Mobius release2 (json) ์ฝœ๋ ‰์…˜์—์„œ cin ์กฐํšŒ ํ•ญ๋ชฉ์„ ์„ ํƒํ•œ ๋’ค์—, ์กฐํšŒํ•˜๊ณ ์ž ํ•˜๋Š” cin ๋ฆฌ์†Œ์Šค์˜ path๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Send ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.
์ด ์˜ˆ์ œ์—์„œ path์˜ ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
{{mp_url}}/{{cb}}/[AE Name]/[container Name]/la
{{mp_url}}๊ณผ {{cb}}๋Š” ์œ„์—์„œ ์„ค์ •ํ•œ ํ™˜๊ฒฝ์˜ ๊ฐ’์— ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€ํ™˜๋˜์–ด Postman์ด ๋ณด๋‚ด๋Š” API์˜ ๋ชฉ์ ์ง€๊ฐ€ ๋œ๋‹ค.
http://203.253.128.161:7579/Mobius/[AE Name]/[container Name]/la
path์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์˜ la๋Š” latest์˜ oneM2M ํ‘œ์ค€์ƒ short name์ด๋ฉฐ, ์ƒํ™ฉ์— ๋”ฐ๋ผ short name ํ˜น์€ full name์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
API์˜ ๋ชฉ์ ์ง€ path๋ฅผ container ํ•˜์œ„์˜ latest๋กœ ์„ค์ •ํ•จ์œผ๋กœ์จ, Mobius๊ฐ€ container ํ•˜์œ„์— ์žˆ๋Š” ๊ฐ€์žฅ ์ตœ์‹ ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜์˜€๋‹ค.


์œ„์™€๊ฐ™์ด nCube-Air๊ฐ€ tvoc container ํ•˜์œ„์— ์ƒ์„ฑํ•œ tvoc ๊ฐ’์„ ํฌํ•จ์‹œํ‚จ cin ๋ฆฌ์†Œ์Šค๋ฅผ Mobius๋กœ ๋ถ€ํ„ฐ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

4. Resource Discovery with Filter conditions

4.1 Filter conditions

oneM2Mํ‘œ์ค€์˜ Mobius IoT ์„œ๋น„์Šค ํ”Œ๋žซํผ์€ Discovery ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
Mobius๊ฐ€ ์ œ๊ณตํ•˜๋Š” Filter์˜ ์ข…๋ฅ˜์™€ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Filter meaning
fu discovery ๊ธฐ๋Šฅ ์‚ฌ์šฉ
ty ๋Œ€์ƒ์˜ ๋ฆฌ์†Œ์Šค ํƒ€์ž…
cra Create After
crb Create Before
lim ์ตœ๊ทผ ์ˆœ์œผ๋กœ ๊ฐฏ์ˆ˜ ์ œํ•œ

fu filter์˜ ๊ฐ’์œผ๋กœ๋Š” discovery ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•จ์„ ์˜๋ฏธํ•˜๋Š” 1์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
ty filter์˜ ๊ฐ’์œผ๋กœ๋Š” discovery ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค์˜ ํƒ€์ž… ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฆฌ์†Œ์Šค๋ณ„ ํƒ€์ž… ๋ฒˆํ˜ธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

resource type number
CSEBase 1
AE 2
container(cnt) 3
contentInstance(cin) 4
subscription(sub) 23

cra,crb filter์˜ ๊ฐ’์œผ๋กœ๋Š” discovery ๋Œ€์ƒ ๊ธฐ๊ฐ„์˜ ๋‚ ์งœ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚ ์งœ์˜ ํ‘œํ˜„ ํ˜•์‹์€ yyyyMMdd์ด๋ฉฐ, ํŠน์ • ์‹œ๊ฐ„ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” yyyyMMddTHHmmss ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
lim filter์˜ ๊ฐ’์œผ๋กœ๋Š” discovery ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค์˜ ๊ฐœ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

2019๋…„ 1์›” 1์ผ ์˜คํ›„ 3์‹œ 30๋ถ„ ์ดํ›„๋ถ€ํ„ฐ 2019๋…„ 1์›” 31์ผ ๊นŒ์ง€ ์ƒ์„ฑ๋œ co2 cnt ์•„๋ž˜์˜ cin ๋ฆฌ์†Œ์Šค ์ค‘ ์ตœ์‹  20๊ฐœ๋ฅผ discovery ํ•˜๋Š” API target path๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
{{mp_url}}/{{cb}}/air1-keti?fu=1&ty=4&cra=20190101T153000&crb=20190131&lim=20

4.2 nCube-Air Sensor Data Resource Discovery


Mobius release2 (json) ์ฝœ๋ ‰์…˜์—์„œ discovery ํ•ญ๋ชฉ์„ ์„ ํƒํ•œ ๋’ค์—, ์กฐํšŒํ•˜๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ์˜ path์™€ Filter๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Send ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.
๋ณธ ์˜ˆ์ œ์—์„œ๋Š” 2019๋…„ 1์›” 1์ผ๋ถ€ํ„ฐ 2019๋…„ 2์›” 1์ผ ์˜คํ›„ 12์‹œ ๊นŒ์ง€ nCube-Air๊ฐ€ co2 cnt์— ์—…๋กœ๋“œํ•œ cin ๋ฆฌ์†Œ์Šค ์ค‘ ์ตœ๊ทผ ์ˆœ์œผ๋กœ 10๊ฐœ๋ฅผ Discovery ํ•˜๋ฉฐ, ํ•ด๋‹นํ•˜๋Š” API target path๋Š” {{mp_url}}/{{cb}}/air1-keti/co2?fu=1&ty=4&cra=20190101&crb=20190201T120000&lim=10 ์ด๋‹ค.


Discovery ๊ฒฐ๊ณผ ๋Œ€์ƒ path๋ฅผ ํฌํ•จํ•˜์—ฌ filter ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ๋ฆฌ์†Œ์Šค 10๊ฐœ์˜ path๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์ด๋กœ์„œ oneM2M API์™€ Postman์„ ์ด์šฉํ•˜์—ฌ nCube-Air๊ฐ€ ์—…๋กœ๋“œ ํ•œ ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ , Discovery๋ฅผ ์ด์šฉํ•˜์—ฌ ์กฐ๊ฑด์„ ์ด์šฉํ•œ ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐํšŒ๋ฅผ ์™„๋ฃŒํ•˜์˜€๋‹ค.

Contents

  1. Indroduction
  2. Development Environment Setup
  3. nCube-Air Board & Sensors Setup
  4. nCube-Air Setup & Execution
  5. nCube-Air Data Retrieve & LED Control
  6. nCube-Air Date Retrieve with oneM2M API
โš ๏ธ **GitHub.com Fallback** โš ๏ธ