793| 0
|
[ESP8266/ESP32] FireBeetle 2 ESP32 C6:基于MQTT的通信测试 |
本帖最后由 sky007 于 2024-4-19 15:37 编辑 FireBeetle 2 ESP32 C6:基于MQTT的通信测试 概述 感谢DF,有机会参与FireBeetle 2 ESP32 C6的试用活动。 在本次的试用过程中,使用FireBeetle 2 ESP32 C6开发板来构建一个基于MQTT协议的通信系统。该项目由两部分组成:发送端和接收端,均采用自定义PCB设计,并配备了OLED屏幕和按钮。通过这个系统,当发送端按钮被按下时,接收端能够接收到消息并点亮屏幕,同时发送端也会显示消息已发送的字样。
硬件组装 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: if button_1.value()==1: time.sleep(0.1) if button_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.63 KB, 下载次数: 1629
发送端
1.59 KB, 下载次数: 1647
接收端
Gerber_测试用板(DF-C6)_PCB_测试用板.zip
201.52 KB, 下载次数: 1660
PCB
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed