Node-red 物联网教程3: 基于MQTT的一个小实验
1.首先安装一个MQTT Broker(也是MQTT的消息中转服务器)
我比较常用的MQTT Broker服务器有Mosquitto和Emqx,还有比较小巧的Mosca.这些都是开源免费的,如果有更高要求,可以选择商业版.学习的话,免费版足够了.
以mosquitto为例:
登录我的树莓派,没有树莓派的可以安装一个Linux虚拟机,或者在Windows下玩耍.不过测试一些功能还是Liunx环境比较舒服,直接命令行敲代码会让自己的牛逼感油然而生.
推荐使用docker进行安装测试工具,多快好省,分分钟搞定.
docker search mosquitto //搜索镜像
搜出很多镜像文件(image),安装排名第一的就行.
docker pull eclipse-mosquitto //拉取镜像
docker run -it -p 1883:1883 -p 9001:9001 –name mq eclipse-mosquitto //启动broker
现在MQTT Broker已经运行起来了,简单吧.
2.万事俱备,开始玩耍MQTT吧
IE浏览器输入IP:1880,进入我们的Node-red管理界面,按照图示拉取功能块:
配置sensor1,mqtt(发送),mqtt(接收)3个功能块的功能
配置完成,点击部署,单击sensor1这个功能块.通过Mosquitto的控制台看到客户端已经连接成功了.
在node-red的调试串口已经能够接收到MQTT服务器回传的消息了.
3.难度升级
假设有两个开关,一个是Open,一个是Close.点击Open时,执行开灯的动作;点击Close时,执行关灯的动作.结合上面的知识,我们来实现一下.
按照图拉取功能块
处理逻辑这个function输入以下代码
let status = msg.payload;
if(status=='Open'){
//此处添加处理逻辑的代码,比如被控对象是灯泡
msg.payload = 'Open the lamp';
}else if (status == 'Close'){
//处理逻辑的代码
msg.payload = 'Close the lamp';
}else{
msg.payload = 'You have crazy!';
}
return msg;
完成后点击部署,单击sensor1/ON或者sensor/OFF,这时调试窗口显示出我们想要的结果.
简单吧,你已经学会用MQTT做些小实验了.你我的一小步,人类的一大步.
持续关注威武网,威武哥伴你成长.