DIY的智能设备联网,试试这个开源的MQTT库吧!

之前用ESP8266实现了在局域网的一些控制功能,想要真正的实现远程控制,还是要把8266接入到英特网中去,那样我们才能够体验更多的互联网带来的便利。

DIY的智能设备联网,试试这个开源的MQTT库吧!

互联网控制

那么要在互联网中控制8266该如何实现呢?大概的思路就是要把设备接入云服务器,通过云服务器实现远程数据交互。本人的网络知识比较匮乏,找了很多办法,看了很多文档,全都云遮雾罩的,令人摸不着头脑;后来听说现在MQTT比较流行,就转而查阅MQTT相关资料,感谢互联网,感谢开源的大神,居然有支持ARDUINO IDE的MQTT库!

下载地址:https://github.com/knolleary/pubsubclient

下载完库,拷贝到libraries文件夹下,打开ARDUINO IDE(安装好8266库的),然后选择“文件”->“示例”->"PubSubClient"->"mqtt_esp8266":

DIY的智能设备联网,试试这个开源的MQTT库吧!

esp8266的MQTT库

该实例实现了简单的MQTT通讯,只要简单的更改代码即可:

DIY的智能设备联网,试试这个开源的MQTT库吧!

设置WIFI用户名和密码

“broker.mqtt-dashboard.com”是一个测试服务器,可以直接使用;

编译并上传代码,就可以测试了,打开串口监视器,就可以看到来自服务器的推送消息:"Message arrived [inTopic] 0"。

不过这个服务器不是很稳定,经过一番查询,又发现了一个专门提供MQTT服务的网站:cloudMQTT.com,简单注册、设置之后,果然可以跑通了!虽然免费的资源比较可怜,但是足够一般的控制使用了!

下面简单介绍一下步骤:

1打开cloudMQTT.com网站,点击“Control Panel”进入注册页面;

2在Sign up下面输入你的邮箱地址,然后点击后面的sign up按钮;发送确认连接到你的邮箱,激活即可;

3登陆后,点击“Create”按钮创建新的实例,选择“Cute Cat”类型(免费服务,其他两个是收费的),同时支持10个连接;

4创建成功后,点击“Details”进入控制台,这里要记住属于自己的4个关键参数:Server,User,Password和Port,再点击“WebSockets UI”进入监控界面;

5将上一步的参数分别填入到8266的程序当中去:

const char* mqtt_server = Server;

...

if (client.connect(clientId.c_str(),User,Password)) {...}

...

client.setServer(mqtt_server, Port);

ok,编译下载,打开串口监视器,按下复位键,然后观察数据:

服务器获得数据:

DIY的智能设备联网,试试这个开源的MQTT库吧!

服务器端获取的数据

8266获得数据:

DIY的智能设备联网,试试这个开源的MQTT库吧!

串口监视器显示本地获取数据

经过测试,使用该MQTT库,可以轻松地实现设备和服务器之间、设备和设备之间的数据通讯,这为我们之后的智能设备DIY做好了铺垫。

希望我的分享为大家带来帮助,欢迎大家多评论,多交流!


分享到:


相關文章: