Toggle navigation
首页
(current)
问答
文章
话题
商城
登录
注册
稀饭放姜 iRTU 学习日记 (2):实现最基本的一个应用-RS485透传
iRTU
UPWS
LLCOM
手机访问
透传
RS485
UDP
通过一个手机浏览器和iRTU的485端口建立透传连接,可以互相透明传输文本或者二进制数据。
#### openluat Air720D 4G DTU主控板 是由合宙开源社区技术专家“稀饭放姜”设计,上海合宙物联网公司推出的一款移动2G/4G 双模DTU产品。只需要加上壳子就成为一个性能优秀的DTU产品。今天的学习日记里面,我将尝试使用iRTU 配合另一个开源小项目UPWS做一个最基本的工业应用案例:RS485数据双向透传。 ## 基本功能: ## 通过一个手机浏览器和iRTU的485端口建立透传连接,可以互相透明传输文本或者二进制数据。 ![](/static/editormd/php/../uploads/5_16150.jpg) ## 实现原理 ## ![](/static/editormd/php/../uploads/5_30818.jpg) 1) iRTU通过UDP端口连接到远程的UPWS服务器,并发送上线消息 服务地址为 udp://box.miuser.net:7101 2)手机通过微信扫描二维码或浏览器输入网址打开iRTU测试小程序页面通过Websocket接口连接到UPWS服务器,并发送上线消息 服务地址为:ws://box.miuser.net:9000 3)电脑客户端接一个USB转UART串口的连接线,再转接一个UART转RS485的连接板连接到iRTU上,并使用串口调试工具打开USB串口 4)通过手机客户端可以和LLCOM串口调试工具建立起双向的文本命令传输,传输支持中文和英文。 下面是硬件连线示意图 ![](/static/editormd/php/../uploads/5_80141.jpg) ## 硬件连接具体步骤 ## 器材准备 1) Air720D 4G DTU主控板+2G/4G全频段天线 ![](/static/editormd/php/../uploads/5_93772.jpg) 2)RS485转UART小板+USB转串口线 ![](/static/editormd/php/../uploads/5_37087.jpg) 3) USB 5V电源+ USB线 ![](/static/editormd/php/../uploads/5_39112.jpg) 4) DTU供电连接线两根+RS485传输线一盘 ![](/static/editormd/php/../uploads/5_95425.jpg) 5) 手机一部+电脑一部 (很普通,就不拍照了) 连接方式如下 ![](/static/editormd/php/../uploads/5_51276.jpg) 电路连接好后,将sim卡插入iRTU板子sim卡座上,通上电源我们应该能看到iRTU灯有规律的闪烁,此时证明iRTU工作已经正常。准备开始接收指令 ## iRTU配置步骤 ## 此时我们打开LLCCOM调试工具,发送如下指令序列,对iRTU进行配置 串口波特率训练 --发送 AT --返回 AT 查询版本 --发送 rrpc,getver --返回 rrpc,getver,1.8.7 查询设备IMEI --发送 rrpc,getimei --返回 rrpc,getimei,866262042499144 配置为连接UPWS服务器 --发送 config,writeconfig,{"fota":0,"uartReadTime":"25","flow":"","param_ver":"1","pwrmod":"normal","password":"","netReadTime":"0","passon":1,"nolog":"0","plate":0,"reg":0,"convert":0,"uconf":[[1,"115200",8,2,0,""],[2,"115200",8,2,0,""]],"conf":[["udp","005501B01000000000100000000000000011234iRTUUPWs 1.0.000",10,"box.miuser.net",7101,1,"","",""],[],[],[],[],[],[]],"preset":{"number":"","delay":"","smsword":""},"apn":["","",""],"cmds":[[],[]],"pins":[],"gps":{"pio":[],"fun":[]},"upprot":["\nfunction\nlocal str=...\nlocal totallen=41+str:len()\nlocal ret=string.format(\"%04d\",totallen)..\"01\"..\"C\"..\"01\"..\"0000000001\"..\"0000000000000001\"..\"1234\"..str..\"05\"\nreturn ret\nend","","","","","",""],"dwprot":["function\nlocal str=...\nlocal ret=str:sub(40,-3)\nreturn ret\nend","","","","","",""],"warn":{"adc0":[],"adc1":[],"vbatt":[],"gpio":[]}} --返回 OK 配置iRTU的是一个Json字符串,具体各个字段的含义在 “iRTU参考手册”上可查,目前最新版是V3.1 此配置字段的含义如下: 1) 配置iRTU为UDP传输模式,服务器地址为 box.miuser.net,端口为7101 2) 每隔10 S发送一次心跳包,心跳包的内容为 005501B01000000000100000000000000011234iRTUUPWs 1.0.000 3) 使用数据通道1通过数据模板进行透传,并绑定到到iRTU串口1 4) 上行数据流模板代码为 --固定头,标识模板开始 function --接收从硬件通道传入的数据 local str=... --计算包长度 local totallen=41+str:len() --拼接发送的数据包,各个字段内容详见MTCP通讯协议,包含在UPWS协议中,文末有开源地址 local ret=string.format("%04d",totallen).."01".."C".."01".."0000000001".."0000000000000001".."1234"..str.."05" --返回拼接好的数据包,给iRTU底层发送 return ret end 5) 下行数据流模板代码为 --固定头,标识模板开始 function --接收从服务器发来的原始数据 local str=... --提取其中的有效数据字段 local ret=str:sub(40,-3) --输出给硬件数据通道 return ret end 关于UPWS数据报文格式及iRTU数据流模板更详细的介绍篇幅所限就不在此敷述了,请参与文末的资料链接进行相关阅读。也可以在Bilibili上 搜索“稀饭放姜” 相关视频教程了解。 方便起见"飞思创-Luat生态伙伴" 提供了一款图形化的iRTU配置工具:“iRTU ConfigTool” 最新版本是V1.3.6,性能很不错。 ## iRTU透传使用方法 ## 下面我说说使用iRTU透传的具体的使用方法。 打开手机浏览器输入如下网址,打开IRTU连接测试小工具 http://box.miuser.net/iRTU_UPWs/UPWsiRTU.htm?ID=0000000001&MM=0000000000000001 为了简便起见我已经生成好了一个二维码,直接扫描二维码就行了。 ![](/static/editormd/php/../uploads/5_27057.png) 其中ID为10位10进制数字,MM为16位16进制数字,作用为UPWS的通讯信道UID和通讯密码,此处设置要与上面iRTU设置的心跳包与数据流模板的相对应的字段相一致,才能正常通讯。 使用前需要相应修改为任意合规的数字,直接在iRTU配置字段里进行相应的搜索替换即可。 打开电脑,运行LLCOM,在程序底部,确认对应的串口号,并点击打开串口即可收到iRTU透传工具发送的心跳包。此时通过软件发送的指令就可以传输到了手机上了,反之手机上发送的指令也可以在LLCOM接收到。 ![](/static/editormd/php/../uploads/5_66580.jpg) ## 常见故障排除 ## 1 iRTU状态灯不亮,或反复重启(灯亮一会,就灭,间隔大于3s) A:供电不足,5V供电需要较粗的电缆及2A的电源输出电流,如果没有条件可以提高输入电压到6V-12V B:固件不可恢复错误,可以开盒重刷DTU固件,固件下载地址在QQ群952343033,群文件中 2 iRTU接收不到心跳包 A: 检查服务器地址,端口,MM,ID均设置正常,注意数字的位数,发送字段是有长度校验的,错误的包长度会导致解析错误。 B:检查RS458 A端口 B端口是否接反 3 通讯数据格式混乱 A: 检查数据流模板是否被魔改了 ## 参考资料 ## 本文所提及的文档及工具资料包: https://pan.baidu.com/s/15QICk163bI5NCB8M0SSDpA 提取码:a610 本文参考资料如下: 1 iRTU项目开源地址 https://github.com/hotdll/iRTU 2 UPWS项目开源地址 https://github.com/miuser00/UdpPlugWebsocket 3 LLC能跑Lua脚本的串口调试工具项目开源地址 https://github.com/chenxuuu/llcom ## 技术咨询方式 ## 合宙Luat(稀饭放姜iRTU) QQ群:952343033 ## 720DTU主控板购买链接 ## http://m.openluat.com/product/724 供电电源,串口转USB电缆,485转Uart小板均为淘宝公板电路,请自行选购。 谢谢您阅读本文,并祝您开发一切顺利
发表于 2019-11-29 23:16
阅读 ( 3517 )
分类:
默认分类
2 推荐
收藏
你可能感兴趣的文章
9、RDA8910CSDK二次开发:趁热打铁干脆顺带把UDP通讯也给撸了吧
1844 浏览
稀饭放姜 iRTU 学习日记 (5):用电脑采集Modbus温湿度传感器数据
3045 浏览
稀饭放姜 iRTU 学习日记 (4):Websokcet手机客户端通过iRTU控制Modbus继电器
2526 浏览
稀饭放姜 iRTU 学习日记 (0)入手iRTU固件的开发板
3365 浏览
稀饭放姜 iRTU 学习日记 (3):PC电脑通过UDP与iRTU通讯的一个小例子
2193 浏览
相关问题
0 条评论
请先
登录
后评论
miuser
工程师
21 篇文章
作家榜
»
技术销售Delectate
43 文章
陈夏
26 文章
国梁
24 文章
miuser
21 文章
晨旭
20 文章
朱天华
19 文章
金艺
19 文章
杨奉武
18 文章
×
发送私信
发给:
内容:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!