首页 > 快讯 > >正文

本文我们来聊一聊esp8266利用mqtt协议进行通信。并将数据数据存入数据库的操作。

关于MQTT

MQTT(消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。


【资料图】

搭建MQTT服务器

这里我们利用emqx在centos中来搭建mqtt服务器。官方提供了直观的安装方式,及其简单。这里我安装的是EMQX5.0(企业版)

需要注意的是,尽量不要下载最新版的。因为很多功能在最新版中要钱。更多历史版本可以在这里下载https://www.emqx.com/zh/downloads/enterprise

然后输入初始账号adminpublic登录。

配置esp8266

我们需要将DHT11的数据通过mqtt协议发送出来。烧录代码如下。

在上述代码中,我们引入了PubSubClientDHT库。在ide中安装这两个库。(注意版本,过高可能编译不过)

上传代码到esp8266。过会儿我们在emqx中便可以看到设备已经上线了。

查看订阅数据

在上述代码中,我们的订阅主题为dht11。下载mqtt工具mqttx。新建一个连接。

具体配置如下

连接完成后,添加订阅

如下,成功得到esp8266中的dht11的数据。

需要注意的是,我们需将数据处理成json数据,方便后期入库。如{"temp":23.40,"humi":57.00}

将数据存入mysql

为了后期方便数据,我们可以将数据存放到mysql中。具体操作如下:点击数据桥接-创建-资源类型为mysql,填写相应的mysql账号等信息,并进行测试,提示资源可用则证明没有问题。

sql模板内容如下

简单的sql插入语句,即在wendu表的temphumitime字段中插入相应的值。配置完成后,会自动提示配置相应的规则

代码如下

现在,我们在mysql中新建一个wendu的表。并创建temphumitime字段。最终效果如下

更多精彩文章 欢迎关注微信公众号 kali黑客笔记

上一篇 下一篇
x
相关阅读