从零打造智能空气检测仪:嘉立创EDA实战全记录
你有没有想过,只用一个下午的时间,就能把脑子里的硬件创意变成一块真正能用的PCB板?
不是画个草图,而是——原理图画完、布局布好、一键下单打样,三天后实物到手焊接测试。
这听起来像“极客神话”,但今天我要告诉你:它已经是现实。而且,你不需要花几万块买Altium Designer,也不需要团队支持。只需要一台电脑、一个浏览器,加上这篇实战笔记。
我们来一起做一个智能空气检测仪——能测PM2.5(模拟)、CO₂浓度、温湿度,通过Wi-Fi上传数据,还能低功耗运行。整套设计基于国产免费工具嘉立创EDA完成,全过程可复制、可量产,适合学生、创客和初级工程师练手。
为什么选这个项目?
因为它是典型的“混合信号系统”:有模拟传感器、数字通信、无线模块、电源管理……几乎涵盖了嵌入式硬件开发的所有关键点。
更重要的是,这类设备在家庭健康监测、教室环境评估、办公室通风优化中都有实际用途。做好了不只是玩具,而是可以真正落地的小产品。
而我们要用的平台——嘉立创EDA,正是让这种“小批量创新”变得可行的关键推手。
核心器件怎么选?先搞清楚每个模块要干什么
做PCB之前,必须先把系统拆解清楚。我们的目标是做一个小巧、稳定、能联网的空气质量终端。那核心组件就绕不开这几个:
主控MCU:STM32F103C8T6 —— 性价比之王
说到32位单片机,STM32几乎是绕不开的名字。而在这其中,STM32F103C8T6是最经典的入门款之一。
- ARM Cortex-M3 内核,主频72MHz
- 64KB Flash + 20KB RAM
- 支持ADC、I²C、SPI、USART等多种外设
- LQFP48封装,引脚够用又不至于太难焊
最关键的是:它便宜!批量采购不到10块钱一片,开发资料满天飞,Keil、CubeMX、甚至Arduino都支持。
在本项目中,它负责:
- 轮询各个传感器
- 处理原始数据(比如温湿度补偿)
- 控制Wi-Fi模块发送数据
- 管理低功耗模式(定时唤醒采样)
别看它小,跑个轻量级RTOS都没问题。
实战代码片段:读取MQ-135空气质量传感器
// 使用HAL库配置ADC采集MQ-135输出电压 ADC_ChannelConfTypeDef sConfig = {0}; sConfig.Channel = ADC_CHANNEL_0; // 假设接在PA0 sConfig.Rank = ADC_REGULAR_RANK_1; sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5; if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) { Error_Handler(); } HAL_ADC_Start(&hadc1); if (HAL_ADC_PollForConversion(&hadc1, 100) == HAL_OK) { uint16_t adc_value = HAL_ADC_GetValue(&hadc1); float voltage = (adc_value * 3.3f) / 4095.0f; // 换算成实际电压 float ppm = calculate_ppm_from_voltage(voltage); // 自定义算法转换为污染浓度 }⚠️ 注意:MQ-135是非特异性传感器,对多种气体都有响应。所以单独使用时只能作为“空气质量趋势参考”。如果想提高准确性,一定要配合SHT30做温湿度补偿。
气体感知三剑客:MQ-135 + SHT30 + MH-Z19B
我们不是要造科研仪器,但也不能完全靠“感觉”。所以选了三个互补性强的传感器组合:
| 传感器 | 类型 | 接口 | 特点 |
|---|---|---|---|
| MQ-135 | 广谱气体 | 模拟输出(0~5V) | 成本低,反应快,需预热 |
| SHT30 | 数字温湿度 | I²C | 高精度,抗干扰强 |
| MH-Z19B | CO₂专用 | UART/PWM | NDIR红外原理,稳定性好 |
MQ-135:老当益壮的“烟雾警报员”
虽然新出的激光颗粒物传感器更准,但MQ系列凭借超低成本依然活跃在各种DIY项目里。
它的原理很简单:加热敏感材料,气体接触后电阻变化 → 分压电路输出电压变化。
但有几个坑你得知道:
-必须预热24小时以上才能稳定(手册写得很清楚)
- 输出受温湿度影响极大,不补偿的话冬天夏天读数差一半
- 对酒精、丙酮也敏感,厨房附近容易误报
建议做法:把它当作“空气质量趋势指示器”,而不是精确测量工具。
SHT30:数字时代的温湿度标杆
相比老旧的DHT11/DHT22,SHT30简直是降维打击。
- 精度±2% RH / ±0.2°C
- I²C接口直接输出校准后的数字值
- 支持两种地址(0x44 和 0x45),方便多传感器并联
在PCB布线上要注意:
- 尽量远离发热源(如LDO、Wi-Fi模块)
- I²C上拉电阻推荐4.7kΩ
- 可以加TVS二极管防静电损伤
MH-Z19B:真正的CO₂杀手锏
很多人不知道,室内空气是否新鲜,最关键的指标其实是CO₂浓度。超过1000ppm就会让人注意力下降、犯困。
MH-Z19B采用非分散红外(NDIR)技术,不受其他气体干扰,寿命长达5年。
接线方式有两种:
-UART TTL:发送标准协议帧(可读写参数)
-PWM输出:占空比对应CO₂浓度
推荐用UART模式,你可以主动查询数据、设置自动基线校准(ABC功能),更适合长期部署。
供电怎么处理?稳压电路不能将就
整个系统的逻辑电平是3.3V,但常见输入电源是USB 5V或锂电池。所以我们需要一块低压差线性稳压器(LDO)来降压。
这里选择了经典型号:AMS1117-3.3
为什么不用DC-DC?
因为我们要给传感器供电!
开关电源效率高,但会引入高频噪声。而像MQ-135这样的模拟传感器,对电源纹波极其敏感,稍有不慎就会导致采样漂移。
AMS1117虽然效率低一点(压差大时发热明显),但它输出干净、静态电流小、外围简单,特别适合这种小功率、高稳定性需求的场景。
设计要点总结:
| 项目 | 要求 |
|---|---|
| 输入电容 | 10μF陶瓷电容,靠近VIN引脚 |
| 输出电容 | 必须接≥10μF钽电容或固态电容,否则可能振荡 |
| 散热设计 | 在底部铺大面积铜皮,提升散热能力 |
| 滤波加强 | 后级再加一个π型滤波(LC)供敏感模拟电路 |
✅ 小技巧:在嘉立创EDA中,可以直接搜索“AMS1117-3.3”调用官方推荐封装,包含散热焊盘,避免自己画错。
嘉立创EDA:让每个人都能成为硬件工程师
如果说过去做一块专业PCB需要掌握Altium、精通制程工艺、熟悉元器件供应链……那现在,这些门槛正在被嘉立创EDA一个个打破。
它到底强在哪?
| 优势 | 说明 |
|---|---|
| 🌐 免费云端运行 | 不用装软件,Chrome打开即用 |
| 🔧 超丰富元件库 | 超10万种常用器件,带真实封装与3D模型 |
| 🛠️ 一键下单生产 | PCB+元器件+SMT贴片一站式搞定 |
| 📦 BOM直连采购 | 所见即所得,避免买到假货或缺货型号 |
| 👥 协作与版本控制 | 支持多人编辑、历史回溯 |
| 🧪 DRC自动检查 | 自动发现短路、断路、间距不足等问题 |
最震撼的是什么?
你画完PCB,点击“立即下单”,第二天就能看到工厂开始生产你的板子。
我是怎么一步步完成这块板的?
第一步:搭原理图
- 新建项目 → 添加原理图
- 在左侧库中搜索:
-STM32F103C8→ 选LQFP48封装
-SHT30
-MQ-135 Module(自定义符号)
-MH-Z19B
-ESP-01S(Wi-Fi模块)
-AMS1117-3.3 - 用Wire连接各引脚,注意:
- 所有GND网络标号统一
- VCC分组管理(如3.3V_DIG、3.3V_AN分别供电)
- 关键信号加Net Label(如I2C_SDA、ADC_IN0)
第二步:转PCB & 布局
- 点击“切换到PCB” → 自动生成所有元件布局
- 手动调整位置,原则如下:
- MCU居中,周围留调试空间
- 传感器尽量靠边,便于气体流通
- Wi-Fi模块远离模拟信号走线
- AMS1117放在边缘利于散热
第三步:布线策略
我用了双层板设计(四层成本翻倍,初期没必要):
- 顶层:主要走信号线
- 底层:全局铺地(Ground Plane),增强抗干扰能力
重点走线规则:
-I²C总线:等长、短距离、加4.7kΩ上拉
-ADC模拟输入:用地环包围(Guard Ring),防止串扰
-UART/TX-RX:避开高频区域,长度匹配
-电源线宽:至少0.5mm以上(对应1A电流)
第四步:DRC检查 + 3D预览
这是最容易忽略却最关键的一步!
运行DRC(设计规则检查),确保:
- 没有未连接的引脚
- 线距 ≥ 0.2mm(嘉立创最小工艺)
- 过孔尺寸合理(建议外径0.6mm,内径0.3mm)
- 所有测试点暴露在外层
然后切到3D视图,看看元件会不会打架,尤其是排针高度、外壳间隙。
实际应用中的那些“坑”,我都踩过了
你以为画完就完了?真正的挑战才刚开始。
问题1:MQ-135读数跳变严重?
→ 检查电源纹波!
用示波器一看,果然LDO后面没加足够滤波电容。补了个10μF钽电容+100nF陶瓷电容后,瞬间平稳。
问题2:SHT30偶尔通讯失败?
→ I²C总线上拉太弱。原来是用了10kΩ,换成4.7kΩ后通信成功率从80%升到接近100%。
问题3:Wi-Fi模块干扰ADC采样?
→ 果然是!ESP-01S工作时会产生强烈射频噪声。解决办法:
- 把它挪到板子角落
- 底层完整接地屏蔽
- ADC采样改在Wi-Fi空闲时段进行(任务调度优化)
问题4:电池供电下续航很差?
→ 发现MCU一直在跑,没进休眠。后来加入RTC定时唤醒机制,每5分钟采样一次,待机电流从18mA降到1.2mA,续航提升10倍以上。
最终成果:一块巴掌大的全能空气卫士
最终完成的PCB尺寸约60mm × 40mm,双层板,嘉立创JLCPCB打样费用仅¥25/5片,SMT贴片另加¥80左右。
功能全部验证通过:
- 温湿度每秒更新
- CO₂数据通过MQTT上传Home Assistant
- 空气质量指数本地OLED显示(预留接口)
- 支持USB供电或锂电池运行
更关键的是:整个设计过程不到两天。一天画图,一天调试,第三天就有可用原型。
给初学者的几点建议
如果你也是第一次尝试完整硬件项目,不妨记住这几条经验:
先画框图,再画原理图
别急着拖元件,先把系统结构理清:谁跟谁通信?用什么协议?电源怎么分配?优先复用成熟模块
初期不要自己设计传感器前端电路,直接买现成模块(如MH-Z19B成品板),降低失败风险。留足测试点
SWD下载口、电源测试点、关键信号引出焊盘——这些看似小事,调试时能救你命。丝印一定要清晰
标注元件名称、方向箭头、接口定义。不然焊完自己都认不出哪是TX哪是RX。从小处优化体验
比如在板子上刻个logo、加个挂孔、用不同颜色区分接口……细节决定是否愿意长期使用。
结尾:硬件开发的民主化时代已经到来
十年前,要做一块带Wi-Fi的多功能传感板,你可能需要一支团队、几万元预算、几个月时间。
今天,一个人、一台笔记本、一杯咖啡,就能完成从构想到实物的全过程。
而这背后,正是像嘉立创EDA这样的平台在推动一场“硬件平民化革命”。
它不追求极致复杂的功能,而是专注于解决开发者最痛的几个问题:
- 工具太贵
- 学习太难
- 生产太慢
- 采购太烦
当你能把注意力真正集中在“解决问题”本身,而不是“怎么画图”“去哪打样”上时,创造力才会真正释放。
所以,别再只是看教程了。
打开浏览器,新建一个项目,拖一个STM32上去,连两根线——
你的第一块智能硬件,也许就从这一刻开始。
如果你在实现过程中遇到了其他挑战,欢迎在评论区分享讨论。我们一起把这块空气检测仪做得更好。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考