温度压力等传感器大都支持modbus协议,但如果在云端服务器上建立modbus服务器,鉴于modbus服务器只能请求数据,客户端端应答数据的特性,云端服务器难以获取本地传感器的ip,故需要采用DTU设备进行功能实现。

传感器————》DTU设备————》云端服务器

云端服务器采用物联网中间件,全部代码如下:

物联网网络中间件

iot-ucy是使用java语言且基于netty, spring boot, redis等开源项目开发来的物联网网络中间件, 支持udp, tcp, 串口(com)通讯(window、linux、mac)等底层协议和http, mqtt, websocket(默认实现和自定义协议头实现), modbus(tcp,rtu),plc,dtu(支持心跳,设备注册功能以及AT协议和自定义协议支持),dtu for modbus tcp,dtu for modbus rtu组件适配 等上层协议. 主打工业物联网底层网络交互、设备管理、数据存储、大数据处理. (其中plc包括西门子S7系列,欧姆龙Fins,罗克韦尔CIP,三菱MC). 数据存储将使用taos数据库以及redis消息队列。

DTU用的是“有人”的积木式边缘网USR-M100型号网关,利用网关中的modbus协议转换功能,根据用户手册配置测试modbus转换功能后用传感器连接,传感器连接时DTU作为服务器。以下为DTU说明书和传感器说明书。

【应用手册】USR-M100 快速应用手册 V1.0.1-济南有人物联网技术有限公司官网

TH10S-B_RS485通讯型温湿度使用手册_V105.pdf - 易维联云盘 (1weilian.com)




在云服务器上上传视频 上传云端服务器_Powered by 金山文档


由于前端还没有实现,先用postman访问接口,获取到了传感器的实时数据。

下面用于个人记忆,物联网中间件源代码包含三个,


在云服务器上上传视频 上传云端服务器_java_02


其中第一个是后端服务器代码,用于与前端交互提供给前端接口的

第二个是用于DTU等设备连接


在云服务器上上传视频 上传云端服务器_Powered by 金山文档_03


第三个是前端源代码。

后端服务器打jar包的时候,仅需要打第一个源代码里面的


在云服务器上上传视频 上传云端服务器_java_04


在云服务器上上传视频 上传云端服务器_物联网_05


打包好在该路径。

第二个源代码打包会一直报错


在云服务器上上传视频 上传云端服务器_java_06


这是因为他仅用于与设备的交互,他编译好打好的jar在第一个源代码中引用了,所以后端代码只需运行运行第一个源代码的jar包即可。下图为第一个源代码在idea中的配置。


在云服务器上上传视频 上传云端服务器_java_07