2、核心器件选型(上):主控芯片选型(STM32/ESP32对比)、水位传感器选型(超声波/压力式)、雨量传感器选型
好,咱们正式开始动手选器件了。
这一章我带你过三个最核心的选型:主控芯片、水位传感器、雨量传感器。这三个选对了,整个系统的骨架就稳了。我这些年踩过的坑,有一半都出在器件选型上——不是性能不够,就是选了个根本买不到的料。咱们今天一次性说透。
2.1 主控芯片:STM32 vs ESP32,到底怎么选?
很多新手上来就问:“哪个更强?” 其实这是个伪命题。强不强,得看你的场景。
咱们这个农业洪水预警系统,核心需求是什么?
- 低功耗(野外供电难)
- 稳定可靠(不能死机)
- 有一定通信能力(至少能发数据)
- 成本可控
好,带着这些需求,咱们看看STM32和ESP32。
STM32:老牌工业级选手
我最早做农业物联网项目时,用的就是STM32F103。说实话,这芯片皮实得有点过分。有一次项目现场湿度95%,温度40多度,它愣是跑了两年没重启过。
STM32的优势很明显:
- 工业级温度范围(-40°C ~ 85°C)
- 外设丰富(ADC、定时器、DMA、CAN等)
- 生态成熟(HAL库、LL库、各种例程)
- 实时性好(裸机或RTOS都稳)
但缺点也有:WiFi/蓝牙得外挂模块,开发门槛稍高。
ESP32:集成WiFi/蓝牙的性价比之王
ESP32这几年火得不行。我去年帮一个果园做水位监测,就用了ESP32。为啥?因为现场没网线,得靠WiFi传数据。ESP32自带WiFi和蓝牙,一颗芯片搞定所有。
它的亮点:
- 集成WiFi + 蓝牙(省一个通信模块的钱)
- 双核处理器(一个核跑协议栈,一个核跑应用)
- 价格便宜(批量不到20块)
- Arduino生态支持好(上手快)
但要注意:ESP32的ADC线性度一般,做高精度模拟采集时得小心。我遇到过ADC读数跳变的情况,后来加了软件滤波才解决。
选型对比表
| 对比项 | STM32(以F103为例) | ESP32 |
|---|---|---|
| 主频 | 72MHz | 240MHz(双核) |
| SRAM | 20KB ~ 64KB | 520KB |
| Flash | 64KB ~ 512KB | 4MB ~ 16MB |
| 无线通信 | 需外挂模块 | 内置WiFi/BLE |
| ADC精度 | 12位(线性度好) | 12位(线性度一般) |
| 工作温度 | -40°C ~ 85°C | -40°C ~ 85°C |
| 功耗(休眠) | ~2μA | ~5μA |
| 开发难度 | 中等 | 较低(Arduino友好) |
| 价格(批量) | 10~25元 | 15~25元 |
我的建议:
- 如果项目需要高可靠性、工业环境、低功耗,选STM32。
- 如果项目需要WiFi通信、快速原型验证、成本敏感,选ESP32。
- 如果两者都要?可以考虑STM32 + ESP8266组合,或者直接上ESP32-PICO系列。
一个小技巧: 我习惯在选型阶段就留出20%的余量。比如算下来需要64KB Flash,我会选128KB的型号。为什么?因为后期加功能、加日志、加OTA,Flash说满就满。
2.2 水位传感器:超声波 vs 压力式
水位测量是洪水预警的核心。选错了传感器,数据就是废的。
市面上主流就两种:超声波水位传感器和压力式水位传感器。我两种都用过,各有各的脾气。
超声波水位传感器
原理很简单:发射超声波,碰到水面反射回来,算时间差得距离。
优点:
- 非接触测量(不沾水,不怕腐蚀)
- 安装方便(架在河岸或桥墩上就行)
- 量程大(常见0.3m ~ 10m)
缺点:
- 受温度影响大(声速随温度变化)
- 水面有波浪或泡沫时,测量不稳定
- 盲区(探头下方0.3m内测不准)
我曾经在一条流速较快的河边装超声波传感器,结果数据跳得像心电图。后来发现是水面波动太大,超声波反射信号乱了。解决办法是加了一个静水井——说白了就是一根PVC管插在水里,让管内水面保持平静。
压力式水位传感器
原理:把传感器沉到水底,测水压,换算成水深。
优点:
- 不受水面波动影响
- 精度高(可达±0.1%FS)
- 无盲区(从0开始测)
缺点:
- 接触水体(容易被泥沙、水生物堵塞)
- 需要定期校准(零点漂移)
- 安装维护麻烦(得下水)
嗯,这里要注意:压力式传感器有个“通气电缆”,用来平衡大气压。如果电缆破了或者进水了,数据就全偏了。我有个同事就因为这个吃过亏——电缆被老鼠咬了个小孔,数据偏了半米,差点误报。
选型建议
| 场景 | 推荐类型 | 理由 |
|---|---|---|
| 河流、湖泊(水面开阔) | 超声波 + 静水井 | 非接触,维护少 |
| 排水管道、涵洞 | 压力式 | 空间受限,超声波装不下 |
| 水库、大坝(精度要求高) | 压力式(高精度型) | ±1mm精度,可靠 |
| 临时监测、快速部署 | 超声波 | 安装快,不用下水 |
避坑指南: 我曾经在选型时只看量程,没看盲区。结果装好后发现水位低于0.3m时,超声波直接报错。后来只能把传感器往下移了20cm才解决。所以,选超声波时一定要算好安装高度和盲区的关系。
2.3 雨量传感器:翻斗式还是称重式?
雨量数据是洪水预警的“前哨”。雨下多大、下多久,直接决定要不要发预警。
农业场景下,最常用的是翻斗式雨量传感器。为什么?便宜、简单、可靠。
翻斗式雨量传感器
原理:雨水接满一个小斗,翻倒一次,计数一次。每个翻斗对应0.1mm或0.2mm降雨量。
优点:
- 结构简单,几乎不坏
- 功耗极低(干簧管或霍尔开关,微安级)
- 价格便宜(几十到几百块)
- 数据直接是脉冲信号,单片机好处理
缺点:
- 大雨时可能漏计(翻斗翻不过来)
- 需要定期清理(树叶、灰尘会堵)
- 精度一般(±4%左右)
我自己的经验:翻斗式传感器最怕两样东西——蜘蛛网和落叶。蜘蛛网会把翻斗粘住,落叶会堵住进水口。所以我在项目里都会加一个不锈钢滤网,并且每季度巡检一次。
称重式雨量传感器
原理:用称重传感器实时测量收集到的雨水重量,换算成降雨量。
优点:
- 精度高(±1%以内)
- 可测固态降水(雪、冰雹)
- 无机械运动部件(不易卡住)
缺点:
- 价格贵(上千元)
- 功耗高(称重传感器需要激励电压)
- 需要温度补偿
说实话,农业洪水预警场景下,称重式有点“杀鸡用牛刀”了。除非你是在高寒地区需要测雪量,否则翻斗式完全够用。
我的推荐:
对于咱们这个课程项目,我建议用翻斗式雨量传感器,配一个0.2mm分辨率的型号。性价比最高,也最容易上手。具体型号嘛,JDZ-02或者RG-15都行,淘宝上几十块就能买到。
2.4 本章小结
好,咱们捋一下这章的核心:
- 主控芯片: 追求稳定低功耗选STM32,追求WiFi和快速开发选ESP32。
- 水位传感器: 开阔水面用超声波+静水井,管道或高精度场景用压力式。
- 雨量传感器: 翻斗式是农业场景的“万金油”,便宜够用。
下一章咱们接着聊剩下的传感器和执行器选型——土壤湿度、水流速、以及那个关键的报警模块。到时候我会把整个系统的器件清单拉出来,咱们一起算算成本。
一个小作业: 假设你要在自家农田旁边的小河上装一个洪水预警系统,河宽5米,水深变化范围0.5~3米,需要WiFi传数据到手机。你会选什么主控和什么水位传感器?试试看,下一章我公布我的方案。