강좌 전체보기

.

.

1. 사물 인터넷과 유무선 통신

기존에도 생활 가전이나 전자 장치들은 생활이나 업무 전반에 걸쳐 사용되어 왔습니다. 다만 현재에는 이런 장치들이 더욱 소형화되고 네트워크에 연결이 가능해진 것이 차이점이죠.

보일러는 수 십년 전부터 독립적인 장치로 사용되어져 왔지만 지금은 보일러를 언제 어디서든 웹이나 모바일로 제어가 가능해졌습니다. 그리고 다른 센서나 날씨 서비스 등과 연동해서 자동화 할 수도 있죠. 이런 차이점을 만드는 가장 큰 요인은 바로 통신입니다.

즉, 사물인터넷의 가장 중요한 요소 중 하나가 통신입니다. 실제로 어떤 통신을 사용하느냐에 따라 사물 인터넷 서비스의 효율이 결정되기도 하고, 사용자 시나리오가 크게 바뀌기도 합니다. 따라서 사물 인터넷에 참여하는 장치들은 통신 방법의 특성을 고려하여 신중하게 설계될 필요가 있습니다.

사물 인터넷 통신 방법은 크게 유선 통신과 무선 통신으로 나눌 수 있습니다. 물론 근래에는 무선 통신이 대세를 형성하고 있지만 일부 제한적인 환경에서는 유선 통신이 효용성을 가지기도 합니다.

.

2. 유선 통신

다양한 유선 통신 방법이 있지만 여기서는 시리얼(Serial, USB), Ethernet 통신에 대해서만 언급하겠습니다.

.

시리얼(USB) 통신

시리얼 통신은 대표적인 비동기식 직렬 통신이며, 마이크로 컨트롤러에 다양한 센서를 연결하거나 다른 장치와 통신을 할 때 사용합니다. 강좌의 여러 실습 예제를 사용할 아두이노/ESP32/라즈베리파이도 시리얼 통신을 위한 핀을 가지고 있기 때문에 서로 연결을 하는데 사용하거나 다양한 모듈을 추가하는데 사용할 수 있습니다.

또한 시리얼-USB 통신을 이용해서 안드로이드 폰에 센서장치를 연결할 수도 있습니다. 이 경우 센서장치는 배터리를 사용할 필요가 없이 모바일 폰에서 전원을 공급받아 동작할 수 있으며, 별도의 연결 설정없이 바로 모바일 폰과 통신할 수 있어 유용합니다. 인터넷 서버로는 모바일이 대신 데이터를 전송해주면 되구요. 예를 들어 음주 측정기나 체온계, 모바일 신용카드 리더기 등을 만든다면 이 방법을 사용하는 것이 여러모로 편리합니다. 어차피 이런 기기들은 사용자가 의도한 순간에만 동작하면 되니까요.

일반적으로 모바일 폰은 USB client로 동작하기 때문에 센서 장치를 연결하기 위해서는 모바일 폰이 USB host가 되어야 합니다. 이 변환을 위해 센서 장치는 OTG 케이블을 이용해서 연결되어야 합니다. 아래 이미지 처럼요.

시리얼(USB) 통신은 디바이스간 1:1 통신이며, 유선 통신인 만큼 복잡한 연결 설정없이 안정적인 통신이 가능합니다. 단, 기기간의 데이터 전송은 할 수 있지만 인터넷에 직접 연결할 수 있는 통신 수단은 아닙니다.

.

이더넷 통신

랜선을 이용해 연결할 수 있는 환경이며, 특정한 위치에 고정되어 동작하는 기기라면 이더넷 통신이 유용합니다. 이더넷 통신을 이용하면 인터넷 상의 서버에 직접 접속해서 API 사용이 가능하며(HTTP client), TCP/UDP 소켓 통신을 할 수도 있습니다. 또한 센서 장치가 스스로 micro 서버가 되어(HTTP server) 데이터를 보여주는 역할을 할 수도 있습니다. 물론 이러한 기능들은 WiFi 통신에서도 똑같이 제공되는 기능들입니다.

이더넷 통신은 모듈이 저렴하기 때문에 경제적이며 별도의 연결 설정이 필요치 않습니다. 또한 무선 통신에 비해 안정적인 송수신이 가능한 장점이 있습니다.

.

.

3. 무선 통신

일반적으로 우리가 구상하는 대부분의 사물 인터넷 서비스나 시나리오는 센서장치들이 무선으로 동작해야 하는 경우입니다. 따라서 유선 통신에 비해 무선 통신의 중요성이 무척 크다고 할 수 있습니다. 또한 무선 통신을 이용하면 근거리 네트워크(LAN, Local Area Network)를 구성하거나 통신 특성을 이용해 다양한 서비스 시나리오를 만들 수 있습니다.

.

적외선 통신

리모컨이 대표적인 적외선 통신 방식의 예입니다. 소량의 데이터를 근거리에 전송하는데 적합하며, 구형 핸드폰에서는 이 기능을 탑재하기도 했습니다. 장애물에 영향을 크게 받으며 적외선 LED와 수신기만 있으면 구현할 수 있는 원시적(?)인 통신 방법이라 하겠습니다. 이미 표준화된 규격이 있는 리모컨 외에는 활용처가 잘 떠오르지 않네요. 대신 적외선 LED와 수신기는 센서로서의 역할을 하기도 합니다.

.

NFC (Near Field Communication)

10cm 이하 근거리 통신입니다. 통신 거리가 극히 짧기 때문에 결제, 보안 태그 등을 활용한 서비스의 경우 많이 사용됩니다. 사용자가 태그를 직접 접촉하는 방식의 서비스 시나리오가 가능하면 유용하게 사용될 수 있습니다. 라즈베리파이나 아두이노에 Serial 방식으로 연결할 수 있는 모듈을 쉽게 구할 수 있기 때문에 구현 난이도가 그리 어렵진 않습니다. 안드로이드 핸드폰에도 NFC 태그/리더 API 가 있어서 사용범위를 모바일까지 확대할 수 있지만 일부 NFC 지원 단말에만 제한됩니다.

.

블루투스(Bluetooth)

무선 통신의 쌍두마차 중 하나라 할 수 있습니다. 블루투스 2.x ~ 3.x 스펙에 정의된 Classic Bluetooth 와 4.x 스펙의 BLE(Bluetooth Low Energy) 로 구분할 수 있습니다. 이 두 스펙은 같은 Bluetooth 이름을 사용하지만 실제로는 형제라고 보기 힘들만큼 차이가 많습니다. Classic Bluetooth 는 상대적으로 빠른 전송 속도와 단순함(?), 호환성이 큰 장점입니다. 반면 BLE 는 속도는 좀 더 느리지만 저전력, 다양한 활용 능력이 강점입니다.

블루투스는 보통 1:1 통신용으로 사용하지만, 하나의 호스트에 여러개의 클라이언트가 붙는 PicoNet을 구성할 수도 있습니다. 직접 인터넷에 접근할 수 없는 점이 블루투스 통신의 가장 큰 약점이지만 대부분의 사람들이 휴대하는 모바일 폰과 연결하기 가장 좋은 통신 방법이고 저전력에서 동작하기 때문에 ‘모바일’ 형태의 센서 장치를 만들 때 선호합니다. 또한 BLE 의 경우 비컨을 활용할 수 있는 강점도 가지고 있습니다.

블루투는 시리얼 유선 통신을 무선화 한 것이라고 볼 수 있습니다. 그래서 Classic Bluetooth는 SPP(Serial Port Profile) 프로파일을 제공하고, 이 경우 두 기기가 페어링만 맺으면 서로 SPP 프로파일을 인식해서 바로 데이터 통신을 할 수 있습니다. 페어링 과정만 빼면 마치 유선 시리얼 통신을 연결한 것 처럼 바로 통신이 가능하도록 해줍니다. 반면 BLE 는 별도의 시리얼 통신 프로파일을 제공하지는 않기 때문에 이와 유사하게 구현해서 사용합니다.

.

WiFi

여러모로 만능에 가까운 능력을 자랑하는 통신 방법입니다. 인터넷 접속은 기본이며, WiFi direct 를 이용한 1:1 연결 뿐 아니라 AP(Access Point) 모드로 동작해서 다양한 장치를 하나의 AP에 연결할 수도 있습니다. 이더넷 통신에서 언급했듯이 HTTP client, server 로 동작할 수 있으며 TCP/UDP 소켓 통신을 사용할 수 있습니다. 블루투스에서 다루기 어려운 멀티미디어 데이터도 다룰 수 있습니다. 하지만 일반적으로 Bluetooth에 비해 소모 전류가 많아서 휴대용으로 제작하기 더 어렵고 모바일 폰과 직접 연결하기가 까다로운 것이 단점입니다. 예전에는 WiFi 모듈의 가격도 비싸서 센서장치에 사용하기 부담스러운 단점도 있었지만, ESP8266 – ESP32 칩이 등장하면서 이런 부담은 많이 해소되었습니다. (이 강좌에서 ESP32 Dev Board를 사용하는 이유입니다. 싸고 구하기 쉽고, 다루기 쉬워서…)

WiFi는 이더넷을 무선화한 형태라고 할 수 있습니다. 라즈베리파이처럼 굳이 이동할 필요는 없는 경우를 제외하고는 대부분의 센서장치에서는 WiFi 모듈을 사용하게 될 것입니다.

.

RF 통신 모듈

여기서는 200MHz ~ 2.4GHz 대역을 사용하는 통신 모듈을 RF 통신 모듈이라 할 수 있습니다. 사용하는 주파수 대역도 다양하며, 단순히 데이터만 N:N 노드간 전송하는 모듈부터 복잡한 프로토콜을 구현한 모듈까지 다양한 통신 방법이 존재합니다. 여기서는 그 중 단순 데이터 전송 역할만 하는 모듈들을 지칭하겠습니다. NRF24L01(2.4GHz), HC-11(433MHz) 등이 대표적인 모듈이며, 이들은 단순히 데이터를 주변으로 전송하고 수신하는 역할만 합니다. 보안과 통신 신뢰성에 대한 요구가 적은 프로젝트, N:N 통신이 필요한 프로젝트에 적합합니다. 또한 그 단순성 때문에 프로토타이핑, 데모 버전, 워킹 샘플 제작에 좋습니다.

.

LoRa (Long Range)

저전력으로 동작함에도 커버리지가 Km 단위라서 근래에 주목받는 RF 통신 방식입니다. 이를 저전력 광역 통신망(LPWAN)이라 부릅니다. 따라서 실내 보다는 실외, 넓은 범위를 두고 동작하는 프로젝트에서 기기간 통신 수단으로 적합합니다.

대신 전송 속도는 느립니다. 저전력, 장거리 상황에서 동작하는 경우 최대 50KBit/Sec 정도이므로 멀티미디어 데이터 보다는 센서 데이터를 네트워크 내에서 전송하는데 알맞습니다.

.

ZigBee

ZigBee 도 LoRa 처럼 RF 통신의 한 종류이지만 신호 전달 범위는 작습니다. ZigBee 는  개별 Node 가 다른 노드의 정보를 수신하고 이를 재전송 함으로써(중계 역할) 거미줄 망 같은 메시(Mesh) 네트워크를 만들 수 있습니다. 이를 통해 신호의 도달 범위를 늘릴 수 있고 장애 대응에 강하지만, 그만큼 프로토콜이 복잡해지고 네트워크 용량이 감소되며 개별 노드의 전력 소모가 증가합니다. 근래에는 ZigBee 로 구현한 프로젝트를 찾기도 힘들고 관련 자료와 모듈을 구하기도 만만치 않아서 사용 난이도가 높습니다.

.

3G/LTE 모듈

3G/LTE 모듈은 핸드폰처럼 통신사 망을 이용할 수 있게 해주는 모듈입니다. 당연히 공간적인 제약에서 자유롭기 때문에 LoRa 보다도 훨씬 넓은 지역을 커버할 수 있습니다. 예를 들어 성층권까지 풍선을 날려서 다양한 실험을 한 후 떨어진 풍선을 회수해야 하는 경우, 국립공원처럼 방대한 지역 곳곳에 센서들이 설치되어야 하는 경우 유용합니다. 하지만 국내 사정상 모듈을 구매하거나 관련 자료, 사용 예를 찾기가 어려운 단점이 있습니다. 가격이나 유지비도 걸림돌이며 소모 전류도 높은 편입니다. 하지만 제반 조건이 허락한다면 이보다 더 좋은 통신 방법을 찾기도 힘듭니다.

.

앞으로 이어질 강좌에서는 이중 유선-(시리얼) 통신, 무선-(블루투스, WiFi, LoRa) 통신을 사용해서 네트워크를 구축하는 예제를 작성해 보겠습니다.

주의!!! [사물 인터넷 네트워크와 서비스 구축 강좌] 시리즈 관련 문서들은 무단으로 내용의 일부 또는 전체를 게시하여서는 안됩니다. 계속 내용이 업데이트 되는 문서이며, 문서에 인용된 자료의 경우 원작자의 라이센스 문제가 있을 수 있습니다.

.

강좌 전체보기