DEKIST RN17x 제품을 구입하여 주셔서 감사합니다.
RN17x 모델은 HTTP를 지원하도록 설계된 전송기 입니다. 따라서, 고객이 개발한 웹 서버와 전송기를 연동하는 모니터링 환경을 구축할 수 있습니다.
라디오노드(Radionode) RN171 / RN172 제품을 고객이 개발한 웹 서버와 연동하기 위한 설정 방법을 알려드립니다. 이것은 Radionode V2 프로토콜 입니다.
– 웹 서버 개발자가 할 일
고객의 웹 서버에 RN17X의 측정 데이터를 받기 위해서는 고객의 웹 서버에 CHECK-IN, DATA-IN 두 가지 기능을 담당하는 응용프로그램 라디오노드 프로토콜 V2가 구현되어 있어야 합니다.
HTTP GET/POST로 들어오는 파라미터를 받아 DB에 저장하는 어플리케이션를 고객이 만들어야 합니다.
- CHECK-IN : 장치가 ON되거나 사용 중 장비의 정보(mac 주소 , IP주소 등)를 주기적으로 전달하며, 시간 동기화 기능을 수행합니다.
- DATA-IN: 사용 중에 시간정보와 함께 모든 채널의 센서값을 주기적으로 전송하는 기능을 수행합니다. 시간 정보는 UNIX TimeStamp를 사용합니다.
위의 내용을 구현하기 위해서는 Radionode Protocol V2 문서를 참고해주세요. RN400 과 RN17X는 동일한 프로토콜을 사용하고 있습니다.
RN17X에 서버 정보 설정하기
1.USB 케이블로 RN17X와 PC를 연결합니다. 별도의 전원은 필요없습니다. 화면에 CONF라고 표시가 되면 USB 설정 준비가 완료된 것 입니다.
2.라디오노드 터미널 프로그램을 실행합니다. 녹색화면으로 바뀌면 정상입니다.
3.비밀번호 radionode114를 입력하고 콘솔 메뉴로 진입합니다.
4. “2.System Setup” 메뉴로 진입하여 “B.Set Destination of HTTP”를 선택합니다. 3개의 목적지 중에서 “2:CUSTOMER_V2″를 선택합니다. 데이터의 목적지를 사용자 정의 서버 V2로 선택한 것입니다.
5.서버의 주소와 어플리케이션을 설정하기 위해 “4.HTTP Destination Setup”을 선택합니다. 이곳에서 HTTP 서버의 IP 혹은 도메인 주소 그리고 포트번호를 입력합니다.
6.위에서 언급한 서버의 어플리케이션 2개 Checkin과 Datain도 동일하게 “4.HTTP Destination Setup” 에서 설정을 합니다. “D.HTTP CHECKIN File”에 사용자가 개발한 어플리케이션 파일의 경로를 입력합니다. 예를 들면, “radionode/checkin.php”과 같이 입력합니다. “F.HTTP DATAIN File”에도 마찬가지로 사용자 정의 URL<예,”radionode/datain.php”> 을 입력하여 RN17X가 서버의 특정 경로로 데이터를 전송할 준비를 합니다.
7.모든 설정이 마무리 되었습니다. 장치를 재부팅 하면 사용자가 입력한 URL로 데이터를 주기적으로 전송합니다. RN17X 제품은 1분에서 60분까지 전송주기를 선택할 수 있습니다. 기본값은 5분입니다.
8.네트워크의 연결이 끊기면, RN171는 측정된 데이터를 내부의 메모리에 저장합니다. 저장된 데이터가 존재한다면, RN171은 1분 30초 마다 데이터 전송을 다시 시도합니다. 인터넷 연결이 가능하게 되면 ,메모리에 저장된 데이터는 datain 방식을 사용하여 서버로 재전송됩니다.
참고자료
RN17X 장치에 입력할수 있는 RADIONODE Test Server 주소
HTTP 연결을 확인할수 있는 TEST SERVER 이기 때문에 장기적인 TEST 목적에는 적합하지 않습니다.
Host: http://52.192.181.203
Port: 80
Datain URL: /datain.php
Checkin URL: /checkin.php
장치에 들어온 최종값 확인: http://52.192.181.203/cur.php
장치에 들어온 최근값 확인: http://52.192.181.203/history.php
주의사항
RN17X 장치의 콘솔에 Datain URL, Checkin URL에 값을 입력 시 기본적으로 /(슬래시)가 입력 되어있습니다. 중복으로 입력되지 않도록 주의해주세요
사용 웹서버는 아파치를 권장합니다. NGNIX 서버의 경우 기본설정 상태에서는 HTTP 헤더정보에 Content-Length: 정보가 없습니다. Content-Length가 없는 경우 RN400에서 정상적으로 응답을 줄수가 없습니다. 따라서 Application에서 HTTP Header 정보에 Content-Length 를 추가해야 합니다.
코드 상에서 인코딩 방식에 주의가 필요합니다.
파이썬
self.__connection.write((line.strip() + "\r\n").encode("ASCII"))
C#
// Write the response info
byte[] data = Encoding.ASCII.GetBytes(respData);
resp.ContentType = "text/xml";
resp.ContentEncoding = Encoding.ASCII;
resp.ContentLength64 = data.LongLength;