这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【ESP32-S31_Function_coreboard-1开发板】物联网温湿

共1条 1/1 1 跳转至

【ESP32-S31_Function_coreboard-1开发板】物联网温湿度计

工程师
2026-08-27 19:29:10     打赏

【ESP32-S31 Function coreboard-1开发板】物联网温湿度计

本文介绍了 ESP32-S31 Function coreboard-1 开发板结合 DHT11 和 OLED 模块以及 WiFi 功能,实现物联网温湿度计的项目设计。

项目介绍

制作一款 DHT11 物联网温湿度计。

  • 准备工作:硬件连接、环境搭建;

  • 工程测试:传感器驱动、OLED驱动、流程图、工程代码;

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

cover_iot_dht.jpg

硬件连接

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


DHT11ESP32-S31Note
DataGPIO1Data
GNDGNDGround
VCC3V3Power


OLED 屏幕与 ESP32-S31 接线


OLEDESP32-S31Note
SCLGPIO47Serial Clock Line
SDAGPIO48Serial Data Line
GNDGNDGround
VCC3V3Power

实物图

connect_dht_oled.jpg

环境搭建

  • 烧录 MicroPython 固件至开发板;

  • 下载并安装 Thonny IDE 软件;

详见:【ESP32-S31_Function_coreboard-1开发板】介绍、环境搭建、工程测试 .

流程图

flowchart_iot_dht11.jpg

工程代码

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

 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(48), scl=Pin(47), 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(1))
 
 # 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():
     connect_wifi() # 连接WiFi
     client = connect_mqtt() # 连接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()
         
         # 延时
         time.sleep(2)
 
 # 运行主程序
 if __name__ == "__main__":
     main()

保存代码。

效果演示

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

  • 连续上传 DHT11 温湿度数据;

dht_iot_print.jpg

  • OLED 显示实时温湿度数据;

connect_dht_oled.jpg

  • 使用 MQTTX 测试云端接收消息;

dht_iot_mqttx.jpg

物联网

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

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

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

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

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

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

dht11_iot_pannel.jpg

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

dht11_iot_mesage.jpg

总结

本文介绍了 ESP32-S31 Function coreboard-1 开发板结合 DHT11 和 OLED 模块以及 WiFi 功能,实现物联网温湿度计的项目设计,为相关产品在物联网 IoT 等领域的快速开发和应用设计提供了参考。





关键词: ESP32     开发板     物联网     DHT11     传感器     W    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]