새소식

EDUCATION/IoT 서비스

[IoT 서비스] 기본기능 실습

  • -

(2021/09/14 pm 02:00)

오전 IoT 서비스기능을 실습하기 위한 환경구축을 마무리하고 오후부터는 기본 기능 실습에 들어갈 예정이다.

실습 과정은 Centos에서 구동되는 Mobius 서버에서 mysqlDB에 데이터를 입출력 하는 api이다.

1. RSET API

1) Postman : REST API를 테스트 해 볼 수 있는 프로그램

- 하단의 주소에서 Mobius API 설치 후 Windows에 설치한 Postbox에 import 해준다. 

url : https://github.com/IoTKETI/oneM2M-API-Testing

 

GitHub - IoTKETI/oneM2M-API-Testing: oneM2M API scripts for testing

oneM2M API scripts for testing. Contribute to IoTKETI/oneM2M-API-Testing development by creating an account on GitHub.

github.com


링크 주소를 통해 Download ZIP 파일을 다운 받아 Mobius-release2 (json).postman_collection.json 파일을 import 시킴


postbox에 해당 파일을 import하였다면 좌측에 api query 함수들을 볼 수 있다.

 

2) cb 조회

: Centos7의 Mobius를 확인하는 과정

- Centos에서 "ip addr" 명령어로 ip 주소를 조회 후,  API cb조회에 url를 입력하여 mobius를 확인하자

- url : 192.168.0.220:7579/Mobius (ip 주소:7579/Mobius)

Virtural Box에서 내 ip 주소 조회


url로 호출 후 cb조회 반환 값 

API Send를 보냈을때 위와 같은 json 형태의 반환값을 넘겨주면 Mobius가 구동되고 있다고 할 수 있다.

(단, Centos에서 Mobius를 실해해줘야 api로 확인이 가능하다 : "node Mobius" )

 

2. 디바이스 등록, 데이터 전송/확인

순서 : ae(디바이스) 생성 -> cnt(컨테이너) 생성 -> cin(데이터 전송) 생성 ->sub 생성 (다른 방을 구독) : 실제 값을 받을 수 있다.

(sub 생성은 필수적인 과정이 아니니 참고, 단 구독을 하였다면 해당 디바이스가 데이터를 넘겨받아 구독한 방에 접근할 수 있다.)

1) ae생성

디바이스 생성이라 하며 디바이스 생성 과정이 있어야 컨테이너를 생성하여 데이터 전송을 할 수 있다.

Headers부분 :  Post url에 cb조회때와 동일, X-M2M-RI 와  X-M2M-Orgin에 값을 입력   

X-M2M-RI : REST에서는 고정적인값을 넣어 생성 했지만 MQTT로 실행을 할 경우에는 랜덤수를 넣어 줘야한다.

(랜덤수를 넣어주지 않고 값을 고정하면 한번은 생성되지만, 어느순간 까지 생성이 되지않는 문제가 발생한다고 함)


Body부분 : "rn" 디비에 들어갈 디바이스명, "lbl" 간편하게 조회할 이름값 


ae 생성후 반환되는 속성 값 

rn : 디바이스 이름, ty : 디바이스 생성 구분값, ri : headers에서 준 X-M2M-Orgin, lbl : 지정한 라벨

 

2) cnt생성

ae 생성과 동일하지만 url 끝에 생성한 ae의 "rn"을 붙여 생성하는 것이 다르다.

url 끝에 이전에 생성한 ae의 rn명이 붙어있는 모습을 볼 수 있다.

(header의 X-M2M-RI 와  X-M2M-Orgin는 ae 생성때와 동일하게 했다.)

 

3) cin생성

생성이라고 하지만 데이터 전송/등록이라 할 수 있다.

cnt 생성때와 마찬가지로 내가 넣고싶은 컨테이너 rn명을 url 끝에 붙여 생성한다.

"con" 이라는 key값 안에 jsonString 형식으로 값을 넣어 데이터 등록을 한다.

 

4) discovery

내가 생성한 ae, cnt, 등록한 데이터 등을 조회 하며 list or attribute 로 구분하여 조회 할 수 있다.

내가 등록한 모든 cnt정보와 cin 정보를 조회 해 보았다.

192.168.0.220:7579/Mobius/ae_create?fu=2&rcn=4 url로 조회


{
    "m2m:rsp": {
        "m2m:cin": [
            {
                "pi": "3-20210914064904450974",
                "ri": "4-20210914064950222692",
                "ty": 4,
                "ct": "20210914T064950",
                "st": 1,
                "rn": "4-20210914064950221",
                "lt": "20210914T064950",
                "et": "20230914T064950",
                "cs": 47,
                "cr": "ae_test",
                "con": [
                    {
                        "str": "테스트 문구2",
                        "eng": "test Str2"
                    }
                ]
            },
            {
                "pi": "3-20210914061037429011",
                "ri": "4-20210914062823474363",
                "ty": 4,
                "ct": "20210914T062823",
                "st": 1,
                "rn": "4-20210914062823473",
                "lt": "20210914T062823",
                "et": "20230914T062823",
                "cs": 45,
                "cr": "ae_test",
                "con": [
                    {
                        "str": "테스트 문구",
                        "eng": "test Str"
                    }
                ]
            }
        ]
    }
}

 

- fu : 1/2 로 구분하며 1은 리스트를 2는 속성값을 조회 한다.

- rcn : 정확이 어떤 구분 값이 어떤 역할을 하는지 아직 분석하지 않았지만 4로 데이터 조회 시 모든 리스트의 모든 속성을 조회하여 보여준다.


REST_API_for_Mobius_Rel2.pdf
3.68MB
Mobius-release2 (json).postman_collection.json
0.05MB

Mobius API 사용에 관련한 pdf 파일과 API json 파일이다.


'EDUCATION > IoT 서비스' 카테고리의 다른 글

[IoT 서비스] 모뎀을 이용한 기본기능 실습  (0) 2021.09.15
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.