| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> MicroPython-On-ESP8266——使用MQTT实现两块开发板之间联动(远程控制) -> 正文阅读 |
|
[Python知识库]MicroPython-On-ESP8266——使用MQTT实现两块开发板之间联动(远程控制) |
MicroPython-On-ESP8266——使用MQTT实现两块开发板之间联动(远程控制)1. MQTT学习MQTT本人好早之前在一个项目中接触过,这里我就不再过多介绍相关的原理什么的,主要精力是后面的实验部分。如果不熟悉的话,自行百度再学习下。 大家经常在外面用微信或支付宝扫码支付,有些店家会使用到一个外置的独立小喇叭盒子来播放收款信息,那个盒子就是使用了MQTT,支付渠道会把你支付完成的信息广播给那个小喇叭。 还有如手机扫码点餐,点完后餐厅自动打印小票,那个云打印机也是如此。 1.1. MQTT服务安装mqtt服务端这里使用的是Mosquitto,对于咱这种体量的学习和测试使用,完全足够了。也可以安装EMQX开源版本,也是一样好用,且有管理界面。 去到下载页面,我下载的是windows版本,在本机直接安装。 1.2. 要点记录:订阅主题和消息可靠性1.2.1. 主题关于mqtt订阅主题这块,还是记录点资料吧,这个东西比较强大,长时间不会也会忘记。这里把学习到内容再巩固一下。 主题可以对消息进行分类,主题字符串中使用反斜杠表示多个层级关系。层级的妙用在于订阅端,订阅端可以通过通配符对主题进行过滤。其中,+可以过滤一个层级,#只能出现在主题最后表示过滤任意级别的层级。 举个例子:
注意,MQTT允许使用通配符订阅主题,但是并不允许使用通配符广播。 1.2.2. 消息可靠性为了满足不同的场景,MQTT支持三种不同级别的服务质量(Quality of Service,QoS)为不同场景提供消息可靠性:
具体使用哪个级别,还是看自己业务上对消息的处理方式吧。 1.3. 使用测试Mosquitto安装好后,自带有命令行pub与sub工具,咱们来试用一下,同时测试一下主题过滤: 另外也可以用使用客户端比如MQTTX测试一下效果,其他的像mqtt.fx什么的也都是很好用的客户端。 2. 实验2.1. 目的是一块板上按钮控制另一块板上的led灯前面学习使用四角开关控制led灯,见链接。那咱们学习了mqtt以后,就可以跨板实现了。 咱们这里做两个实验。
2.2. 接线控制板接线方法还如单板控制时候一样,我这里还是用的简化版的走线。 按下按钮是低电平。找到个大的四角按钮,直接在面包板上把0/1两脚接到GND和D6(GPIO 12)端,都不用另外走线。 受控板led灯就直接用板载LED灯。 2.3. MQTT驱动库micropython官方开源库中有umqtt.simple库来支持mqtt连接,使用流程分pub(广播)端和sub(订阅)端。
需要注意的是,umqtt库传递主题和消息时,得使用bytes字节型。这样减少了底层封包和拆包的额外开销。 如果在生产环境使用mqtt客户端时,对连接质量有要求的话,可以用simple派生出的umqtt.robust库,可以实现自动重连。 下载simple.py文件后,我这里把它重命名为umqtt.simple.py,然后上传到开发板待用。
好像可以用micropython固件内置的 2.4. 业务代码开发板默认已在 2.4.1. 受控端基于两个实验目的,先定义受控端,回调函数响应时定义三个类型的事件
有这三个类型,实验一切换状态和实验二跟随按钮状态就都能支撑得到了。 下面代码其实就是umqtt官方库中的
2.4.2. 主控端实验一:控制板按钮,每按一下,受控板led灯状态就切换一次
【实验演示】 实验二:控制板按下受控板灯亮,松开后受控板led也跟着灭
【实验演示】 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/25 14:08:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |