用树莓派、NodeRed和MQTT来监测远端设备温度

项目介绍

这是一个可以从远端看到设备的温度的项目。硬件用到了树莓派Raspberry Pi和18b20温度传感,和NodeRed以及免费的MQTT 服务器做收发。文末有视频展示,因为操作步骤多,为了避免遗漏,所以做个视频记录,加强记忆。也同时帮助大家了解项目功能。

NodeRed和MQTT来监测远端设备温度图1

NodeRed和MQTT来监测远端设备温度图2

图1、2 硬件连线

NodeRed和MQTT来监测远端设备温度图3

图3 设备连线,4.7k是个电阻
 

软件简介

Node-RED

Node-RED 是构建物联网(IOT, Internet of Things)应用程序的一个强大工具,其重点是简化代码块的“连接”以执行任务。它使用可视化编程方法,允许开发人员将预定义的代码块(称为“节点”,Node)连接起来执行任务。连接的节点,通常是输入节点、处理节点和输出节点的组合,当它们连接在一起时,构成一个“流”(Flows)。

Node-RED最初是IBM在2013年末开发的一个开源项目,以满足他们快速连接硬件和设备到Web服务和其他软件的需求——作为物联网的一种粘合剂,它很快发展成为一种通用的物联网编程工具。重要的是,Node-RED已经迅速形成一个重要的、不断增长的用户基础和一个活跃的开发人员社区,他们正在开发新的节点,同时允许程序员复用Node-RED代码来完成各种各样的任务。

虽然Node-RED 最初是用来处理物联网的应用,也就是说,它与现实世界交互和控制设备,随着它的发展,它已经成为一个较为开放的物联网开发工具。本章内容将介绍一些Node-RED的示例,既可以了解其功能,也可以介绍基本概念。同时还将讨论Node-RED的历史及其起源,以便让您了解Node-RED是什么样的,哪些类型的任务最好留给传统的编程环境。

MQTT

MQTT 是一个基于发布/订阅模式的消息传输协议。它具有轻量级、开放、简单,易于实现,通信带宽要求低等特点。这些特点使得它对机器与机器的通信(M2M)以及物联网应用(IoT)来说是很好的选择。它还被应用到手机APP和Web应用中。

MQTT于1999年由Andy Stanford-Clark(IBM)和Arlen Nipper(Arcom,现为Cirrus Link)发明,最初的应用是为了以最小的电池损耗和最小网络带宽将石油管道数据通过卫星进行传输。在MQTT最初版本发布3年后,OASIS开源组织接管MQTT的标准化制定工作。MQTT如今的最新版本为MQTT3.1.1,相比MQTT3.1的变动很小,但还是鼓励使用3.1.1版本,3.1.1已经成为了ISO标准。

客户端/服务器模式 vs 发布/订阅模式

传统的网络通信模式几乎都是基于客户端/服务器模式的:客户端直接和一个服务端建立连接,通信来获取数据,数据源和数据目的地双方直接连接。比如在Web应用程序中,浏览器直接和Web服务器通过HTTP协议通信,浏览器需要知道服务器的IP和端口号。

而发布/订阅模式解耦了客户端,客户端分为2种角色:发布者(Publisher)和订阅者(Subscriber)。每一个发布者(Publisher)可以发送不同类型的消息,我们把消息的类型叫做主题(topic),MQTT通信中的消息都属于某一个主题  ,而只有订阅了这个主题的订阅者(Subscriber)才能收到属于这个主题的消息。发布者和订阅者不需要在意和知道对方的存在(不需要知道对方的IP和端口),也不需要直接与对方建立连接。因为通信中存在着一个叫代理(MQTT broker)的第三种角色,也可以叫MQTT服务器(MQTT server)。
发布者、订阅者只需要知道MQTT 服务器的IP和端口即可,并和它直接建立连接通信。MQTT代理作为消息的中转,它过滤所有接受到的消息,并按照一定的机制(MQTT标准规定是基于主题的消息过滤派发方式,而具体的MQTT服务器软件也提供了其他的派发方式)分发它们,使得所有注册到MQTT代理的订阅者只接收到他们订阅了的消息,而不会收到他不关心的消息。
当发布者发布一条消息的时候,他必须同时指定消息的主题和消息的负载。MQTT代理在收到发布者发过来的消息时,无需访问消息负载,他只是访问消息的主题信息,然后根据这主题派发给订阅者。需要注意的是,一个客户端可以同时既当发布者又当订阅者。比如一个开发板连接了一盏LED灯,它可以发布灯的暗/亮状态信息,也可以从其他节点订阅对灯的控制消息。


配置项目

MQTT服务器用的是HiveMQ

NodeRed和MQTT来监测远端设备温度图5

MQTT消息的发布

下面是树莓派信号端的软硬件配置:

NodeRed和MQTT来监测远端设备温度图6

从树莓派打开nodered:

NodeRed和MQTT来监测远端设备温度图7

此图告诉你如何加载运行库:

NodeRed和MQTT来监测远端设备温度图8

基本功能展示:

NodeRed和MQTT来监测远端设备温度图9

安装运行库:

NodeRed和MQTT来监测远端设备温度图12

安装好的库出现在功能菜单:

NodeRed和MQTT来监测远端设备温度图10

调试窗的信息展示:

NodeRed和MQTT来监测远端设备温度图11

做MQTT的字串收发测试:

NodeRed和MQTT来监测远端设备温度图13

主题设置:

NodeRed和MQTT来监测远端设备温度图14

最后完成收发测试。

远程监控温度IoT-NodeRed

原文地址:NodeRed和MQTT来监测远端设备温度 DF创客社区 (dfrobot.com.cn)

项目作者:gada888

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值