-
ARM mbedOS (6.15.0) Cellular PPP 작업 - AWS IoTAWS IoT 2021. 10. 5. 05:30
ARM mbedOS 최신 릴리즈 버전인 6.15.0에서 CodeZoo 내장형 모뎀을 동작할 수 있게
포팅 작업을 진행 했습니다.
mbedOS의 Connectivity 하위에 있는 Cellular 디바이스 중,
Altair ALT1250이 포함되어 있습니다.
기존 Arduino에 사용된 AT 커맨드 호출 방식이 아닌 PPP Context를 활성화해서 통신하는 방식으로
모뎀 초기화 후 PPP모드로 변경해서 lwip 네트워크 스택을 이용해서 외부자원들과 통신하는 구조로
구성되어 있습니다. 여기에 MQTT Protocol을 이용해서 AWS-IoT를 통한 AWS IoT Core에 접속하는
방식으로 진행해 보았습니다.
코드를 적용하기 위해서 mbed에서 제공하는 mbed-os-example-for-aws를 다운로드하였습니다.
그리고 필요한 설정을 하기 위해 mbed_app.json을 아래와 같이 수정했습니다.
이렇게 설정하고 우선 동작시켜 보았는데, 모뎀 초기화 관련해서 계속 망에 붙지 않는 현상이 발견되었습니다.
Type1SC 모뎀 펌웨어에서 최초 전원 인가 후 명령어를 통해 기지국 망에 접속하기 때문입니다.
두 가지를 함께 수정해 주어야 하는데, 여러 가지 방법이 있겠지만, Cellular Driver의 상태 머신에서 HAL 코드를
호출하는 부분을 강제로 호출하게 수정하고, 이 코드를 HAL(ALT1250_PPP)에서 구현하는 방법으로 동작시켰습니다.
체크하셔야 하는 부분은 mbedOS에서는 PPP모드로 변경 후 통신하기 때문에 동작 중 강제로 Reset 해서
재시작할 경우 모뎀 쪽의 하드웨어 rst를 연결해 주셔야 합니다. 판매하는 아두이노용 확장 실드에서는
rst 핀을 따로 연결해 두지 않았습니다.
AT동작 모드와 달리 PPP모드로 동작할 경우 AT+CFUN=1,1 재시작 명령어가 먹히지 않습니다.
mbedOS에서는 아두이노에서 지원하지 않는 CTS, RTS도 지원하기
때문에 mbedOS에서 사용하실 경우 따로 연결용 보드를 제작하시거나 핀헤더만 연결해서 와이어링 해서
테스트하시길 권장합니다.
MbedOS RTOS환경에서 동작되고 Mqtt Sender, Receiver 가 각각 Thread로 할당되어 있어
실시간 제어 처리에 유리합니다.
작업 완료 후 AWS IoT Core와 연결해서 동작되는 영상입니다.
영상에서 디바이스는 aws_credential.h에 사용자가 입력한 루트 인증서, 디바이스 인증서, 디바이스 개인키로
AWS IoT Core에 접속하고 10회 메시지 전송을 진행합니다. 10회 전송 중 AWS IoT Core에서 메시지를 받으면
메시지 전송을 멈추고 해당 메시지를 화면에 뿌리고 데모가 종료됩니다.
영상 데모에서는 10회 전송을 마치고 디바이스가 대기 중인 상태에서 AWs IoT Core 서비스에서
디바이스로 메시지를 전송 후 데모가 종료되는 영상입니다.
https://www.devicemart.co.kr/goods/view?no=14077527
https://smartstore.naver.com/codezoo/products/7153689192
'AWS IoT' 카테고리의 다른 글
LTE CATM1 모뎀에서 AWS IoT 모든 기능을 사용할 수 있습니다. (5) 2024.03.31 2023한국전자전 Murata IoT 스마트팜 전시품 제작 (0) 2023.10.09 LTE CATM1 내장형모뎀을 활용한 스마트팜 데모 영상 (0) 2022.06.17 AWS IoT SiteWise Example 오픈소스 업로드 (0) 2022.02.19 LTE-CATM1 내장형 모뎀으로 Unix Timestamp 처리하기 (0) 2022.02.13