物联网产品框架:传统设备使用通信模组连接云服务器(即上云)做数据收发。本文将使用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优势2 准备工作2.1 EC20 USB驱动安装

安装过程参考移远官方手册:《Quectel_LTE&5G_Windows_USB_Driver_安装指导_V1.0.pdf》,有详细USB安装指导

驱动安装成功后,在电脑的设备管理器界面可以看到三个虚拟串口,如下所示:

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(1)

2.2 阿里云创建设备

登录阿里云物联网平台:https://account.aliyun.com/login/login.htm?oauth_callback=https://iot.console.aliyun.com/quick_start

创建产品,填写产品相关信息:

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(2)

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(3)

产品功能定义

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(4)

再自定义一个标识符用作数据下发,且发布上线:

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(5)

创建设备:

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(6)

得到设备的三元组信息:

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(7)

三元组信息: { "ProductKey":"a1ciEJx0Tqx", "DeviceName":"test01", "DeviceSecret":"2a202572cf9ab480ee012ae103cca21d" }

查看设备的Topic信息:

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(8)

设备Topic: { "发布主题":"/sys/a1ciEJx0Tqx/test01/thing/event/property/post" "订阅主题":"/sys/a1ciEJx0Tqx/test01/thing/service/property/set" }

2 连接阿里云

使用串口调试助手,选择 USB AT Port端口,并对串口调试助手做简单设置

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(9)

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地址 |

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(10)

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服务器 |

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(11)

此时可在阿里云物联网平台看到设备 test01 的状态已由未激活转为在线状态

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(12)

注意将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连接阿里云进行数据收发)(13)

此时,可在阿里云设备详情界面看到我们用EC20发送到阿里云的数据

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(14)

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 | 订阅服务器发布主题 |

当阿里云在线调试界面下发数据时,在本地串口调试助手数据接收区就能收到服务器下发的数据

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(15)

阿里云物联网平台数据解析太难(EC20连接阿里云进行数据收发)(16)

,