2021-8-29 10:07:35 [显示全部楼层]
820浏览
查看: 820|回复: 1

[高级教程] MQTT+NodeRed做物联网搭档来控制远程终端设备

[复制链接]
本帖最后由 gada888 于 2021-8-30 11:50 编辑

简单说下我要做什么,我想要随时随的控制一个远程终端,只要有网络,要多远有多远那种,所以我需要一个网页端,并且有图表可以显示数据,还需要一个终端,终端用来控制传感。这里是用adafruit MQTT做网页端,树莓派的NodeRed做终端控制。我可以在世界上任何地方,通过网页图表看树莓派上连的温度模块的温度值,如果太低,则控制终端LED灯的开和关。未来会用水泵替代led,外加一个摄像头,控制浇花的动作。

MQTT我是选了adafruit公司的可视化在线工具。
传统的IOT的平台面临的问题.
  • 概念复杂,什么影子副本孪生策略各种,用起来需要掌握的知识实在是太多了.
  • 链接麻烦,什么TLS还要搞公钥私钥乱,都要自己一步一步来做,确实比较麻烦.
  • 可视化程度低,基本还要靠自己再开发一套软件,API操作非常多.

Adafruit IO作为一个IOT平台,这解决了上面提到的一些已知的麻烦

整个Adafruit IO是三大核心模块组成.
  • Feeds : 数据源
  • Dashboards : 控制面板
  • Triggers : 触发器
Feeds就是我们需要提交的数据源,比如从单片机获取的温度数据,Dashboard就是仪表板,用来展示数据,Trigger就是触发器,用来当条件发生进行操作的.

先创建一个叫temperature的Feeds.
img_5e21c70046d8d.png
-------------
adafruit图表设计好后的外观,首先看到连接树莓派的模块给出的温度,然后如果按动开关按钮的话,连接树莓派的LED灯会亮和灭。无延迟。而且无论我身在何处,只要能联网,只要家里的那个树莓派连着模块。我就能看到数值并用开关做开和关动作。

chart.jpg
设计过程如下
edit layouit.jpg
block.jpg
ada看key.jpg
阿达 edit chart.jpg

阿达 feed.jpg
阿达的 edit feed.jpg

ada key.jpg
key to rpi.jpg


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。
打开nodered.jpg
nodered ip.jpg
nodered rpi.jpg
dht.jpg
inject.jpg
link.jpg
deploy.jpg
pin.jpg
-----------------------
MQTT部分
MQTT.jpg
mqtt feed.jpg
mqtt feed ok.jpg
--------------------------
LED部分
led flow.jpg
led pin.jpg
led.jpg
switch.jpg
edit change.jpg
————————————————
设计方面的步骤多,但概念其实并不复杂。不过对初学者来说不太友好,考虑做一个带操作步骤的视频。

视频晚点奉上
我在世界上任何地方打开电脑adafruit MQTT地址,可以看到远程终端传感传回的温度值,如果点击网页上的ON或OFF后,会控制远程终端的led的亮或灭。
chart123.jpg

photo1.jpg






hnyzcj  版主

发表于 2021-8-29 10:34:54

漂亮
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2021 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail