第3章:3G/4G DTU实战配置——串口连接、心跳包与数据上云
好,咱们进入实战环节。这一章我带你亲手操作一台DTU,从串口连接开始,一步步把数据送到云平台。说实话,很多新手拿到DTU第一反应是「这玩意儿怎么连?」,别急,我踩过的坑都给你标出来了。
3.1 用串口工具连接DTU
先说说准备工作。你需要一根USB转串口线,一个DTU模块,还有电脑上的串口调试助手。我个人习惯用SSCOM或者SecureCRT,其实都差不多。
第一步:硬件接线
- DTU的TX接USB转串口的RX
- DTU的RX接USB转串口的TX
- GND接GND(这个千万别忘,我见过有人没接地线,数据死活不通)
第二步:设置串口参数
打开串口工具,配置如下:
| 参数 | 典型值 | 说明 |
|---|---|---|
| 波特率 | 115200 | 大部分DTU默认是这个,也有9600的,看手册 |
| 数据位 | 8 | 固定值 |
| 停止位 | 1 | 固定值 |
| 校验位 | None | 无校验 |
第三步:上电测试
给DTU通电,串口窗口应该能看到启动信息。如果啥都没有,先检查波特率对不对。我曾经有一次折腾了半小时,结果发现是USB转串口的驱动没装好……嗯,这种低级错误谁都会犯。
AT回车,返回OK就说明通信正常。这是最基础的验证方法。
3.2 配置心跳包与注册包
为什么要配心跳包?说白了,就是告诉服务器「我还活着」。DTU和服务器之间如果长时间没数据,运营商的NAT会断开连接。我遇到过最坑的一次,心跳间隔设了10分钟,结果设备经常掉线,后来改成30秒就稳了。
心跳包配置示例(AT指令方式):
AT+HEARTEN=1 // 开启心跳功能
AT+HEARTDT="HEART" // 设置心跳内容,可以是任意字符串
AT+HEARTTM=30 // 心跳间隔,单位秒,建议30-60秒
AT+HEARTLK=3 // 心跳失败重连次数,3次失败后重启
注册包是什么?
注册包是DTU连接服务器后,主动发送的第一条数据。用来告诉云平台「我是谁」。我一般把设备ID或者IMEI号放在注册包里。
AT+REGEN=1 // 开启注册包功能
AT+REGDT="1234567890" // 注册包内容,比如设备ID
AT+REGMODE=0 // 0表示连接成功后发送一次,1表示每次数据前都发
3.3 数据上云:连接阿里云IoT
好了,现在DTU已经能正常通信了,咱们把它连到阿里云IoT平台。说白了,就是把DTU当成一个TCP客户端,去连接阿里云的MQTT服务器。
阿里云IoT平台配置步骤:
- 登录阿里云IoT控制台,创建产品(比如「气象站DTU」)
- 添加设备,获取三元组(ProductKey、DeviceName、DeviceSecret)
- 在DTU上配置MQTT参数
DTU侧的MQTT配置:
AT+MQTTCONN="a1xxxxx.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883
// 连接地址和端口,1883是TCP端口,8883是SSL端口
AT+MQTTUSER="device&a1xxxxx"
// 用户名格式:DeviceName & ProductKey
AT+MQTTPASS="xxxxxxxxxxxxxxxxxxxxxxxxxx"
// 密码是DeviceSecret,注意区分大小写
AT+MQTTTOPIC="/a1xxxxx/device/data"
// 发布数据的主题,格式固定
AT+MQTTSUB="/a1xxxxx/device/get"
// 订阅主题,用来接收云端下发的指令
配置完成后,发送AT+MQTTSTART启动连接。如果返回CONNECT OK,恭喜你,数据已经上云了。
3.4 数据上云:连接OneNET
OneNET是中移动的平台,对DTU的支持也很友好。我个人觉得OneNET的文档比阿里云更接地气,适合初学者。
OneNET配置要点:
| 参数 | 值 | 说明 |
|---|---|---|
| 服务器地址 | 183.230.40.39 | OneNET的MQTT服务器IP |
| 端口 | 6002 | MQTT端口 |
| 设备ID | 你的设备ID | 在OneNET平台创建设备时生成 |
| APIKey | 你的APIKey | 用于鉴权 |
OneNET的AT指令配置示例:
AT+MQTTCONN="183.230.40.39",6002
AT+MQTTUSER="你的设备ID"
AT+MQTTPASS="你的APIKey"
AT+MQTTTOPIC="$dp" // OneNET的数据点主题,固定写法
AT+MQTTSTART
连接成功后,发送数据格式是JSON:
{"datastreams":[{"id":"temperature","datapoints":[{"value":25.3}]}]}
AT+HEARTEN=0关掉即可。
3.5 常见问题与调试技巧
最后分享几个我实战中遇到的坑,你遇到了可以直接对照排查:
- 连不上服务器: 先ping一下服务器IP,看看网络通不通。有时候是SIM卡欠费了……别笑,我真遇到过。
- 数据发出去但收不到: 检查主题是否匹配,尤其是阿里云,主题里的大小写和斜杠必须完全一致。
- DTU频繁重启: 可能是电源供电不足。DTU在4G发射时电流能到2A,用USB供电很容易掉电。建议用12V/2A以上的电源。
- 心跳包导致流量超标: 如果用的是物联网卡,流量很贵。把心跳间隔调到60秒以上,内容尽量短,比如就一个字节
0x00。
嗯,这一章的内容就这些。说白了,DTU配置就是三板斧:串口连上、配好心包、连上云平台。你动手试一遍,比看十遍文档都管用。下一章咱们聊聊如何用DTU采集气象站的各种传感器数据,到时候见。