乐联网DTU 教程4:DIY 低成本乐联网GPRS DTU

96
老刘老刘老刘
2017.05.30 16:57* 字数 951

标签: DTU luat


摘要

  1. 介绍一个开源的乐联网GPRS DTU方案。
  2. 用这个开源方案连接一个modbus 光照度设备演示一下系统功能

关于乐联网DTU相关内容请参考以下链接。什么是所谓的乐联网DTU

硬件

开源方案模组采用上海合宙出品的air200(lua 版本)。
选中它主要有两个原因

  1. air200模块采用了最近比较流行的在低成本硬件上面集成系统开放脚本接口二次开发的模式(类似nodemcu for esp8266),简单应用可以直接省掉mcu 了(比如本教程的应用)。
  2. 开源出来的软硬件资料很多,学习起来很方便,开发板功能丰富(集成USB调试,甚至直接能玩太阳能电池供电了)。
  3. 价格优势太明显,air2000一个模组批量才不到15元,加上外围电源卡座PCB等等,批量费用不会超过20元。

下图是air 2000的两种官方开发板,左边是S3,只提供了sim卡座,比较适合直接做应用产品。
右边的是S1,提供了电源和下载USB接口,比较适合调试代码,两种开发板都可以直接TB买到。


air2000 两种开发板
air2000 两种开发板

本文后面的实验用到的都是自己设计的一个底板(by @vip老王),底板主要作用是提供了电源和485接口。如下图:

GPRS-DTU-01 正面
GPRS-DTU-01 正面

GPRS-DTU-01 反面
GPRS-DTU-01 反面

相关硬件原理图:GPRS-DTU-01 原理图

没有这个底板同样可以进行实验,只要买一个s3模组,一个ttl-485的模块,再自己做一个5v供电的插头,用杜邦线把这些连到一起就可以了,正好s3上面5V可以用来接Vin,Vbat可以用来给ttl-485模块供电(长期使用不推荐这种接法,用来测试没问题)。

代码

基于luat 乐联网GPRS DTU 开源代码
整个代码基于luat团队提供的 demo 代码修改,只是增加了两个功能(by @瘦网虫)。

  1. tcp 链接成功以后发送register 注册包给乐联网modbus 服务器
  2. 通过固定串口命令发送注册包内容到模组
    感谢luat团队提供的demo 代码。

下载luat 代码到相关硬件

将luat 代码下载到s3模组里面,这部分需要用到luaDB下载工具,属于luat开发的内容,这里就不重复叙述了,可以在openluat 论坛找答案,或者加他们的技术支持群。

基于以上内容,一个对接乐联网的GPRS 的DTU就做完了,下面用一个案例来简单说明这个DTU的用法


用一个modbus RTU 光照度设备来做实验

如下图:


光照度传感器与DTU
光照度传感器与DTU

乐联网相关设置

新建相关设备,如下图,找到userkey 和网关号

建立设备,注意06这个网关号
建立设备,注意06这个网关号

userkey 网关号相关概念这里就不多叙述了,不明白的可以参考如下教程用DTU把JSY-149 单项电表接入乐联网

启动luat 硬件,设置userkey_gateNO.

启动硬件,通过uart 1 (注意是uart1,不是host uart)发送如下字符串setvar:regcode=userkey_gateNO&^!
如下图,正确的话会返回save ok


向DTU 设置usrkey 网关号
向DTU 设置usrkey 网关号

重启luat 硬件.等待S3 上面的led 进入快闪阶段

这样就说明联网成功了,注意别忘了提前插入sim卡,否则永远成功不了。
进入modbus 控制台,如下图箭头位置


modbus 控制台
modbus 控制台

在modbus 控制台发送测试命令

正常情况下,会收到回复数值,说明整个流程已经走通了。


modbus 命令测试
modbus 命令测试

参考资料

乐联网DTU 教程1 :概述
用DTU把JSY-149 单项电表接入乐联网

乐联网DTU教程
Web note ad 1