基于ESP32与多传感器融合的立创空气质量检测净化器DIY全攻略
基于ESP32与多传感器融合的立创空气质量检测净化器DIY全攻略最近想给工作室弄个能实时监测空气质量的设备市面上成品要么功能单一要么价格不菲。正好看到立创开源平台上有位大佬分享了一个完整的空气质量检测净化器项目功能非常全面从PM2.5到甲醛、CO2都能测还能自动控制风扇净化空气。我跟着做了一遍效果很棒今天就把这个从硬件焊接、软件烧录到最终组装的完整过程手把手分享给大家。这个项目核心是ESP32它负责读取一堆传感器数据显示在0.96寸的小屏幕上还能通过Wi-Fi让你在手机网页上远程查看。当空气质量变差时它能自动调节风扇转速来净化空气。无论你是想学习ESP32开发、传感器应用还是单纯想拥有一个高性价比的空气管家这个教程都适合你。咱们废话不多说直接开始。1. 项目功能与硬件清单在动手之前先搞清楚这个“空气管家”能干什么以及我们需要准备哪些“食材”。1.1 它能做什么这个设备集成了市面上主流的空气检测传感器功能相当强大全面检测可以同时测量PM2.5、PM10粉尘、TVOC总挥发性有机物、甲醛HCHO、二氧化碳CO2、温度、湿度和气压共8项环境参数。双屏显示本地屏幕所有数据实时显示在0.96寸的TFT彩屏上并且会用绿、黄、橙、红四种颜色直观地告诉你当前空气质量的舒适程度。远程网页ESP32会建立一个Wi-Fi热点或者连接到你家路由器。用手机或电脑打开指定网页就能远程查看所有数据非常方便。智能净化设备会根据检测到的空气质量比如PM2.5浓度自动控制风扇的转速。空气越差风扇转得越快加速空气循环净化。1.2 核心硬件“全家福”整个项目硬件分为主控板、传感器板和显示板三大部分。你需要准备或购买以下核心部件部件类别具体型号/说明关键作用主控芯片ESP32系列如ESP32-WROOM-32项目的大脑负责处理所有传感器数据、运行逻辑、驱动屏幕和创建Web服务。颗粒物传感器PMS7003或PMS7003T激光原理精准测量PM2.5和PM10浓度。PMS7003T版本还能额外提供温湿度数据。气体传感器SGP40测量TVOC指数反映有机挥发性气体的总体水平。温湿压传感器BME280测量温度、湿度和大气压力。精度高使用I2C接口。二氧化碳传感器C8D双通道红外非扩散式红外原理测量CO2浓度比热导式更准确。甲醛传感器电化学甲醛模组专门用于测量甲醛浓度注意选择量程合适的型号。显示屏幕0.96寸TFT彩屏 (ST7735驱动)本地信息显示界面。执行机构4线PWM风扇 或 2线DC风扇用于净化空气。项目电路同时支持两种风扇。电源12V-24V DC电源适配器 或 Micro USB线给整个系统供电。注意原文作者提到ESP32运行Wi-Fi和SGP40传感器自身发热可能会影响旁边的温湿度传感器如SHT20读数。因此他建议如果不焊接独立的SHT20可以直接使用PMS7003T来获取温湿度数据这样更准确。BME280则不受影响因为它主要用来测气压。2. 硬件电路设计与解析拿到PCB板后先别急着焊咱们花几分钟看懂原理图这样调试时心里才有底。整个硬件系统可以分为几个功能模块。2.1 电源管理稳定供电是第一步设备支持两种供电方式非常灵活DC电源接口DC005输入12V-24V宽电压。电源进来后首先经过TVS管和自恢复保险丝进行保护防止浪涌和过流。然后通过一颗TPS54302 DC-DC降压芯片将电压稳定地降到5V和3.3V给各个模块使用。Micro USB接口直接插手机充电器或电脑USB口供电。这里设计也很讲究CC引脚接了5.1k下拉电阻以正确识别并且同样有TVS管阵列和自恢复保险丝保护。重要提示如果你使用DC电源供电在购买滤波电容时务必注意电容的耐压值要高于你的输入电压比如用24V输入电容耐压最好选择35V或以上。2.2 风扇控制电路兼容两种风扇的秘诀这是硬件设计的一个亮点用一个电路同时兼容了常见的4线PWM风扇和2线DC风扇。控制逻辑是这样的引脚1FAN_EN通过一个光耦隔离电路控制一个NMOS管的通断。这个NMOS管直接串联在风扇的电源回路中。对于2线DC风扇我们只需要用这个引脚输出高/低电平就能像开关一样控制风扇转或停或者通过PWM实现调速。引脚2FAN_PWM当NMOS管导通风扇通电后这个引脚输出PWM信号直接连接到4线PWM风扇的PWM控制线实现无级调速。引脚3FAN_TACH这是风扇转速反馈引脚内部通过上拉电阻接到MCU。风扇每旋转一圈会通过这根线输出2个方波MCU通过计算方波频率就能知道实际转速。引脚45V_ARGB这是一个额外的5V RGB灯带供电接口如果你想让设备有点灯光效果可以接在这里。功率提醒电路板上的MOS管最大能承受10A电流但DC005电源接口的额定电流是3A。所以建议使用电流小于3A的风扇以保证安全。2.3 传感器与按键接口传感器大多通过I2C或UART接口与ESP32连接。这里有个细节需要注意ESP32的GPIO34-39这几个引脚是纯输入引脚内部没有上拉电阻。所以当它们用作按键输入时比如本项目的按键必须在外部电路添加上拉电阻否则无法正确读取高低电平。原理图中还为按键设计了RC滤波电路来防抖并且并联了TVS管防止冬天干燥环境产生的静电击穿芯片。3. 软件烧录与代码部署硬件准备就绪后我们来让设备“活”起来。这个项目使用MicroPython开发对初学者非常友好。3.1 第一步烧录MicroPython固件下载固件前往MicroPython官网找到ESP32板块下载版本号为1.22的固件.bin文件。连接电脑通过Micro USB线将你的ESP32主控板连接到电脑。使用烧录工具推荐使用Thonny IDE或esptool.py。Thonny安装后在“运行” - “选择解释器”中选择ESP32和对应的串口然后点击“安装或更新MicroPython固件”选择你下载的.bin文件即可。esptool命令行首先擦除芯片然后写入固件。# 请将 COM3 替换为你电脑上实际的串口号1.22.bin 替换为你的固件文件名 esptool.py --chip esp32 --port COM3 erase_flash esptool.py --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 esp32-1.22.bin3.2 第二步上传项目代码固件烧录成功后ESP32就变成了一个MicroPython解释器。接下来需要把项目的代码文件传上去。获取项目代码从立创开源平台的原项目页面下载完整的代码包。使用上传工具作者推荐使用MicroPython File Uploader这类工具可以方便地将本地文件上传到ESP32的文件系统中。你也可以用Thonny IDE的文件管理功能。上传关键文件你需要上传以下文件到ESP32的根目录boot.py- 上电自动运行用于初始化。test2.py或t_t.py-主程序二选一。test2.py适用于使用独立温湿度传感器如SHT20的方案t_t.py适用于使用PMS7003T来获取温湿度的方案推荐。hardware.py- 所有传感器、屏幕、风扇的硬件驱动封装。html_page.py- 内置Web服务器要显示的网页内容。sysfont.py- 屏幕显示用的字体文件。st7735.py- 0.96寸TFT屏幕的驱动程序。voc_index.py- SGP40传感器的TVOC指数计算算法。wifi.txt- 一个文本文件里面按行存放你的Wi-Fi名称和密码格式如MyWiFi,MyPassword。如果不配置ESP32会启动AP热点模式。3.3 第三步可选编译字节码加速运行MicroPython是解释型语言直接运行.py源文件速度稍慢。我们可以将其编译成.mpy字节码文件能提升执行效率。安装与固件版本对应的编译工具。固件是v1.22就安装mpy-cross-v6.2。pip install mpy-cross-v6.2打开命令行进入代码所在目录对主要的.py文件进行编译。cd C:\你的路径\空气净化器\code mpy-cross-v6.2 -marchxtensawin -O3 -o hardware.mpy hardware.py mpy-cross-v6.2 -marchxtensawin -O3 -o test2.mpy test2.py # ... 以此类推编译其他文件将生成的.mpy文件如hardware.mpy上传到ESP32替换掉原来的.py文件。ESP32会优先执行.mpy文件。4. 组装、调试与使用心得4.1 组装流程与“避坑”指南按照下面的步骤组装可以避免很多麻烦焊接与检查仔细焊接所有芯片和接口尤其是贴片传感器焊接要快防止烙铁高温烫坏敏感元件。焊完后用万用表检查有无短路、虚焊。连接排线重中之重FPC排线座有“上接”和“下接”之分排线也有方向。原作者采用的是显示板的排线座用“上接”主控板对应接口用“下接”传感器板用“下接”主控板对应接口用“上接”。排线长度分别为6cm和10cm方向要一致。接好后务必再三确认接反很可能烧毁屏幕或传感器固定屏幕将0.96寸屏幕对准PCB板上的丝印框用1-2mm厚的双面胶粘贴固定这样既牢固又美观。机械组装先用4颗M3x6mm的圆头螺丝将显示板固定在前面板上。将所有板卡主控板、传感器板按照设计位置放入外壳内。盖上后盖用8颗M3x12mm的沉头螺丝拧紧。4.2 上电调试与使用首次上电连接电源USB或DC观察屏幕是否点亮并开始显示数据。风扇可能会根据初始空气质量短暂启动。连接Wi-Fi如果配置了wifi.txt设备会自动连接网络。打开手机Wi-Fi设置找到一个类似ESP32-XXXXXX的热点连接后在浏览器输入192.168.4.1即可访问本地网页。如果连接了家庭路由器你需要从路由器管理界面查看ESP32获取到的IP地址然后在浏览器访问该IP。观察数据屏幕上各项数据会根据阈值显示不同颜色。TVOC数据需要一点时间约20秒进行算法校准之后才会稳定输出。测试净化功能你可以在传感器附近点燃一根香或产生一些粉尘观察PM2.5数值上升后风扇转速是否会自动加快。这个项目最让我满意的地方是它的完整性和实用性。从精准的多传感器融合检测到灵活的硬件电路设计兼容两种风扇再到友好的本地远程双显示几乎考虑到了一个空气质量设备的所有需求。自己动手做下来不仅收获了一个好用的工具更对ESP32的外设控制、MicroPython开发、传感器应用有了更深的理解。希望这份详细的攻略能帮你顺利打造出自己的“空气卫士”。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2409463.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!