NUCLEO-L476RG + WizFi360 Azure AT Command를 이용하여 Azure IoT Hub에 연결
#
시작하기 전에#
Hardware Requirement- NUCLEO-L476RG
- Desktop or laptop computer
- USB 케이블
- WizFi360-EVB-Shield
#
Software Requirement- Microsoft Azure Account (Azure 구독이 아직 없는 경우 체험 무료계정을 만듭니다.)
- Preferred Serial Terminal (TeraTerm, YAT, etc.)
- Azure IoT Explorer
- MBED Studio / MBED Online Compiler
#
소개Microsoft Azure 는 Microsoft 의 클라우드 컴퓨팅 서비스입니다. Microsoft Azure 의 서비스에 WizFi360 을 연동하여 데이터를 클라우드로 전송하고, 모니터링 할 수 있습니다.
본 문서에서는 NUCLEO-L476G + WizFi360 이용하여 MS Azure Services에 연결 방법에 대한 가이드를 제공합니다. 이 프로세스는 다음 단계로 구성됩니다.
- Azure IoT Hub 준비
- IoT 디바이스 등록
- Azure IoT와 연결 및 데이터 통신
Azure IoT Hub 준비와 IoT 디바이스 등록 과정 대해 Azure Cloud 소개 참조하시기 바랍니다.
WiFi모듈 테스트를 위해 WizFi360-EVB-Shield Evaluation 보드를 사용되었습니다.
#
디바이스 준비#
하드웨어 설정WizFi360-EVB-Shield는 NUCLEO-L476RG와 결합을 하여 사용되어 집니다. 따라서 WizFi360-EVB-Shield의 DIP Switch 및 UART Jumper Pin을 다음과 같이 설정이 필요합니다.
- SW1 : Off
- SW2 : Off
- SW3 : On
- D2 : UART Tx
- D8 : UART Rx
#
디바이스 연결Hardware 설정 후, Mini USB Cable을 이용하여 NUCLEO-L476RG를 Desktop 혹은 Laptop Computer와 연결을 합니다.
장치 관리자에서 NUCLEO-L476RG와 연결된 COM Port를 확인 할 수 있습니다.
장치 관리자에서 COM Port를 확인 할 수 없는 경우, 다음 Link에서 Driver를 Downlonad하여 설치하시기 바랍니다.
- [ST-LINK, ST-LINK/V2, ST-LINK/V2-1 USB driver][Link-St_Link_St_Link_V2_St_Link_V2_1_Usb_Driver]
#
AT 명령어#
1. Set current WiFi mode (not saved in flash)AT Command: AT+CWMODE_CUR Syntax:
Type | Command | Response |
---|---|---|
Query | AT+CWMODE_CUR? | +CWMODE:<mode> OK |
Set | AT+CWMODE_CUR=<mode> | OK |
Defined values:
Mode | Value |
---|---|
1 | Station mode |
2 | SoftAP mode (factory default) |
3 | Station+SoftAP mode |
#
2. Enable DHCPAT Command: AT+CWDHCP_CUR Syntax:
Type | Command | Response |
---|---|---|
Query | AT+CWDHCP_CUR? | +CWDHCP_CUR:<para> OK |
Set | AT+CWMODE_CUR=<para>,<en> | OK |
Defined values:
Parameter | Value |
---|---|
0 | SoftAP DHCP 와 Station DHCP 를 disable 한다. |
1 | SoftAP DHCP 는 enable 하고 Station DHCP 는 disable 한다. |
2 | 2: SoftAP DHCP 는 disable 하고 Station DHCP 는 enable 한다. |
3 | SoftAP DHCP 와 Station DHCP 를 enable 한다. (factory default) |
#
3. List available APsAT Command: AT+CWLAP Syntax:
Type | Command | Response |
---|---|---|
Query | AT+CWLAP | +CWLAP:([<ecn>,<ssid>,<rssi>,<mac>,<channel>,<wps>]) |
Defined values:
Parameter | Value |
---|---|
<ecn> | 0: Open 1: WEP 2: WPA_PSK 3: WPA2_PSK 4:WPA_WPA2_PSK |
<ssid> | string parameter. AP의 ssid |
<rssi> | signal strength |
<mac> | string parameter. AP의 mac |
<wps> | 0: WPS는 disable된다 1: WPS는 enable된다 |
#
4. Connect to APAT Command: AT+CWJAP_CUR Syntax:
Type | Command | Response |
---|---|---|
Set | AT+CWJAP_CUR=<ssid>,<pwd>,[<bssid>] | +CWJAP_CUR:<ssid>,<bssid>,<channel>,<rssi> OK |
Defined values:
Parameter | Value |
---|---|
<ssid> | string parameter. Target AP의 ssid. MAX: 32 bytes |
<pwd> | string parameter. Target AP의 password. MAX: 64-byte ASCII |
<bssid> | string parameter, target AP 의 MAC address, 같은 SSID 를 가진 여러 개의 AP 들이 있을 때 사용된다. |
#
5. Azure IoT Hub configuration setAT Command: AT+AZSET
Syntax:
Type | Command | Response |
---|---|---|
Set | AT+AZSET=<iothub_name>,<device_id>,<device_key> | OK |
Defined values:
Parameter | Value |
---|---|
<hub ID> | string parameter. IoT Hub의 ID |
<device ID> | string parameter. IoT Device의 ID |
<key> | string parameter, IoT Device의 Key |
#
6. Set MQTT TopicAT Command: AT+MQTTTOPIC
Syntax:
Type | Command | Response |
---|---|---|
Set | AT+MQTTTOPIC=<publish topic>,<subscribe topic>,<subscribe topic2>,<subscribe topic3> | OK |
Defined values:
Parameter | Value |
---|---|
<publish topic> | string parameter, WizFi360 이 publish 하는 topic |
<subscribe topic> | string parameter, WizFi360 이 subscribe 하는 topic |
<subscribe topic2> | string parameter, WizFi360 이 subscribe 하는 topic |
<subscribe topic3> | string parameter, WizFi360 이 subscribe 하는 topic |
Note:
- 이 command 는 broker 에 연결하기전에 설정되어야 합니다.
- <subscribe topic2> 와 <subscribe topic3>는 Firmware v1.0.5.0 이후 version 부터 사용가능 합니다.
#
7. Connect to AzureAT Command: AT+AZCON
Syntax:
Type | Command | Response |
---|---|---|
Set | AT+AZCON | CONNECT OK |
Note: • 이 command 를 전송하기전에 AT+AZSET command 와 AT+MQTTTOPIC command 를 설정합니다. • Connect 이후 AT+MQTTPUB command 를 통해 Azure Sever 에 데이터를 전송합니다. • 자세한 내용은 https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support 를 참조하세요.
#
8. Publish a messageAT Command: AT+MQTTPUB
Syntax:
Type | Command | Response |
---|---|---|
Set | AT+MQTTPUB=<message> | OK |
Note: • 이 command 는 MQTT 가 연결되어 있을 때 사용됩니다. • Publish 한 data 의 topic 은 AT+MQTTTOPIC command 에 의해 결정되며, 사용자는 broker 에 연결하기전에 topic 을 설정합니다.
#
동작 예제#
Mbed 예제 코드 다운로드예제 Download를 한 후, File > Open Workspace을 선택하여 Project 실행합니다.
예제는 다음 경로에 위치하고 있는 Project를 참고 바랍니다.
samples/Wi-Fi/Mbed_Azure_Atcmd_Wizfi360
Online Compiler 경우 다음 링크에서 Compiler에 import을 할 수 있습니다.
https://os.mbed.com/users/vikshin/code/Mbed-Azure-Atcmd-WizFi360/
#
Modify parametersAzure IoT Hub 연결 위한 WiFi ssid, WiFi password, Hub ID, Device ID, Device Key 변경하여 테스트 해볼 수 있습니다.
Run Program을 눌러 Project Build 및 Run을 합니다.
업로드를 완료한 후, 시리얼 모니터를 이용하여 정상적으로 Nucleo 보드에 업로드 되었는지 확인할 수 있습니다.
#
동작 예제 결과- IoT Explorer 에서 Telemetry Section안에 "Start" 버튼을 누릅니다.
MQTTPUB 명령을 통해 메시지를 보내기 전에 "Start" 버튼을 눌러야 합니다.
- MQTTPUB command으로 수신한 데이터를 확인 할 수 있습니다.