简道云接入物联网

物联网技术的创新应用使制造业能够适应未来并为未来做好准备,物联网通信是机器到用户通信和客户端-服务器交互,必须满足严格的实时性和可靠性要求。如何在简道云中发送指令给设备,可以接入物联网确保实时性要求。简道云可以通过webhook进行数据推送,webhook是微服务api的使用范式之一,也被称为反向api,即:前端不主动发送请求,完全由后端推送。 使用webhook,你可以实时接受到变化信息。
接下来就是要打通webhook和物联网及数据库之间的实时通信,需要安装以下几个工具。
安装EMQX
EMQX开源云原生分布式物联网 MQTT 消息服务器
#下载镜像 docker pull emqx/emqx # 后台运行镜像 docker run -dit --name emqx -p 18083:18083 -p 1883:1883 -p 8083:8083 -p 8084:8084 emqx/emqx:latest # 访问emqt的web管理页面 http://服务器ip地址:18083 # 端口 1883:MQTT 协议端口 8883:MQTT/SSL 端口 8083:MQTT/WebSocket 端口 8080:HTTP API 端口 18083:Dashboard 管理控制台端口

安装Node-RED
构建物联⽹应⽤程序的⼀个强⼤⼯具,它使⽤可视化编程⽅法,允许开发⼈员将预定义的代码块(也叫做"节点")连接起来执⾏任务。
# 拉取node-red的镜像 docker pull nodered/node-red # 运行node-red的镜像成为容器 docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red # 启动网址http://服务器ip地址:1880

创建webhookrelay Tokens和Buckets
类似网关可以接收webhook并路由到连接的客户端,避免将NodeRed暴露到互联网中确保信息安全。
打开网址https://my.webhookrelay.com/tokens,可以用github或google账号登陆。
点击“CREATE TOKEN”创建

记住Key和Secret

选择Buckets,点击CREATE BUCKET创建

输入Bucket名称,保存创建

复制接受webhook的服务器网址

选择简道云表单扩展功能的数据推送,点击新建数据推送

将webhookrelay中创建的服务器地址复制过来,点击连接测试并保存


在Node-RED中点击右上角图标,选择设置

在控制板中点击安装选项,搜索webhookrelay并安装

在控制板中点击安装选项,搜索mysql并安装

点击+按钮创建新流程,并命名

拖着webhookrelay插件到面板,双击设置属性,输入webhookrelay创建的bucket、key和secret

拖拽函数插件到面板,并将两个节点连接

双击函数插件,编辑函数,将简单云推送的数据进行封装处理

拖拽MQTT发送插件到面板,并与函数节点连接

双击mqtt out插件,添加物联网服务端,输入物联网服务器地址并更新

输入发送到物联网平台的主题,并保存

可以拖拽debug插件到面板,并与函数节点连接,然后部署

简道云中提交一条数据

在Node-RED中就可以接收到一条调试信息

这样可以在任意接入物联网的设备中订阅到这条简道云新增的消息

接下来可以同时保存到数据库的设置
拖拽函数插件到面板,并与前面一个函数节点连接

双击函数插件,编辑函数封装SQL语句

拖拽mysql插件到面板,并与第二个函数节点连接

双击mysql插件,添加mysql数据库信息并更新完成

点击部署,确保webhookrelay,mqtt和mysql节点都已连接

简道云上新增一条数据

这样可以在物联网平台中订阅到这条数据同时保存到数据库。

以上是折腾出来的一种不成熟的方案,还需要实践以后慢慢优化。
本文使用 文章同步助手 同步