8365| 1
|
[高级教程] MQTT+NodeRed做物联网搭档来控制远程终端设备 |
本帖最后由 gada888 于 2021-8-30 11:50 编辑 简单说下我要做什么,我想要随时随的控制一个远程终端,只要有网络,要多远有多远那种,所以我需要一个网页端,并且有图表可以显示数据,还需要一个终端,终端用来控制传感。这里是用adafruit MQTT做网页端,树莓派的NodeRed做终端控制。我可以在世界上任何地方,通过网页图表看树莓派上连的温度模块的温度值,如果太低,则控制终端LED灯的开和关。未来会用水泵替代led,外加一个摄像头,控制浇花的动作。 MQTT我是选了adafruit公司的可视化在线工具。 传统的IOT的平台面临的问题.
Adafruit IO作为一个IOT平台,这解决了上面提到的一些已知的麻烦 整个Adafruit IO是三大核心模块组成.
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的亮或灭。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed