2019年12月30日 星期一

用NB-IoT USB Dongle實現MQTT,加快IoT應用開發

用NB-IoT USB Dongle實現MQTT,加快IoT應用開發

作者:柯大
為了方便樹莓派(Raspbery Pi)、工業型嵌入式電腦、嵌入式物聯網開發板及各型個人電腦或工業電腦(IPC),可以直接利用USB連接LPWAN通訊模組,柯大創客屋特別為社群好友分享了一款以MTK MT2625設計的USB Dongle 可以讓您快速利用樹莓派Python 語言或x86 Base 的IPC以 .NET架構連接USB NB-IoT存取雲端資訊。
這款NB-IoT USB Dongle 採用Quectel BC26/BC66模組 (內建MTK MT2625 NB-IoT晶片),外觀如下,可直接與樹莓派、電腦連接或透過USB OTG 線與手機連接。
(圖片來源:柯清長)
BC26/BC66內建國產MTK MT2625 NB-IoT晶片,完整功能規格如下:
1.支援全球NB-IoT頻段:
完整支援B1/B2/B3/B4/B5/B8/B12/B13/B17/B18/B19/B20/B25/B26/B28/B66等頻段。
2.通訊傳輸速率:
• Single-Tone : 下行: 25.5kbps ;上行: 16.7kbps
• Multi-Tone : 下行: 25.5kbps ;上行: 62.5kbps
3.支援訊協定:
UDP/TCP/CoAP/LwM2M/MQTT/*PPP/*SNTP/*TLS/*DTLS/*HTTP/*HTTPS/*FTP。
(註*: 陸續推出支援協定)
4.支援AT 指令集:3GPP Rel. 13 /14以及 Quectel 增强型 AT 命令。
5.支援序列埠(UART)數:
3組(信訊電位為1.8V),序列埠傳輸速率均支援 4800bps、9600bps、 115200bps、 230400bps、460800bps 和 921600bps(預設為115200bps)。
6.BC26/BC66可支援內置eSIM卡:可搭配設計eSIM晶片來取代傳統SIM卡。
7.供電特性:低供電電壓範圍 (2.1V~3.63V),適合鋰錳、鋰亞電池直接供電。
8.工作模式:
  • Active:模組處於喚醒狀態;所有功能正常可用,可以進行資料發送和接收,模組 在此模式下可切換到 Idle 模式或 PSM 模式。
  • Idle :模組處於輕休眠狀態,網路處於 DRX/eDRX 狀態,可接收尋呼消息,模 塊在此模式下可切換至 Active 或 PSM 模式。
  • PSM:模組處於深睡眠狀態,內部只有 RTC 工作,網路處於非連接狀態,模組 此模式下可切換至 Active 模式。
9.支援Firmware軟體更新方式:UART、DFOTA。
10.BC26/BC66(MTK MT2625) USB Dongle方便快速開發創新應用:
  • 開發者可利用USB Dongle直接與工業電腦、一般PC、具USB插頭的嵌入式單板電腦(如Raspbbery Pi)、各種手機(利用USB OTG接頭連接)。
  • 可以以OpenCPU SDK開發應用,省下外接MCU之成本及所增加之電力,並獨立運作。
  • 支援MS .Net 平台開發、VB、VC、JAVA、C++、Python…。
  • 功能界定:Maker、新創團隊快速開發NB-IoT以USB為應用產品快速搭配原產品軟體(APP)出貨,如:智慧工業4.0、智慧醫療(IoT血糖計、血壓計)。
(圖片來源:柯清長)
為了讓大家快速入門NB-IoT,在這邊示範以樹莓派 + NB-IoT USB Dongle 以Python 開發MQTT 應用,將資料以MQTT Publish Data 到MQTTBox subscribe。
MQTT Broker: broker.hivemq.com ,Port :1883
Publish LED Topic:”NB/BC26/USER99/LED”
Publish TEMP Topic:”NB/BC26/USER99/TEMP”
Publish HUMI Topic:”NB/BC26/USER99/HUMI”
BC26/BC66 MQTT AT command 使用及測試:
AT+QMTOPEN=0,”broker.hivemq.com”,1883
AT+QMTCONN=0,”BC26-Client1”
AT+QMTPUB=0,0,0,0,”NB/BC26/USER99/LED””,”1″
AT+QMTPUB=0,0,0,0,”NB/BC26/USER99/TEMP”,”23.10″
AT+QMTPUB=0,0,0,0,”NB/BC26/USER99/HUMI”,”61.10″
AT+QMTCLOSE=0
(圖片來源:柯清長)
(圖片來源:柯清長)
(圖片來源:柯清長)
(圖片來源:柯清長)

範例程式原始碼:

MQTTBox 接收結果如下圖:
(圖片來源:柯清長)