sky007 发表于 2024-4-19 15:37:24

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]
查看完整版本: FireBeetle 2 ESP32 C6:基于MQTT的通信测试