FireBeetle 2 ESP32 C6:基于MQTT的通信测试
本帖最后由 sky007 于 2024-4-19 15:37 编辑FireBeetle 2 ESP32 C6:基于MQTT的通信测试
https://m.bilibili.com/video/BV1qD421J7Pe?vd_source=9cb0da819c8993674694efb0d9055c07
概述
感谢DF,有机会参与FireBeetle 2 ESP32 C6的试用活动。在本次的试用过程中,使用FireBeetle 2 ESP32 C6开发板来构建一个基于MQTT协议的通信系统。该项目由两部分组成:发送端和接收端,均采用自定义PCB设计,并配备了OLED屏幕和按钮。通过这个系统,当发送端按钮被按下时,接收端能够接收到消息并点亮屏幕,同时发送端也会显示消息已发送的字样。
材料清单
[*]FireBeetle 2 ESP32 C6开发板 x 2
[*]自定义PCB x 2
[*]OLED屏幕 x 2
[*]按钮 x2
[*]相关电子元件和连接器
硬件组装
PCB设计
首先,设计了一款PCB,针对FireBeetle 2 ESP32 C6开发板的接口,引出了所有引脚,并配备了3V的电源,由于板载5V没有引出,目前还得外接。另外把太阳能引脚也引了出来,太阳能板直接方便的提供给开发板,底下留了一排测试排母,同时用排针引出,采用直插的方式,便于测试。
焊接和组装
接着,将设计好的PCB打样,并完成了焊接工作。在焊接过程中,我确保了所有的电子元件正确无误地放置在PCB上,并进行了仔细的检查,以避免任何可能的短路。(手头没有摇杆,暂时没焊)
软件配置
MQTT设置
为了实现MQTT通信,参考01科技的demo程序进行改写,设置了SERVER、PORT、CLIENT_ID、TOPIC,确保两个开发板能够通过MQTT协议进行通信。
SERVER = 'mq.tongxinmao.com '# 服务器地址 PORT = 18830 #服务器端口 CLIENT_ID = '01Studio-ESP832-A' # 发送端ID TOPIC = '/public/01Studio/1' # TOPIC名称
SERVER = 'mq.tongxinmao.com '# 服务器地址 PORT = 18830 #服务器端口 CLIENT_ID = '01Studio-ESP832-B' # 接收端ID TOPIC = '/public/01Studio/1' # TOPIC名称
代码编写
在代码编写方面,发送端和接收端分别编写了micropython程序。发送端的程序负责检测按钮按下事件,并将消息通过MQTT发送到指定的主题。接收端的程序则订阅相同的主题,并在接收到消息时点亮或者熄灭OLED屏幕。以下为主要代码,源程序见附件。
#发送端while True: ifbutton_1.value()==1: time.sleep(0.1) ifbutton_1.value()==1: STATE=not STATE if STATE==True: print("a") fill_screen(0) oled.text('True is sent', 0, 30) oled.show() else: print("b") fill_screen(0) oled.text('False is sent' ,0, 30) oled.show() #print("按下BUTTON") MQTT_Send(str(STATE).encode('utf-8'))time.sleep(0.1)
#接收端def MQTT_Rev(TOPIC,msg): client.check_msg() #获得TOPIC和msg print(msg)
if msg==b'True': WIFI_LED.value(0) print("off") # 全屏白色 fill_screen(1)
elif msg==b'False': WIFI_LED.value(1) print("on") # 全屏黑色 fill_screen(0)
测试结果
通过一系列的测试,成功实现了一个基于MQTT协议的通信系统。发送端和接收端均能够稳定地进行消息的发送和接收。当发送端按钮被按下时,接收端能够及时接收到消息并点亮屏幕,发送端也会显示消息已发送的字样。
结论
通过本次试用,我体会到了FireBeetle 2 ESP32 C6开发板的强大功能和灵活性。它不仅支持多种无线通信协议,还具备超低功耗的特性,板载了太阳能接口,非常适合用于物联网项目。
附录
· 项目源代码:发送端.py、接收端.py
· PCB设计文件:Gerber_测试用板(DF-C6)_PCB_测试用板.zip
页:
[1]