咸鱼ESP32实例—MQTT

  • 发布者(publish)参考代码:
  • 订阅者(subscribe)参考代码:

由于特殊的发布/订阅机制,服务器不需要存储数据(当然也可以在服务器的设备上建立一个客户端来订阅保存信息),因此非常适合海量设备的传输。MicroPython 已经封装好了 MQTT 客户端的库文件。直接用就完了~!点击查看MQTT简介


ZTWF开发板

构造函数
client=simple. MQTTClient (client_id, server, port)
构建 MQTT 客户端对象。
client_id: 客户端 ID,具有唯一性;server: 服务器地址,可以是 IP 或者网址;port:服务器端口。(服务器通常采用的端口,可以自定义。)
使用方法
client.connect()
连接到服务器。
client.publish(TOPIC,message)
发布。TOPIC:主题编号;message: 信息内容,例:‘Hello~’
client.subscribe(TOPIC)
订阅。TOPIC:主题编号。
client.set_callback(callback)
设置回调函数。callback:订阅后如果接收到信息,就执行相名称的回调函数。
client.check_msg()
检查订阅信息。如收到信息就执行设置过的回调函数 callback。

为了方便测试,我们可以使用 MQTT 网络助手进行调试。这里推荐一个在线MQTT 网络调试助手:http://mqtt.p2hp.com/websocket/打开上面网址,即可看到 MQTT 在线调试助手。可以配置基本信息,这里默认即可,点击连接。

发布者(publish)参考代码:
import network
from machine import Timer
from mqttclient import MQTTClient
wifi = network.WLAN(network.STA_IF)#一般都是STA
wifi.active(True)
wifi.connect('xianyu','密码')     #你要连接的wifi账号密码
print(wifi.ifconfig())  #输出wifi 的ip地址等信息
#发布数据任务
def MQTT_Send(tim):client.publish(TOPIC, 'Hello xianyu!')SERVER = 'mqtt.p2hp.com'
PORT = 1883
CLIENT_ID = 'xianyu' # 客户端 ID
TOPIC = 'xianyu' # TOPIC 名称
client = MQTTClient(CLIENT_ID, SERVER, PORT)
client.connect()
tim = Timer(-1)#开启RTOS定时器,编号为-1,周期1000ms,执行socket通信接收任务
tim.init(period=1000, mode=Timer.PERIODIC,callback=MQTT_Send)


连接成功后显示connected,然后点击订阅新主题

Topic设置好,点击订阅

每秒传一次数据

订阅者(subscribe)参考代码:
import network
from machine import Timer
from mqttclient import MQTTClient
wifi = network.WLAN(network.STA_IF)#一般都是STA
wifi.active(True)
wifi.connect('xianyu','密码')  #你要连接的wifi账号密码
print(wifi.ifconfig())  #输出wifi 的ip地址等信息
#设置 MQTT 回调函数,有信息时候执行
def MQTT_callback(topic, msg):print('topic: {}'.format(topic))print('msg: {}'.format(msg))
#接收数据任务
def MQTT_Rev(tim):client.check_msg()
SERVER = 'mqtt.p2hp.com'
PORT = 1883
CLIENT_ID = 'xianyu' # 客户端 ID
TOPIC = 'xianyu' # TOPIC 名称
client = MQTTClient(CLIENT_ID, SERVER, PORT) #建立客户端对象
client.set_callback(MQTT_callback) #配置回调函数
client.connect()
client.subscribe(TOPIC) #订阅主题
tim = Timer(-1)
tim.init(period=300, mode=Timer.PERIODIC,callback=MQTT_Rev)

“订阅者”代码测试方法跟“发布者”相反。将“订阅者”代码下载到开发板,然后在电脑 MQTT 助手中发布主题修改为:‘xianyu’(跟代码发布的主题一致。)在下方空白框输入

点击发布可在工具中查看收到的信息

咸鱼ESP32实例—MQTT相关推荐

  1. 咸鱼ESP32实例—RTC

    咸鱼ESP32实例-RTC 每一个电子爱好者心中都希望拥有属于自己制作的一个电子时钟,接下来我们就用 MicroPython 开发板来制作一个属于自己的电子时钟. ZTWF开发板 0.96oled屏幕 ...

  2. 咸鱼ESP32实例—串口屏文字显示

    咸鱼ESP32实例-串口屏文字显示 使用设备 我们之前在3.5寸屏幕基础把屏幕样式做好了.剩下的就是和屏幕通讯了.主要是串口通讯UART,我们现在从易到难来填坑~ UART是Universal Asy ...

  3. ESP32配置mqtt arduino

    ESP32配置MQTT 明确流程 1. 需要在arduino上使用mqtt需要使用库 " PubSubClient ". 2. 使ESP32连接到WiFi网络 3. 连接mqtt代 ...

  4. 咸鱼ZTMS实例—心率检测

    咸鱼ZTMS实例-心率检测 所选设备 接线 示例代码 测试效果 所选设备 主控板:ZTMS1.1python开发板 0.96oled屏幕 max30102 MAX30102是一个集成的脉搏血氧仪和心率 ...

  5. 咸鱼ZTMR实例—板载LED

    咸鱼ZTMR实例-板载LED 大部分开发板的例程,都是从闪灯(控制LED闪烁)开始的.因为闪灯的程序简单,也比较直观,不但可以让初学者快速了解基本方法, 也可以直观地看到效果. 用法 说明 pyb.L ...

  6. 咸鱼ZTMR实例—寻迹模块

    咸鱼ZTMR实例-寻迹模块 主控板:ZTMR1.1python开发板 寻迹模块 ZT红外寻迹 规格参数: 1.工作电压:DC 3.3V-5V 2.工作电流:尽量选择1A以上电源供电 3.工作温度:-1 ...

  7. 咸鱼ZTMR实例—加速传感器

    咸鱼ZTMR实例-加速传感器 MMA7660FC 加速度传感器基本使用 制作水平仪 MMA7660FC MMA7660FC可在六个方向定制垂直水平座向 集成了众多智能的运动功能,如方向.震动和敲击检测 ...

  8. 咸鱼ZTMS实例—加速传感器制作平衡仪

    咸鱼ZTMS实例-加速传感器制作平衡仪 MMA7660FC 加速度传感器基本使用 制作水平仪 MMA7660FC MMA7660FC可在六个方向定制垂直水平座向 集成了众多智能的运动功能,如方向.震动 ...

  9. 咸鱼ZTMS实例—三轴加速传感器

    咸鱼ZTMS实例-三轴加速传感器 MMA7660FC 加速度传感器基本使用 MMA7660FC MMA7660FC可在六个方向定制垂直水平座向 集成了众多智能的运动功能,如方向.震动和敲击检测集成了众 ...

最新文章

  1. UVA 1415 - Gauss Prime(数论,高斯素数拓展)
  2. Queue接口及是实现类PriorityQueue介绍
  3. 上班族英语用语:今天你加班吗?
  4. [译]git revert
  5. 【干货】写给初中级前端的高级进阶指南
  6. ubuntu 12.04 ubuntu System program problem detected 解决方法
  7. 笔记-JavaWeb学习之旅19
  8. 【图像处理】基于matlab GUI美颜系统【含Matlab源码 809期】
  9. 各种级数(调和、几何)总结
  10. 计算某年某月某日到某年某月某日之间的天数
  11. mysql左联和全等_Mysql7种join连接及mysql一些知识点-Go语言中文社区
  12. 怎么转换视频格式?腾讯视频qlv格式转换mp4方法
  13. java数字签名(签名生成,用证书验证签名)
  14. DirectX11:着色器
  15. C#【必备技能篇】使用批处理脚本(.bat文件)打开控制台应用程序
  16. hihoCoder184——满减优惠
  17. Windows上Emwin的使用
  18. 315Mhz、433Mhz无线遥控信号的解码分析和模拟
  19. 医用超声阵列换能器波束容差分析与变迹处理
  20. jfinal框架之登录注册

热门文章

  1. Python爬虫初学一(爬虫基础)
  2. CAD中插入外部参照字体会变繁体_为什么在原点附近的图纸作为外部参照插入后却离插入点很远?...
  3. 判断类型是否继承_读《Java核心技术》-继承(覆盖、final、强制类型转换、抽象类)...
  4. lopa分析_保护层分析(LOPA)
  5. 前端实现图片快速反转替换_canvas实现图片镜像翻转的2种方式
  6. Android 天气APP(一)开发准备
  7. 最强GTD Omnifocus3 (mac)
  8. SGD平行算法 - Downpour SGD (单机python多线程版)
  9. nittest html报告,学业水平测评复习nit3-5.doc
  10. Unity的Package了解(2020.3)