【Beetle ESP32-C6开发板】扩展板设计
本文介绍了 DFRobot Beetle ESP32-C6 开发板的扩展板设计,包括外观、参数特点、原理图、实物PCB,结合 DHT11 和 OLED 模块实现物联网温湿度计的项目设计。
项目介绍
扩展板:PCB、外观、原理图;
工程测试:硬件连接、流程图、工程代码;
效果演示:物联网 IoT 平台配置、MQTT 上传、OLED 显示实时显示。
扩展板
为了方便外设和传感器模块的连接和测试,设计 ESP32-C6 扩展板。
外观
Top view

Bottom view

3D 外壳

详见: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 设计提供了极大便利。
原理图

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

工程测试
这里制作一款 DHT11 物联网温湿度计项目设计。
物联网 IoT 平台使用 KZone喵星球 ;
硬件连接
DHT11 传感器模块与 ESP32-C6 接线
| DHT11 | ESP32-C6 | Note |
|---|---|---|
| Data | GPIO4 | Data |
| GND | GND | Ground |
| VCC | 3V3 | Power |
OLED 屏幕与 ESP32-C6 接线
| OLED | ESP32-C6 | Note |
|---|---|---|
| SCL | GPIO22 | Serial Clock Line |
| SDA | GPIO23 | Serial Data Line |
| GND | GND | Ground |
| VCC | 3V3 | Power |
实物图

流程图

工程代码
运行 Thonny IDE 新建文件,添加如下代码
代码见附件。
保存代码。
效果演示
运行程序,接入 WiFi,连接物联网平台 MQTT 服务器;
连续上传 DHT11 温湿度数据;

打开物联网 IoT 服务器平台 https://kzone2.kittenbot.cn/iot-studio
进入 话题中心 模块,新建话题;

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

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

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

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

温湿度数据实时更新;

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

总结
本文介绍了 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()

返回首页
回到顶部


评论