物联网产品框架:传统设备使用通信模组连接云服务器(即上云)做数据收发。本文将使用EC20 封装好的AT指令通过 MQTT 协议连接阿里云,简单的介绍下移远4G通信模块 EC20 是如何连接服务器进行数据收发
1 关于EC20模块
1.1 EC20概述
EC20 R2.1 是移远通信推出的 LTE Cat 4 无线通信模块,采用 LTE 3GPP Rel.11 技术,支持最大下行速率 150Mbps 和最大上行速率 50Mbps;同时在封装上兼容移远通信 UMTS/HSPA+ UC20 模块以及多网络制式 LTE EC20/EC21/EC25/EG25-G 模块,实现了3G网络与4G网络之间的无缝切换。
EC20 R2.1 内置多星座高精度定位 GNSS(GPS/GLONASS/BeiDou/Galileo/QZSS)接收机;在简化产品设计的同时,还大大提升了定位速度及精度。
EC20 R2.1 内置丰富的网络协议,集成多个工业标准接口,并支持多种驱动和软件功能(适用于 Windows 7/8/8.1/10,Linux,Android 等操作系统下的 USB 驱动、eCall* 等),极大地拓展了 EC20 R2.1 在 M2M 领域的应用范围,如 CPE、路由器、数据卡、平板电脑、车载、安防以及工业级 PDA 等。
1.2 EC20优势
专为 M2M 和 IoT 应用而设计的 LTE Cat 4 无线模块
各网络制式的全面覆盖
集成多星座 GNSS 接收机,满足不同环境下对快速、精准定位的需求
支持 DFOTA、eCall* 和 DTMF 功能
MIMO 技术满足无线通信系统对数据速率和连接可靠性的要求
2 准备工作
2.1 EC20 USB驱动安装
安装过程参考移远官方手册:《Quectel_LTE&5G_Windows_USB_Driver_安装指导_V1.0.pdf》,有详细USB安装指导
驱动安装成功后,在电脑的设备管理器界面可以看到三个虚拟串口,如下所示:
2.2 阿里云创建设备
创建产品,填写产品相关信息:
产品功能定义
再自定义一个标识符用作数据下发,且发布上线:
创建设备:
得到设备的三元组信息:
三元组信息:
{
"ProductKey": "a1ciEJx0Tqx",
"DeviceName": "test01",
"DeviceSecret": "2a202572cf9ab480ee012ae103cca21d"
}
查看设备的Topic信息:
设备Topic:
{
"发布主题": "/sys/a1ciEJx0Tqx/test01/thing/event/property/post"
"订阅主题": "/sys/a1ciEJx0Tqx/test01/thing/service/property/set"
}
2 连接阿里云
使用串口调试助手,选择 USB AT Port端口,并对串口调试助手做简单设置
2.1 AT指令连接阿里云:
AT指令连接阿里云过程:
1)AT指令入网、模块测试
序号 | AT指令 | 指令解析 |
---|---|---|
1 | AT | 测试指令,若返回OK,则模块可正常通信 |
2 | AT+CPIN? | 检查SIM卡是否在位 |
3 | AT+CSQ | 查询信号质量 |
4 | AT+CREG? | 查询入网状态 |
5 | AT+CGATT=1 | 激活网络 |
6 | AT+CGATT? | 查询激活状态 |
7 | AT+CGPADDR | 获取PDP地址 |
2)AT指令连接阿里云服务器
序号 | AT指令 | 指令解析 |
---|---|---|
1 | AT+QMTCFG="recv/mode",0,0,1 | 配置为接收模式 |
2 | AT+QMTCFG="aliauth",0,"ProductKey","DeviceName","DeviceSecret" | 配置阿里云上的设备信息 |
3 | AT+QMTOPEN=0,"iot-as-mqtt.cn-shanghai.aliyuncs.com",1883 | 打开一个MQTT客户端网络 |
4 | AT+QMTCONN=0,"DeviceName" | 连接MQTT服务器 |
此时可在阿里云物联网平台看到设备 test01 的状态已由未激活转为在线状态
注意将AT指令里面的三元组信息替换给自己设备的三元组,AT指令详细的参数解析可参考移远的AT指令手册:《Quectel_EC20_R2.1_AT_Commands_Manual_V1.0.pdf》、《Quectel_EC2x&EG9x&EM05_TCP(IP)_AT_Commands_Manual_V1.0.pdf》、《Quectel_EC20_R2.1_AT_Commands_Manual_V1.0.pdf》
2.2 发送数据
AT指令发送数据的过程如下:
序号 | AT指令 | 指令解析 |
---|---|---|
1 | AT+QMTPUB=0,0,0,0,"/sys/ProductKey/DeviceName/thing/event/property/post" | 发布主题消息 |
2 | {params:{IndoorTemperature:27.5}} | 发送的JSON数据 |
3 | 1a | 数据结束符,需采用HEX形式发送 |
此时,可在阿里云设备详情界面看到我们用EC20发送到阿里云的数据
2.3 接收数据
AT指令接收服务器数据指令如下:
EC20接收服务器下发的数据只需要订阅服务器的发布主题,及设备订阅主题:/sys/a1ciEJx0Tqx/test01/thing/service/property/set 即能接收到服务器下发的数据
序号 | AT指令 | 指令解析 |
---|---|---|
1 | AT+QMTSUB=0,1,"/sys/ProductKey/DeviceName/thing/service/property/set",0 | 订阅服务器发布主题 |
当阿里云在线调试界面下发数据时,在本地串口调试助手数据接收区就能收到服务器下发的数据