진짜 IoT
이전 과정까지 HC-06 모듈을 이용해 스마트폰과 아두이노의 통신을 만들어 보았습니다.
짧게 언급했듯이 HC-06은 2.0 버전의 블루투스를 사용합니다. Master 모듈과 Slave 모듈이 서로 연결되어 문자 형태의 데이터를 주고 받습니다. 조명을 제어하기 위해서는 반드시 스마트폰을 연결해야 하고, 블루투스 신호가 닿지 않는 집 밖에서는 조명을 제어할 수 없습니다. 심지어 아이폰에서는 연결조차 못하죠.
이렇게 불편한걸 IoT라 할 수 있을까요? 지구 반대편이라 하더라도 조명을 켜야 그게 IoT인데 말입니다.
스마트폰, 컴퓨터 가리지 않고 사용할 수 있는, 전 세계 아무 곳에서 사용할 수 있는 통신수단.. 어? 그거 완전 인터넷이죠? 이번 과정부터는 인터넷을 활용해 IoT를 만들어보겠습니다.
Wi-Fi, 아두이노
Arduino - ARDUINO UNO WiFi REV2 [링크]
조금 사족을 붙이자면, 예전까지만 하더라도 아두이노에서 공식적으로 Wi-Fi를 사용할 방법이 많지 않았습니다.
UNO WiFi REV2 정도가 유일했는데요, 이름부터 UNO면서 UNO와 다른 MCU를 사용하지를 않나, Wi-Fi 모듈과 MCU가 분리되어 있어 결정적으로 못생기기까지 했습니다. ㅖ...? 아,,, 이건 제 개인적인 생각이고 ㅋㅋ.. 메인 MCU와 통신칩이 분리되어 있다 보니 복잡성이 늘어나 아두이노스럽지 못해 보였습니다. 아두이노 카페를 훓어보면 UNO WiFi에 낚인 초보자의 질문이 꽤 올라왔었죠.
이후 NANO 33 IoT를 거쳐 ESP32가 UNO R4 WiFi가 튀어나오더니, 드디어 ESP32가 메인 MCU인 Arduino NANO ESP32가 등장했습니다.
Arduino NANO ESP32
앞으로 사용할 새로운 아두이노 보드입니다.
Arduino NANO와 똑같은 크기(폼팩터)에 ESP32를 꾹꾹 눌러담아 만든 개발보드입니다. ESP32라 이야기했지만, 정확하게는 ESP32-S3라는 MCU가 사용되었는데요, 여기서는 그냥 일반적인 ESP32보다 더 좋다고 이야기하고 넘어가겠습니다.
사양
•
MCU: ESP32-S3, 듀얼 코어@최대 240 MHz
◦
SRAM (메모리): 512 KB
◦
Flash: 16 MB
•
무선 연결: Wi-Fi 4, Bluetooth LE v5.0
•
디지털 입/출력: 14 개 (PWM 5 개)
•
아날로그 입력: 8 개
•
논리 전압: 3.3 V
•
USB: Type-C
•
RGB LED 내장
이전까지 사용하던 아두이노 우노와 주요 사양을 비교하면 아래와 같습니다.
Arduino UNO | Arduino NANO ESP32 | |
MCU | ATmega328 | ESP32-S3 |
CPU 코어 수 | 싱글코어 | 듀얼코어 |
클럭 | 16 MHz (고정) | 최대 240 MHz (15배) |
SRAM (메모리) | 2 KB | 512 KB (256배) |
Flash | 32 KB | 16 MB (512배) |
논리 전압 | 5 V | 3.3 V |
CPU는 15배, 별 의미는 없지만 듀얼코어임을 감안하면 30배 정도 빠르다 할 수 있습니다. int a; 처럼 선언한 변수가 저장되는 공간인 메모리는 256배, 작성한 소스코드를 저장하는 Flash는 512배나 큽니다. Wi-Fi나 블루투스 통신은 아주 복잡하기 때문에 여러 소스코드를 쌓아올려 구현됩니다. 이를 바로 “스택”이라 표현하는데, Wi-Fi 스택이나 Bluetooth 스택을 구동하기 위해서는 이처럼 높은 성능이 필요합니다.
온보드 LED 가지고 놀기
새로운 아두이노 보드에 조금이나마 친숙해지기 위해 이번 시간에는 복잡한 IoT는 잠시 재쳐두고 아두이노 보드를 가지고 놀아보려 합니다.
마침 NANO ESP32에는 온보드 LED