-
Azure IoT Hub와 LTE CATM1 내장형 모뎀 연결하기Azure IoT 2022. 11. 9. 03:59
이전에 ppp모뎀과 ESP32 디바이스를 lwip 스택을 통해 외부 네트워크에 연결할 수 있도록 오픈소스로 공개되어 있는 ppposclient ( https://github.com/levkovigor/ppposclient ) 프로젝트를 이용해서 MQTT, TCP Socket을 동작할 수 있도록 구현한 적이 있었습니다.
(관련 글) https://codezoo.tistory.com/30
그때 구현한 프로젝트는 동작 자체는 문제가 없지만 부족한 점이 있었습니다.
그것은...
Secure library 동작에 대한 구현이 없기 때문에 보안에 취약하고 보안 라이브러리를 사용하는 클라우드에 연결할 수 없는 제약사항이 바로 그것입니다.
위 프로젝트를 마치고 pppos에 secure 구현이 들어가 있는 프로젝트를 구글링을 통해 열심히 뒤졌지만 찾지 못했습니다.
결국 포팅작업을 진행했습니다.
어느 정도 동작까지 확인한 후 덮어 두었는데, 이번에 Azure 연동 작업에 활용하게 되었습니다. ^^;
해당 라이브러리의 첫번째 예제로 Azure IoT Hub 연동 example을 만들게 되었습니다.
https://github.com/codezoo-ltd/ppposclientSecure
이제 Azure IoT Hub와 연결해 보도록 하겠습니다.
먼저 Azure 회원가입 하시고 Azure Portal로 이동합니다.
검색창에 IoT Hub를 입력하고 Services 아래에 있는 IoT Hub를 선택합니다.
이제 IoT Hub를 새로 하나 만들어 보겠습니다. +Create를 클릭합니다.
아래와 같이 입력창이 나옵니다. Resource group은 처음에는 없으므로 만들어 주어야 합니다. Create new를 누르고 이름을 입력하면 됩니다. 저는 Cellular이라고 입력했습니다.
아래 IoT hub name에 원하는 이름을 적습니다. 저는 codezoo 라고 입력했습니다. 아래 Region은 Korea Central로 선택했습니다.
입력을 마친 화면 입니다.
이제 아래 있는 Next:Networking 버튼을 선택합니다.
아래 있는 Next: Manangement 버튼을 선택합니다.
Free tier로 선택합니다. (계정당 Free tier 허브는 하나만 만들 수 있습니다!!)
아래 Review+create를 선택합니다.
IoT Hub 리뷰 화면입니다. 확인 후 아래 Create 버튼을 선택합니다.
만드는 데 몇 분 정도 걸립니다. 기다립니다.. ^^
작업이 완료되면 Go to resource 버튼을 선택합니다.
이제 두 가지 작업을 진행해야 합니다.
IoT Device를 만들어야 하고, Azure Portal과 연동할 수 있는 PC 애플리케이션 연결 작업을 진행해야 합니다.
먼저 IoT Device를 만들어 보겠습니다. 왼쪽에 있는 Devices를 선택합니다.
+Add Device를 선택해서 디바이스를 만듭니다.
type1sc 로 만들었습니다. Authentication type(인증방식)은 Symmetric key로 선택합니다.
설정을 확인 후 아래 Save 버튼을 선택합니다.
Devices 화면으로 돌아와서 Refresh를 선택하면 type1sc 디바이스가 생성된 것을 확인할 수 있습니다.
이제 PC 애플리케이션과 연결 작업을 진행하겠습니다. PC 애플리케이션은 Device Explorer를 사용했습니다.
아래 경로에 있는 SetupDeviceExplorer.msi 를 다운로드해서 설치했습니다.
https://github.com/Azure/azure-iot-sdks/releases
시작표시줄 --> Azure IoT Hub --> Device Explorer을 선택합니다.
아래와 같은 화면이 확인되면 Azure Portal로 다시 이동합니다.
아래 페이지에서 왼쪽에 있는 Shared access policies를 선택합니다.
아래 페이지에서 iothubowner를 체크 및 선택합니다.
오른쪽에 키가 출력되면 Primary connection string 우측에 있는 복사하기 버튼을 선택합니다.
복사한 키를 DeviceExplorer에 아래와 같이 붙이고 Update 버튼을 선택합니다.
이제 SAS Token을 생성합니다. TTL에 365를 입력하고 Generate SAS 버튼을 선택합니다.
Generate SAS 버튼 아래 아래와 같이 키가 생성된 것을 확인하시고 아래 내용을 메모장에 복사해 둡니다.
해당 키는 Azure IoT Hub에 접속하는 Device example에 사용합니다.
이제 Azure Device를 준비해 보도록 하겠습니다.
ppposclientSecure 라이브러리를 아래와 같이 다운로드합니다.
Arduino 스케치에 다운로드한 라이브러리를 설치합니다.
Examples --> PPPOSClientSecure --> azure_iot_hub_test를 선택합니다.
ESP32 보드와 CATM1은 아래와 같이 연결했습니다.
이번 작업에는 브래드 보드가 아닌 아래와 같이 와이어링을 통해 보드 후면에 연결했습니다.
전면에 ESP32 보드, OLED 패널, CATM1 모뎀을 배치하고 패치 타입 외장 안테나를 부착했습니다.
이제 코드를 수정해 보도록 하겠습니다. 수정할 부분은 아래와 같습니다.
myiothub는 Azure Portal에서 만든 iothub 이름입니다. codezoo라고 만들었습니다.
myDevice는 Azure Portal에서 만든 device 이름 입니다. type1sc라고 만들었습니다.
해당 이름을 넣어서 수정해 보겠습니다.
마지막으로 sas_token을 수정하겠습니다.
deviceExplorer에서 sas token을 생성한 값을 복사해서 붙이면 됩니다.
빌드하기 전 아래와 같이 Board와 library 버전을 맞춰 줍니다.
ESP32 2.0.0 SDK install
ArduinoJson 5.0.1 install
DeviceExploer는 Data탭을 선택하고 Monitor버튼을 선택합니다. 디바이스에서 올라오는 정보는 아래 Event Hub Data에 올라옵니다.
준비가 마무리되었으면 이제 ESP32 보드에 펌웨어를 업로드하고 동작을 확인합니다.
디바이스에서 Azure IoT hub로 메시지를 업로드하는 도중에도 Callback Method를 통해서 메시지를 수신받을 수 있는 것을 데모를 통해 확인할 수 있습니다.
전체 동작 영상 참고하시기 바랍니다.
Murata Type1SC 모듈 구매, 자료 관련 문의
(주)아성코리아
전지만 이사 010-5418-8812 mlcc@asung.com
박상인 수석 010-6556-5405 sipark@asung.com
LTE-CATM1 내장형 모뎀 대량 구매 상담, 외주 개발, 협업 문의
(주)코드주
장병남 대표 010-8965-1323 rooney.jang@codezoo.co.krhttps://www.devicemart.co.kr/goods/view?no=14077527
https://smartstore.naver.com/codezoo/products/7153689192
'Azure IoT' 카테고리의 다른 글
LTE CATM1, Azure IoT Central로 Connected Car 컨셉 제작 (2) 2023.01.06