ESP32, LTE CATM1 모뎀으로 nano iot gateway 제작
ESP-Protocols 오픈소스 프로젝트 중 ESP_Modem 프로젝트가 있습니다.
ESP32 시리즈 (ESP32, ESP32-C3, ESP32-S2, ESP32-S3, etc)의 MCU와 다양한 셀룰러 통신모듈을 연결해서 데이터 통신 모뎀으로 동작시킬 수 있도록 구성한 프로젝트입니다. 자세한 내용은 아래 오픈소스에 포함된 문서를 참고하시기 바랍니다.
https://github.com/codezoo-ltd/esp-protocols/tree/master/components/esp_modem
이번 작업은 esp_modem을 LTE CATM1 내장형 모뎀에서 동작시킬수 있도록 인터페이스를 포팅하고, examples/ap_to_pppos 예제를 활용하여 주변의 WiFi 디바이스들이 ESP_Modem을 이용해서 WiFi 공유기 없이 네트워크 통신을 할 수 있는 nano iot gateway 프로토타입을 만드는 것을 목표로 했습니다.
본격적인 작업을 진행하기 앞서 동작하는 영상을 함께 보겠습니다.
온습도 센서가 연결된 ESP32-S3보드가 ESP32-Modem이 동작되는 ESP32+LTE CATM1 내장형모뎀을 이용해서 서버에 데이터를 송신하고 수신하는 것을 확인할 수 있습니다.
일반적인 TCP소켓 연결 뿐 아니라 Security가 적용된 Azure IoT FreeRTOS 클라이언트 펌웨어가 올라간 ESP32-S3보드도 ESP32-Modem을 이용해서 무선공유기 없이 Azure IoT Hub에 데이터를 올릴 수 있습니다.
두 번째 영상입니다.
리눅스로 동작되는 다른 무선공유기에 비해 연결할 수 있는 장치가 4대 이하이고 기능도 많지 않지만, RTOS기반 시스템이라 부팅속도가 상당히 빠릅니다. 콜드부팅해서 LTE망 접속 후 무선장치 공유를 위한 준비시간이 약 14초 정도 소요 되었습니다.
통신환경이 제공되지 않는 제한된 공간에서 4개 이하의 무선센서를 연결해서 작업하실 경우, 기존 WiFi IoT 디바이스를 셀룰러 기능이 탑재된 제품으로 개발하기 전 효율성, 효용성을 체크하실 경우 유용하실 거라 생각됩니다.
esp-modem은 ESP-IDF개발환경을 이용해서 빌드해서 사용하실 수 있습니다.
ESP-IDF개발환경을 어떻게 구성해서 빌드 및 펌웨어 업로드해야 하는지 설명드리겠습니다.
1. VS Code 설치
https://code.visualstudio.com/
2. ESP IDF 설치
1) 좌측의 Extension 아이콘을 클릭합니다.
2) ESP IDF로 검색해서 개발환경을 install 합니다.
3) esp-idf extension 설치
View → Command Palette → configure esp-idf extension 입력
EXPRESS 선택
v5.0.3 선택 후 Install 선택
설치 완료
참고로 개발환경 설치가 완료되면
View → Command Palette → ESP-IDF: Show Examples Projects를 실행해서 ESP-IDF SDK의 다양한 example을 직접 설치하고 테스트할 수 있습니다.
이제 esp-modem을 빌드할 수 있는 준비가 완료되었습니다.
코드를 다운로드해서 빌드 후 설치해 보겠습니다.
git을 설치 후 git bash를 실행합니다. 원하는 위치에 디렉토리를 만들고
만든 디렉토리에 소스코드를 클론 합니다. (https://github.com/codezoo-ltd/esp-protocols)
$ mkdir git_upload && cd git_upload
$ git clone https://github.com/codezoo-ltd/esp-protocols.git
탐색기를 열어서 소스코드 위치로 이동합니다.
esp-protocols → componets → esp_modem → examples로 이동합니다.
vs code를 실행 후 ap_to_pppos 디렉토리를 가운데 워크스페이스로 드래그 앤 드롭합니다.
화면에 가운데 아래와 같은 문구가 나오면 Trust 왼쪽에 체크하고 아래 Yes버튼을 누릅니다.
좌측 EXPLORER 화면이 보이지 않으면 상단 메뉴의 View → Explorer를 클릭하면 나타납니다.
ESP32 보드를 USB케이블로 연결 후 아래 메뉴를 클릭해서 나머지 설정을 진행합니다.
코드 아이콘 : Debug Port
회로 아이콘 : Board Type
디렉토리 아이콘 : Working Directory
톱니 아이콘 : SDK Menuconfig
쓰레기통 아이콘 : Full-Clean
원통 아이콘 : Build
별 아이콘 : Flash Upload Method
번개 아이콘 : Flash
모니터 아이콘 : Monitor
불꽃 아이콘 : Build+Flash+Moinitor
1)Debug Port 설정하면 가운데 상단에 나오는 포트 번호를 선택하고,
2)Board Type은 ESP32 (USB Bridge)를 선택합니다. 보드 타입설정 후 우측 하단에 보드 설정 중이라고 나오는데 해당 아이콘이 없어질 때까지 기다립니다.
3)Working Directory는 나오는 대로 설정해 주시면 됩니다.
4)이제 중요한 SDK Menuconfig입니다. 톱니 아이콘을 누르고 기다리면 아래와 같은 설정화면이 나옵니다.
설정 항목 중 아래 내용을 원하시는 값으로 수정 후 저장 합니다.
빌드 후 별아이콘을 눌러서 UART를 선택하고 번개 아이콘을 누르면 ESP32 보드에 펌웨어를 올릴 수 있습니다.
모니터 아이콘을 통해 동작을 확인할 수 있습니다.
Murata Type1SC 모듈 구매, 자료 관련 문의
(주)아성코리아
전지만 이사 010-5418-8812 mlcc@asung.com
박상인 수석 010-6556-5405 sipark@asung.com
LTE-CATM1 내장형 모뎀 구매 상담, 외주 개발, 협업 문의
(주)코드주
장병남 대표 010-8965-1323 rooney.jang@codezoo.co.kr
https://www.devicemart.co.kr/goods/view?no=14077527
https://smartstore.naver.com/codezoo/products/8514695472
https://smartstore.naver.com/codezoo/products/7153689192