MQTT+NodeRed做物联网搭档来控制远程终端设备
本帖最后由 gada888 于 2021-8-30 11:50 编辑简单说下我要做什么,我想要随时随的控制一个远程终端,只要有网络,要多远有多远那种,所以我需要一个网页端,并且有图表可以显示数据,还需要一个终端,终端用来控制传感。这里是用adafruit MQTT做网页端,树莓派的NodeRed做终端控制。我可以在世界上任何地方,通过网页图表看树莓派上连的温度模块的温度值,如果太低,则控制终端LED灯的开和关。未来会用水泵替代led,外加一个摄像头,控制浇花的动作。
https://www.bilibili.com/video/BV1TU4y177cE/
MQTT我是选了adafruit公司的可视化在线工具。
传统的IOT的平台面临的问题.
[*]概念复杂,什么影子副本孪生策略各种,用起来需要掌握的知识实在是太多了.
[*]链接麻烦,什么TLS还要搞公钥私钥乱,都要自己一步一步来做,确实比较麻烦.
[*]可视化程度低,基本还要靠自己再开发一套软件,API操作非常多.
Adafruit IO作为一个IOT平台,这解决了上面提到的一些已知的麻烦
整个Adafruit IO是三大核心模块组成.
[*]Feeds : 数据源
[*]Dashboards : 控制面板
[*]Triggers : 触发器
Feeds就是我们需要提交的数据源,比如从单片机获取的温度数据,Dashboard就是仪表板,用来展示数据,Trigger就是触发器,用来当条件发生进行操作的.
先创建一个叫temperature的Feeds.
-------------
adafruit图表设计好后的外观,首先看到连接树莓派的模块给出的温度,然后如果按动开关按钮的话,连接树莓派的LED灯会亮和灭。无延迟。而且无论我身在何处,只要能联网,只要家里的那个树莓派连着模块。我就能看到数值并用开关做开和关动作。
设计过程如下
NodeRed是Nodejs下的一个工具。Node-RED特色
Node-RED起源于2013年IBM’s EmergingTechnology Services group的一个计划的副产物,工程师Nick O’Leary和Dave Conway-Jones想用可视化界面来概念性验证一套MQTT应用,让Node-RED因此孕育而生。Node-RED很快成为更加全面性的开发工具,并于2013年9月成为OpenSource,于2016年10月加入JS Foundation。(以上说明节录自Node-RED官网)Node-RED提供各式的API,包括因特网服务,例如推特与查询天气、呼叫使用各式的通讯协议,例如MQTT、TCP、UDP等;在嵌入式系统上,Node-RED提供控制GPIO的功能,并使用MQTT或是HTTP等协议与云端做沟通,架构IOT产品。让Node-RED流行于各大网络社群的理由,在于它拥有以下诸多的优点:1.相较于撰写程序代码,使用图形化界面可更快速开发。2.适合作为概念性应用验证的开发工具。3.浅显易懂,每个API都有文字说明可供查询。4.具有高度扩充性,已有大量的Library、Flow、Node供人下载。
NodeRed就是个IOT平台,它里面的Flow你可以理解为一个最小可用的服务。创建Flow的主要方式是通过在浏览器拖拽完成的。所有所见即所得,基于浏览器的流程编辑,所以说他是一个可视化的编排工具。此外它还支持,http,mqtt,websocket,tcp,utp,等协议。支持所有主流的链接设备和服务器。此外他还是一个可以无限扩展的平台,目前平台有超过225,000个模块,你可以轻松地在扩展面板中添加并使用他们。
总结一下Node-RED工具的特点
可视化,直接在浏览器拖拽创建Flow平台可使用模块丰富支持http,mqtt,websocket,tcp,utp协议使用Nodejs事件驱动的非阻塞模型,非常适合在低成本硬件运行-------------先打开树莓派4里的nodered。需要安装raspbian完整版。lite版里没有nodered。-----------------------MQTT部分--------------------------LED部分————————————————设计方面的步骤多,但概念其实并不复杂。不过对初学者来说不太友好,考虑做一个带操作步骤的视频。
视频晚点奉上
我在世界上任何地方打开电脑adafruit MQTT地址,可以看到远程终端传感传回的温度值,如果点击网页上的ON或OFF后,会控制远程终端的led的亮或灭。
漂亮
页:
[1]