< Setting >
mp_url2 : http://203.253.128.177:7579
cb : Mobius
Body에서 "rn"은 사용자가 지정하는 부분이다.
필자는 rn을 donggong 이라고 선언했다. donggong은 필자가 속한 공모전 팀명이다.
rn은 Resource name을 의미한다.
아래의 UI는 리소스 모니터라고 칭한다.
위에서 생성한 ae가 정상적으로 생성된 것을 알 수 있다.
ae 조회하기 Postman에서 조회도 가능하다는 것을 알 수 있다.
지금까지의 과정을 정리하면 다음과 같다.
1. Postman에서 ae 생성
2. 리소스 모니터에서 ae가 생성된 것을 확인
3. Postman에서 ae 조회
위에 했던 내용을 바탕으로 우리는 IoT 디바이스와 모비우스 서버 사이에서 데이터를 송수신 할 수 있다.
예시로 LED와 선풍기 전원을 제어하는 시나리오를 서버로 구현해 보자.
donggong(resource name)팀은 LED와 선풍기를 각각 제어해야한다.
LED와 선풍기를 제어하는 controller는 각각 따로 있기 때문에다.
따라서 donggong의 자식 node로 LED를 제어하는 node와 선풍기를 제어하는 node를 생성해줘야 한다.
리소스 모니터는 tree형태 이므로, node로 쉽게 비유했지만, 원래는 cnt (container)라고 칭한다.
그렇다면 두 개의 노드를 생성해보자.
4.LED 노드 & 선풍기 노드 생성
코드를 한번 보자.
{
"m2m:cnt": {
"rn": "LED",
"lbl": ["ss"],
"mbs": 16384
}
}
모비우스 서버에서 제공되는 "container" 리소스를 생성하기 위한 JSON 형식의 데이터이다. "container" 리소스는 데이터나 다른 리소스를 저장하는 데 사용된다.
이 JSON 데이터에는 "rn", "lbl", "mbs" 등의 키가 포함되어 있다.
- "rn" (resource name): 이 리소스의 이름을 지정한다. 위의 예에서는 "LED"로 지정되어 있다.
- "lbl" (labels): 이 리소스를 식별하는 데 사용되는 라벨의 리스트를 지정한다. 위의 예에서는 "ss" 라벨이 지정되어 있다.
- "mbs" (maximum byte size): 이 리소스가 저장할 수 있는 최대 바이트 수를 지정한다. 위의 예에서는 16384로 지정되어 있다.
위 JSON 데이터는 HTTP POST 메소드를 사용하여 모비우스 서버에 전송하면, 서버는 해당 "container" 리소스를 생성하게 된다.
선풍기 또한 rn을 "fan"으로 선언한 후 오른쪽 위 Send 버튼을 눌러서 생성할 수 있다.
HTTP 메소드 GET, POST를 확인하는 것을 명심하자.
POST는 생성, GET는 조회라고 생각하면 이해하기 쉽다.
이제 각각의 컨테이너에 데이터를 전송하여 제어하면 끝이다.
각각의 노드에 생성되는 ex) on/off 등의 값은 Container instance 줄여서 cin이라고 한다.방법은 지금 까지 했던 것과 매우 유사하다.
값을 생성할 것이기 때문에 HTTP 메소드는 POST로 설정 후, 뒤에 URL은 {{mp_url2}}/{{cb}}/donggong/LED 로 지정한다. mp_url2와, cb는 맨처음에 선언한 econding된 변수이다. C언어로 비유하자면 #define해서 선언한 상수와 유사하다. 그 다음으로 donggong, LED순으로 경로를 따라 인스턴스가 생성되는 개념이다.
"con"은 CI 리소스의 실제 데이터 내용(content)을 나타낸다.
선풍기 또한 다음과 같이 값을 전송할 수 있다.
값이 정상적으로 생성된 것을 확인할 수 있다. 조회 또한 가능하다. 직접 해보는 것을 추천한다.
다음 시간에는 센서에서 직접 값을 송수신하여 확인하는 방법을 알아보자