回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页
best-icon

【Beetle ESP32-C6开发板】扩展板设计 简单

头像 无垠的广袤 2026.06.03 38 0

【Beetle ESP32-C6开发板】扩展板设计

本文介绍了 DFRobot Beetle ESP32-C6 开发板的扩展板设计,包括外观、参数特点、原理图、实物PCB,结合 DHT11 和 OLED 模块实现物联网温湿度计的项目设计。

项目介绍

扩展板:PCB、外观、原理图;

工程测试:硬件连接、流程图、工程代码;

效果演示:物联网 IoT 平台配置、MQTT 上传、OLED 显示实时显示。

扩展板

为了方便外设和传感器模块的连接和测试,设计 ESP32-C6 扩展板。

外观

Top view

expansion_top.jpg

Bottom view

expansion_bottom.jpg

3D 外壳

expansion_shell.jpg

详见:Beetle-RP2350 扩展板 .

参数特点

所有 IO 接口引出;

多排电源 ;

4 线 OLED 和 7 线 TFT 接口 ;

UART、ADC、IIC、SPI 接口 ;

DHT11 传感器接口 ;

支持 直插贴片 两种安装方式 ;

支持 Battery 接口,便于外接锂电池使用;

OLED、TFT、DHT11 的 VCC 供电处增加 100nF 滤波电容,提升抗干扰能力;

支持 3D 外壳;

支持 DFRobot 官方 Logo 清晰焊盘;

大供电过孔,内径20mil,外径40mil,确保供电线宽,减少发热,保障电路安全;

……

Beetle ESP32-C6 开发板的快速开发和 DIY 设计提供了极大便利。

原理图

SCH_expansion.jpg

PCB

实物 PCB 展示如下,使用沉金工艺,板厚 1.6 mm;

expansion_pcb.jpg

工程测试

这里制作一款 DHT11 物联网温湿度计项目设计。

物联网 IoT 平台使用 KZone喵星球

硬件连接

DHT11 传感器模块与 ESP32-C6 接线

DHT11ESP32-C6Note
DataGPIO4Data
GNDGNDGround
VCC3V3Power

OLED 屏幕与 ESP32-C6 接线

OLEDESP32-C6Note
SCLGPIO22Serial Clock Line
SDAGPIO23Serial Data Line
GNDGNDGround
VCC3V3Power

实物图

iot_dht11_connect.jpg

 

流程图

 

flowchart_iot_dht11.jpg

 

工程代码

运行 Thonny IDE 新建文件,添加如下代码

 

代码见附件。
 ​

保存代码。

效果演示

运行程序,接入 WiFi,连接物联网平台 MQTT 服务器;

连续上传 DHT11 温湿度数据;

iot_dht11_print.jpg

打开物联网 IoT 服务器平台 https://kzone2.kittenbot.cn/iot-studio

进入 话题中心 模块,新建话题;

iot_studio.jpg

编辑话题,包括 ID、Topic、描述备注等;

iot_new_topic.jpg

进入 可视化面板 标签页,点击右上角 新建项目 按钮;

iot_view_pannel.jpg

创建空白面板,在组件库中找到图表下的仪表盘图标,拖拽至主面板,并配置参数,点击 运行 按钮;

iot_view_pannel.jpg

接收到 ESP32-C6 上传的温湿度数据,面板实时更新;

dht11_iot_pannel.jpg

温湿度数据实时更新;

iot_panel.jpg

点击右上角的显示器按钮,打开 话题监视器 ,即可获取文本消息内容;

dht11_iot_message.jpg

总结

本文介绍了 DFRobot Beetle ESP32-C6 开发板的扩展板设计,包括外观、参数特点、原理图、实物PCB,结合 DHT11 和 OLED 模块实现物联网温湿度计的项目设计,为相关产品在物联网 IoT 等领域的快速开发和应用设计提供了参考。

代码
import machine
import dht
import time
import network
from umqtt.simple import MQTTClient
from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
# ========== 配置信息 ===========
# WiFi 信息
WIFI_SSID = "xxx"
WIFI_PASSWORD = "xxx"

# 小猫物联网平台 MQTT 配置
MQTT_CLIENT_ID = "dht11"  # 自定义ID
MQTT_BROKER = "iot.kittenbot.cn"
MQTT_PORT = 1883
# 发布主题
TOPIC_TEMP = "xxx/dht11/temperature"
TOPIC_HUMI = "xxx/dht11/humidity"

# ==== Initialized IIC OLED ====
i2c=I2C(0,sda=Pin(23), scl=Pin(22), freq=400000)
oled_width = 128
oled_height = 64
oled = SSD1306_I2C(oled_width, oled_height, i2c)

def display_TH(temp,humi):
    oled.fill(0)
    oled.text("Temperature:", 0, 0)
    oled.text("{:.1f} C".format(temp), 20, 15)
    oled.text("Humidity:", 0, 35)
    oled.text("{:.1f} %".format(humi), 20, 50)
    oled.rotate(0)
    oled.show()
    
# DHT11 引脚
d = dht.DHT11(machine.Pin(4))

# WiFi 连接函数
def connect_wifi():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print("正在连接WiFi...")
        wlan.connect(WIFI_SSID, WIFI_PASSWORD)
        while not wlan.isconnected():
            time.sleep(0.5)
    print("WiFi连接成功!IP:", wlan.ifconfig()[0])

# MQTT 连接函数
def connect_mqtt():
    client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, port=MQTT_PORT)
    try:
        client.connect()
        print("MQTT连接小猫物联网平台成功!")
        return client
    except Exception as e:
        print("MQTT连接失败:", e)
        return None

# 主程序
def main():
    # 连接WiFi
    connect_wifi()
    # 连接MQTT
    client = connect_mqtt()
    if not client:
        print("MQTT连接失败,程序退出")
        return
    
    print("开始上传温湿度数据...")
    while True:
        try:
            # 读取DHT11数据
            d.measure()
            t = d.temperature()
            h = d.humidity()
            
            # 串口打印
            print('Temperature: {}°C'.format(t))
            print('Humidity: {}%'.format(h))
            # OLED 显示
            display_TH(t,h)
            
            # 发布到MQTT
            client.publish(TOPIC_TEMP, str(t))
            client.publish(TOPIC_HUMI, str(h))
            print("数据上传成功")
            
        except OSError as e:
            print("读取传感器失败,正在重试...")
            # 出错后重新连接MQTT
            client = connect_mqtt()
        
        # 2秒上传一次
        time.sleep(2)

# 运行主程序
if __name__ == "__main__":
    main()

评论

user-avatar