nodemcu通过MQTT协议进行通讯

nodemcu介绍

nodemcu是一款开源快速硬件原型平台,包括固件和开发板,用几行简单的Lua脚本就能开发物联网应用。特点包括开源,交互式,可编程,低成本,简单,智能,WI-FI硬件。 
最新版的nodemcu开发板是基于ESP-12E的,具有GPIO、PWM、I2C、1-Wire、ADC等功能。

实物图 

新版引脚图 
nodemcu新版引脚图

更对关于nodemcu的介绍可以参考其中文官网,或者其在Github上的地址

nodemcu固件定制

nodemcu采用Lua脚本作为编程语言,在使用之前需要定制需要使用的模块,比如gpio,wifi,net,mqtt等,更多模块介绍和使用请参考nodemcu的API文档。 
项目中给出了三种定制固件的方法,这里采用最简单的一种,云定制,可以访问云定制网站通过以下步骤来定制。

  1. 填写邮箱以便接收定制好的固件;
  2. 选择分支,这里选master;
  3. 勾选需要定制的模块,这里选择勾上cjson, file, gpio, mqtt, net, node, tmr, uart, wifi;
  4. 勾上加密传输;
  5. 点击按钮提交,开始编译固件。

这里写图片描述

登陆你填写的邮箱,大概十分钟左右就能接受到邮件,告诉固件和下载工具的下载地址 
这里写图片描述

下载固件到nodemcu

这是使用ESP8266Flasher来下载固件,打开软件后,在“config”中选择要下载的固件。在“operation”中选择串口号,点击“flash”即开始下载。 
这里写图片描述

上传脚本到nodemcu

为了查看效果,这里需要专用串口调试软件ESPlorer,打开软件后,选择串口号和波特率,点击“open”开始连接,点击开发板上的复位按钮,软件中打印出固件的一些信息。 
这里写图片描述

在左边的编辑区中新建脚本文件“mqtt.lua”,编辑脚本如下 
这里写图片描述

点击“save to esp”完成脚本上传。

使用相同方法将“mqtt.lua”脚本上传到另一块开发板上,为了区别,最好将客户端id修改一下,这里修改成“nodemcu2“。

连接MQTT服务器并测试

在服务器上开启代理服务

mosquitto -v
  • 1
  • 2

在开发板1和2上再次执行”mqtt.lua”,确保连接服务器成功,如下

这里写图片描述

在右下角的命令框中输入

m:subscribe("blinkdr",0, function(conn) print("subscribe success") end)
  • 1
  • 2

并点击”send”发送命令到开发板,实现对主题”blinkdr”的订阅成功。分别对开发板1和2执行以上操作。

在开发板2的命令框中输入

m:publish("blinkdr","hello from nodemcu2",0,0, function(client) print("sent") end)
  • 1
  • 2

并发送命令,推送消息”hello from nodemcu2”到主题”blinkdr”,则所有订阅了该消息的设备都能接收到该消息。 
同理可以从开发板1发送一条”hello from nodemcu1”到主题”blinkdr”。 
则最终开发板1收到的效果如下 
这里写图片描述

开发板2收到的效果如下 
这里写图片描述

而服务器端的效果如下 
这里写图片描述

猜你喜欢

转载自blog.csdn.net/xiaowang2343/article/details/80665319