M5Stack学习笔记(8)—— MQTT通信

本文介绍了如何使用M5Stack通过MQTT进行物联网通信。内容包括M5Stack的云端编程,通过APIKEY识别设备,以及MQTT的简单应用示例。还提到了在遇到连接问题时如何处理,并分享了在Pythonista中接收MQTT数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

万物互联的时代,网络通讯功能必须强! M5Stack因为可以通过wifi接入互联网,所以自然是可以方便的通过网络来传输数据的。

其实M5Stack可以用UIFlow的Web IDE进行编程,程序编写完毕后通过Cloud云端下载到M5Stack,云端通过一个8位16进制的APIKEY识别每个M5Stack。这个APIKEY可以在M5Stack的云端编程模式下看到。

M5Stack之间也可以向特定的APIKEY的另一个M5Stack发消息,这个可以在UIFlow Web IDE的Network模块里面找到相关功能。不过这个功能看起来过于简单,而且应该是比较依赖M5Stack的官方服务器(不确定可靠性怎样),也只能在M5Stack之间交换消息,所以我并没有深入研究。

MQTT是IoT领域广泛使用的,比较适合做轻量的数据交换。用起来也比较简单方便,就直接上示例代码了:

import wifisetup
wifisetup.auto_connect()

from m5mqtt import M5mqtt
m5mqtt = M5mqtt('m5stack','m88.cloudmqtt.com',21399,'user','password',60)

def fun(topic_data):
  print(topic_data)

m5mqtt.subscribe('iPad',fun)
m5mqtt.start()

m5mqtt.publish('PC','hello')
  • 首先要连上wifi网络
  • m5stack是随便写的client-id;m88.cloudmqtt.com是MQTT服务器,我用的cloudmqtt,5个以下连接免费;21399是端口;user是用户名;password是密码;60是keepalive时间,单位是秒
  • fun是收到了订阅的topic的消息的callback函数
  • m5mqtt.start()我想是开始了一个检查订阅消息的线程
  • m5mqtt.publish是发布了一个topic为“PC”的消息

简单的使用MQTT很容易,网络上也有很多介绍MQTT的文章,很容易上手。

下面我就给上次写的记录温湿度的程序加入发布温湿度数据到MQTT服务器的功能。因为只加入了publish功能,所以并没有subscribe以及相应的回调函数。

from m5stack import *
from m5ui import *
import units
import wifisetup
wifisetup.auto_connect()

from m5mqtt import M5mqtt
print('Init.m5mqtt...')
m5mqtt = M5mqtt('m5stack','m88.cloudmqtt.com',21399,'user','password',60)

rtc = machine.RTC()
rtc.ntp_sync(server = "ntp.aliyun.com",tz='CST-8')
while not rtc.synced():
    print("Waiting time synced with NTC server.")
    wait(0.2)


clear_bg(0x0)
env0 = units.ENV(units.PORTA)


flag_rec  = False
flag_disp = True
inteval   = 30  # seconds
filename  = '/sd/' + time.strftime('%Y%m%d_%H%M%S',time.localtime())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值