FastBond3挑战部分-基于ESP32-C3的智能桌面环境监测仪
智能桌面环境监测仪是一种能够实时监测桌面环境的设备,通过采集温度、湿度、空气质量等数据,帮助用户了解并优化工作环境。基于ESP32-C3微控制器,该设备不仅能够实时采集和处理数据,还能通过Wi-Fi连接实现远程数据传输、接入智能家居系统。
标签
智能家居
环境监测
温湿度
乐鑫
HomeAssistant
ESPHome
ESP32-C3
空气质量
FastBond3
光照
鲜de芒果
更新2024-10-08
66

一、项目介绍

智能桌面环境监测仪是一种能够实时监测桌面环境的设备,通过采集温度、湿度、空气质量等数据,帮助用户了解并优化工作环境。基于ESP32-C3微控制器,该设备不仅能够实时采集和处理数据,还能通过Wi-Fi连接实现远程数据传输、接入智能家居系统。


1.1 硬件介绍

  • ESP32-C3-MINI-1U 是通用型 Wi-Fi 和低功耗蓝牙 (Bluetooth LE) 模组,体积小,具有丰富的外设接口,可用于智能家居、工业自动化、医疗保健、消费电子产品等领域。采用 U.FL 座子连接外部 IPEX 天线,配置了 4 MB SPI flash。ESP32-C3-MINI-1U 采用的是 ESP32-C3FN4 芯片。ESP32-C3FN4 芯片搭载 32-bit RISC-V 单核处理器,工作频率高达 160 MHz。
  • DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有枀高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。DHT11 为 4 针单排引脚封装,如下图,采用单线制串行接口,只需加适当的上拉电阻,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。
  • HPMA115S0-XXX 是一种高精度激光空气粉尘传感器,由霍尼韦尔(Honeywell)研发和生产。该传感器能够准确地测量和检测空气中的悬浮颗粒物,包括PM2.5和PM10。它广泛应用于空气净化器、环境监测仪、智能家居系统以及工业过程控制等领域。



1.2 功能概览

  • 实时监测:持续监测并显示桌面环境的温湿度、光照强度和空气质量等数据。
  • 远程访问:通过Wi-Fi接入智能家居平台,用户可以远程查看实时数据。
  • 数据记录:定期记录环境参数,便于用户进行长期数据分析。
  • 阈值报警:当环境参数超出预设范围时,发送通知提醒用户。


1.3 设计思路

设计智能桌面环境监测仪时,选择低功耗、高集成度的ESP32-C3微控制器,结合多种高精度传感器模块,实现数据的多样性和实时性。使用 TFT 显示屏满足用户的直观数据查看需求,并通过 Wi-Fi 接入智能家居平台实现远程监控和云存储。


模块化设计:将系统分为多个独立的模块,便于开发和维护。

用户友好性:通过简洁的用户界面和易于操作的功能,提高用户体验。 

安全性:确保设备在长时间运行中的稳定性和安全性。 

数据记录与分析:通过Wi-Fi接入智能家居平台,方便用户查看历史记录并进行数据分析。


二、功能实现

2.1 硬件设计

硬件设计框图如下所示,以 ESP32-C3 为主控芯片,搭配 温度、湿度、光照、空气粉尘以及基于 Qwiic 的扩展传感器模块作为环境数据采集,外加锂电池充放电管理电路组成。通过 ESP32-C3 的 WiFi 功能连接至智能家居平台。以实现桌面环境监测与智能家居平台联动效果。同时,还预留有一路 4 PIN的 I2C 显示接口电路,可用于扩展显示模块,以实时显示各传感器数据。


2.2 软件功能实现

软件方面参考了很多成熟方案,综合评比各方面功能最终决定采用 ESPHome + Home Assistant 完成固件开发与远程控制。

Home Assistant 是一款在 Python 3 上运行的家庭自动化平台。能够跟踪和控制家庭中的所有设备,并提供自动化控制平台。有一个简单的、适合移动设备的界面来控制你的所有设备,且不会将任何数据存储在云端,以保护个人隐私。

ESPHome 是一个通过简单而强大的配置文件控制您的 ESP8266/ESP32 的系统,并通过家庭自动化系统远程控制它们。


2.3 关键代码及说明

本制作由于使用的 ESPHome 作为固件的开发,因此都是通过配置文件的形式对固件进行配置相应的功能。以下是关键部分说明:


2.3.1 网络配置

网络配置时如果默认的DNS连不上,需要设置静态IP。否则在 HomeAssistant 中该设置一直是离线状态。

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

manual_ip:
static_ip: 192.168.2.150
gateway: 192.168.2.1
subnet: 255.255.255.0


2.3.2 基本开关

基本开关一般用于控制只有打开、关闭 两种状态的设备,例如:电灯开关、设备开关等。本制作中用于控制设备的重启。

# 开关
switch:
# Restart
- platform: restart
name: "重启 restart"


2.3.3 灯光控制

灯光功能主要作为一种警示手段来使用,当周围环境空气粉尘超过一定阈值时,以不同颜色的灯光提醒用户周围环境的变化。就像天气预报中空气质量优时,以绿色表示。空气质量等级良好时,以黄色表示。空气质量等级一般时,以红色表示。

# 氛围灯
light:
- platform: esp32_rmt_led_strip
name: "WS2812"
rgb_order: GRB
pin: GPIO8
num_leds: 1
rmt_channel: 0
chipset: ws2812


2.3.4 温湿度数据采集

本装置兼容在硬件设计上兼容 DHT11  AHT 系列传感器的温湿度数据采集,以下代码是以 DHT11 作为温湿度传感器采集温湿度数据。便宜好用,当然单总线结构的传感器还有 DS18B20 也是支持的,使用时需要注意引脚定义,别插错导致器件烧毁。

# 传感器
sensor:
# DHT11 温湿度传感器
- platform: dht
pin: GPIO2
temperature:
name: "桌面温度 Temperature"
humidity:
name: "桌面温度 Humidity"
update_interval: 5s


2.3.5 PM2.5 与 PM10 数据采集

空气粉尘传感器使用的是一颗 HPMA115S0-XXX 激光空气粉尘传感器。ESPHome 官方没有该传感器的支持包,需要自行实现其传感器数据读取。本例中使用 ESPHome 的扩展组件的形式加载并实现数据读取。这里值得注意的是硬件上使用的是 UART0 接口,这与 ESPHome  logger 组件使用的接口一致,会导致冲突。需要禁用 ESPHome logger 组件的日志输出。

# 传感器
sensor:
- platform: hpma115s0_esphome
pm_2_5:
name: "Particulate Matter 2.5"
pm_10_0:
name: "Particulate Matter 10.0"
# These aqi lines are optional
aqi_2_5:
name: "Air Quality Index Particulate Matter 2.5"
aqi_10_0:
name: "Air Quality Index Particulate Matter 10.0"
update_interval: 5s


2.3.6 电池电压采集

电池电压采集,使用的是 ESP32-C3  GPIO3 管脚,通过 1/2 电阻分压网络连接到 GPIO3 管脚。因此在 ADC 组件读取到的电压值的基础上乘以 2 才是真实的电池电压值。

# 传感器
sensor:
# 电池电压(模数传感器)
- platform: adc
pin: GPIO3
name: "电池电压 battery voltage"
attenuation: auto
update_interval: 5s
filters:
- multiply: 2


三、功能展示

在实际测试中,基于ESP32-C3的智能桌面环境监测仪能够准确地进行实时监测、远程访问和数据记录。用户可以通过手机应用程序方便地查看实时数据和历史记录,并在环境参数超出预设范围时收到通知提醒。同时,设备还能够通过Wi-Fi将数据上传至云端,方便用户进行长期数据分析。


硬件展示:展示组装好的硬件设备,包括各个传感器、显示屏和ESP32-C3。


实时监测与显示: 在智能家居平台上上可以实时查看PM2.5、温度、湿度和光照强度等监测数据。 数据每5秒刷新一次,保持显示的实时性。通过配套的移动应用,也可以随时查看设备的历史数据和实时监测数据。 应用界面友好,图表展示数据的变化趋势。


报警功能: 当监测数据超过预设阈值时,设备会通过LED灯效提示用户。

 


四、总结

基于ESP32-C3的智能桌面环境监测仪设计实现了多种环境参数的实时监测,并接入智能家居平台,提供了便捷的环境数据查看和管理途径。其低功耗设计和高性能传感器为用户提供了准确且高效的环境监测方案。同时,设备集成的警报功能有效提升了用户对环境异常变化的敏感度,有助于优化和改善工作环境。


遇到的问题

  1. 外壳在设计过程中存在误差,导致安装 DHT11 的一边存在约 1mm 左右的干涉,导致这一侧的外壳上盖无法完全闭合。外壳的设计其实很重要,尤其是体现在光照传感器上,即不能被内部的警示灯干扰,也不能阻挡外部的光线采集。因此需要在外壳上进行开窗,将光线传感器置于开窗位置。由于本人压根不会 3D 建模,因此这些想法暂时未能实现,仓促学习而制作的外壳也多多少少存在一些问题。
  2. 由于使用了 HPMA115S0 粉尘传感器,该粉尘传感器使用的是 UART 通信,使用的硬件端口是 UART0 且波特率为 9600, 而 ESPHome  logger 组件使用的也是 UART0 接口,波特率为 115200。因此存在冲突而导致无法和 HPMA115S0 通信。需要在 yaml 中关闭 logger 组件,设置其 baud_rate: 0 即可。


心得体会

经过一段时间使用 ESPHome 之后,越发觉得它的方便,使得像我这样的开发人员很方便地集成各种组件,来实现自己的想法。

最后,感谢硬禾学堂联合 DigiKey 推出的这次活动,使我的设计能力进一步提升!


五、参考资料

物料清单
KiCad文件
使用说明
全屏
附件下载
桌面环境监测仪.yaml
ESPHome 工程配置文件(项目源码)
桌面环境监测仪.zip
KiCAD 工程压缩包
团队介绍
业余电子爱好者
团队成员
鲜de芒果
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号