咸鱼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. VBA操作word生成sql语句
  2. java学习(130):treemap类
  3. 控制台下修改系统驱动状态的代码
  4. 二开微信表情包小程序去授权版+网站后端
  5. Win7 无法进行Windows自动更新
  6. 第八章 ---- 枚举注解
  7. python装第三方库有几种方法_Python安装第三方库的4种方法
  8. python之Linux基础(三)
  9. CGPathAddArc
  10. 外显子bed文件获取
  11. pos机显示服务器异常,POS机刷卡出现异常不要慌!一定要按步骤处理问题!
  12. Super Socks5cap使用教程
  13. 【nginx读取配置文件http模块】
  14. php微信支付需要哪些设置,如何申请和配置微信支付接口?
  15. 苹果手机计算机软件不见了怎么办,苹果手机备忘录的东西突然没有了怎么找回?...
  16. 如何获得免费虚拟主机,云服务器呢?(免费)
  17. 华为ENSP之防火墙双机热备
  18. 俄勒冈大学计算机科学专业,俄勒冈大学计算机与信息科学详解 热门专业不容错过...
  19. VB控件实现IObjectSafety安全接口(zt)
  20. linux创建文件软链接命令,Linux创建文件或目录软链接、硬链接的技巧

热门文章

  1. nuc element i5-8265U黑苹果配置
  2. 右侧追击(二)——券商行业
  3. 人工智能时代的自我修炼之-有效沟通
  4. Linux - cannot update mailbox /var/mail/root for user root. error writing messa ge: File too large
  5. 虚拟机安装debian
  6. Oracle新建的用户看不到表,oracle中用命令行新建的用户没法建表
  7. HTML+CSS+原生JS写一个简易的音乐播放器(仅播放一首歌)
  8. MPA海洋捕食者算法学习笔记
  9. 网络技术-路由器配置
  10. Negroni源码分析