793浏览
查看: 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屏幕和按钮。通过这个系统,当发送端按钮被按下时,接收端能够接收到消息并点亮屏幕,同时发送端也会显示消息已发送的字样。

材料清单

  • FireBeetle 2 ESP32 C6开发板 x 2
  • 自定义PCB x 2
  • OLED屏幕 x 2
  • 按钮 x2
  • 相关电子元件和连接器

硬件组装

PCB设计

首先,设计了一PCB,针对FireBeetle 2 ESP32 C6开发板的接口引出了所有引脚,并配备了3V的电源,由于板载5V没有引出,目前还得外接。另外把太阳能引脚也引了出来,太阳能板直接方便的提供给开发板,底下留了一排测试排母,同时用排针引出,采用直插的方式,便于测试。

FireBeetle 2 ESP32 C6:基于MQTT的通信测试图2



焊接和组装

接着,将设计好的PCB打样,并完成了焊接工作。在焊接过程中,我确保了所有的电子元件正确无误地放置在PCB上,并进行了仔细的检查,以避免任何可能的短路。(手头没有摇杆,暂时没焊)
FireBeetle 2 ESP32 C6:基于MQTT的通信测试图1

软件配置


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






发送端.zip

1.63 KB, 下载次数: 1629

发送端

接收端.zip

1.59 KB, 下载次数: 1647

接收端

Gerber_测试用板(DF-C6)_PCB_测试用板.zip

201.52 KB, 下载次数: 1660

PCB

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail