-
CZ-ME310G1 Modem으로 esp-modem 사용하기Lwip PPP 모뎀 2025. 8. 20. 21:46
ESP32 + CZ-ME310G1모뎀
Espressif에서 ESP-IDF SDK에서 사용할 수 있도록 공식 배포한 ESP-Modem Protocol을 CZ-ME310G1에서 사용하는 방법을 정리 했습니다.
ESP-Modem Protocol에서 제공하는 example 중 하나인 APtoPPPOS를 이용 했습니다.
아래 블로그 내용대로 진행 했고 변경되는 코드만 따라하시면 됩니다.
https://codezoo.tistory.com/79ESP32, LTE CATM1 모뎀으로 nano iot gateway 제작
ESP-Protocols 오픈소스 프로젝트 중 ESP_Modem 프로젝트가 있습니다. ESP32 시리즈 (ESP32, ESP32-C3, ESP32-S2, ESP32-S3, etc)의 MCU와 다양한 셀룰러 통신모듈을 연결해서 데이터 통신 모뎀으로 동작시킬 수 있도
codezoo.tistory.com
ESP Modem은 아래 회로와 같은 ESP32 IoT보드 기반으로 포팅되어 있습니다.
CZ-Type1SC모뎀을 동작시키도록 코드가 구성되어 있어서 이 코드를 CZ-ME310G1모뎀에서 동작할 수 있도록 수정해야 합니다.ESP32 IoT 보드 회로도 (https://github.com/codezoo-ltd/TYPE1SC/blob/main/schematics_dimension/ESP32_IoT_Board_sch.pdf)
변경해야 하는 부분은 크게 3군데 입니다.
1. app_main() 함수에서 호출하는 Modem GPIO 초기화 코드
esp-protocols-master\esp-protocols-master\components\esp_modem\examples\ap_to_pppos\main\ap_to_pppos.cstatic void config_gpio(void){gpio_config_t io_conf = {}; //zero-initialize the config structure.
io_conf.intr_type = GPIO_INTR_DISABLE; //disable interruptio_conf.mode = GPIO_MODE_OUTPUT; //set as output mode/* CZ-ME310G1 Modem GPIO PIN Bit Mask */io_conf.pin_bit_mask = (GPIO_OUTPUT_RESET_PIN_SEL | GPIO_OUTPUT_PWRKEY_PIN_SEL);io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE; //disable pull-down modeio_conf.pull_up_en = GPIO_PULLUP_DISABLE; //disable pull-up mode
gpio_config(&io_conf); //configure GPIO with the given settings}static void gpio_modem(void){/* CZ-ME310G1 Power on the modem */ESP_LOGI(TAG, "Power on the modem");gpio_set_level(GPIO_OUTPUT_PWRKEY, 0);vTaskDelay(pdMS_TO_TICKS(100));gpio_set_level(GPIO_OUTPUT_PWRKEY, 1);gpio_set_level(GPIO_OUTPUT_RESET, 1);vTaskDelay(pdMS_TO_TICKS(5000));gpio_set_level(GPIO_OUTPUT_RESET, 0);vTaskDelay(pdMS_TO_TICKS(100));}
2. PPP모드 변환 AT커맨드 변경
esp-protocols-master\esp-protocols-master\components\esp_modem\src\esp_modem_command_library.cppcommand_result set_data_mode(CommandableIf *t){ESP_LOGV(TAG, "%s", __func__ );/* CZ-ME310G1 PPP Mode Change AT-CMD */return generic_command(t, "ATD*99***1#\r", "CONNECT", "ERROR", 5000);}
3. 모뎀과 연결하는 UART 핀이 다를 경우 설정(ESP32 IoT 보드를 사용할 경우 변경할 필요 없음)
esp-protocols-master\esp-protocols-master\components\esp_modem\include\esp_modem_config.h/*** @brief ESP Modem DTE Default Configuration**/#define ESP_MODEM_DTE_DEFAULT_CONFIG() \{ \.dte_buffer_size = 512, \.task_stack_size = 4096, \.task_priority = 5, \.uart_config = { \.port_num = UART_NUM_2, \.data_bits = UART_DATA_8_BITS, \.stop_bits = UART_STOP_BITS_1, \.parity = UART_PARITY_DISABLE, \.flow_control = ESP_MODEM_FLOW_CONTROL_NONE,\.source_clk = ESP_MODEM_DEFAULT_UART_CLK, \.baud_rate = 115200, \.tx_io_num = 17, \.rx_io_num = 16, \.rts_io_num = GPIO_NUM_NC, \.cts_io_num = GPIO_NUM_NC, \.rx_buffer_size = 4096, \.tx_buffer_size = 512, \.event_queue_size = 30, \}, \}
변경 후 빌드해서 동작시키면 아래와 같이 PPP모드로 접속 후 미니 WIFI 공유기로 바뀌는 것을 확인할 수 있습니다.
스마트폰으로 검색해 보면 아래와 같이 nano_iot_gateway를 확인할 수 있습니다.
LTE-CATM1 내장형 모뎀 대량 구매 상담, 외주 개발, 협업 문의, vodafone IoT유심 문의
(주)코드주
장병남 대표 010-8965-1323 rooney.jang@codezoo.co.kr
LTE CATM1 ESP32 IoT 보드 : codezoo
[codezoo] IoT Global SIM, IoT Connectivity, IoT Device
smartstore.naver.com
'Lwip PPP 모뎀' 카테고리의 다른 글
함께 도전하고 만들어갑니다. ESP-IDF(esp_modem) (0) 2024.07.02 HiveMQ TLS Free MQTT 클러스터와 LTE CATM1모뎀으로 어디서나 제어할 수 있는 스마트릴레이 만들기 (11) 2024.05.25 ppposclient, RS485 장치를 동시에 사용하는 경우 (예제 포함) (2) 2024.05.16 ESP32, LTE CATM1 모뎀으로 nano iot gateway 제작 (0) 2024.03.17 ppposclient 에서 TYPE1SC 라이브러리를 사용하고 싶어요 (0) 2022.05.10