-
Chapter 4전공 - IT/졸업작품 2023. 7. 24. 18:42
영어 원문을 한글로 해석하여 정리한 글이므로 정확하지 않은 정보를 포함할 수 있음
목차
1. Contiki-NG를 위한 통신 모델
2. 직렬 통신
3. Contiki-NG mote 간의 커뮤니케이션 구축
4. 컴퓨터와 컴퓨터 간의 커뮤니케이션 구축 Contiki-NG mote
5. 미들웨어
1. Contiki-NG를 위한 통신 모델
WSN mote와 컴퓨터 간의 통신 방법에 따라 사용하는 통신 모델의 종류가 결정된다
Contiki-NG 통신모델 각각의 WSN mote는 일반적으로 네트워크 기능이 있어 WSN mote 및 컴퓨터와 데이터를 교환할 수 있다
2. 직렬 통신 ( UART, Universal Asynchronous Receiver/Transmitter )
직렬 통신은 한 번에 한 비트씩 순차적으로 송수신하는 데 사용되는 프로세스로 정의할 수 있다
직렬 통신 직렬 통신 프로토콜은 위와 같고 하드웨어 구현에서 직렬 통신에 최소 3개의 핀아웃이 필요하다
< RX(수신기) , TX(송신기) , GND(접지) >3. Contiki-NG mote 간의 커뮤니케이션 구축
Contiki mote와 컴퓨터 간의 통신을 위해 Contiki 및 Contiki-NG 프로그램을 구축한다
컴퓨터에서 애플리케이션을 실행하면 데이터베이스 서버와 상호 작용하고 클라우드 서버와 통신하는 등의 이점이 있다
직렬 통신
Python을 사용하여 WSN mote에 연결한다Python에서 직렬 통신을 구현하기 위해 pyserial 라이브러리를 설치한다
다음으로 연결된 직렬 포트 목록을 확인한다
현재 연결하지 않은 상태이고 연결하였을 경우 마지막에 /dev/ttyUSB0 으로 감지된다연결하였을 경우 ttyUSB0 이 추가된다 contiki-viewer.py 파일을 생성한다
contiki-viewer.py contiki-viewer.py 를 실행하려면 Contiki-NG mote로 업로드해야 한다
직렬 포트 수신을 위한 Python 프로그램 실행모습 Contiki Shell
Contiki OS 는 내부 Contiki-NG mote 와 통신하는데 활용할 수 있는 Shell API 를 제공한다많은 Contiki Shell API 를 구축한다는 것은 더 많은 원격 리소스를 사용한다는 것을 의미하기에 저장소 및 리소스에 대해 신경 써야 한다
Contiki-NG Shell
Contiki-NG의 쉘은 services 폴더 아래에 위치한다
4. 컴퓨터와 컴퓨터 간의 커뮤니케이션 구축 Contiki-NG mote
Contiki-NG mote 간에 통신하는 방법은 여러 가지가 있다
Contiki-NG OS 에서 UDP 프로토콜을 통한 브로드 캐스트를 사용한다
사용자 데이터그램 프로토콜(UDP)은 데이터가 전송되기 전에는 공식적으로 연결이 설정되지 않으므로
통신 속도가 빨라진다는 장점이 있다Contiki-NG mote 간의 통신 위의 사진은 sender 가 receiver에게 데이터를 보내는 예시이다
브로드캐스트 메시지 보내기
sender 의 목적은 데이터를 다른 mote로 브로드캐스트 하는 것이다simple-udp 모듈을 사용하고 관련 내용은 simple-udp.h 헤더 파일에 정의되어 있다
simple_udp_connection 은 simple-udp의 객체이고, data는 전송될 데이터를 의미한다
datalen 은 데이터의 길이이고, to 는 대상의 IP 주소이며, to_port 는 대상의 포트이다simple_udp_sendto(&udp_conn, &count, sizeof(count), &dag->dag_id);
위와 같이 특정 IP 주소로 데이터를 보낼 수 있다
브로드캐스트 메시지 수신
mote 수신기는 mote를 보낸 사람이 보낸 수신 메시지를 수신한다mote reciever를 구축하기 위해 콜백/이벤트 함수를 생성하여 브로드캐스트 메시지를 수신할 수 있다
simple_udp_register 를 사용하여 콜백 함수를 등록할 수 있다
5. 미들웨어
미들웨어란?
미들웨어는 Contiki-NG mote를 내부 및 외부 네트워크의 다른 시스템에 연결하는 '브리지' 애플리케이션이다Contiki-NG 용 미들웨어 일반 시나리오 미들웨어는 데이터베이스 서버, 외부 서버 및 RESTful 서버와 같은 다른 시스템에
Contiki-NG mote를 연결하는 브리지 역할을 할 수 있다728x90