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传数据到手机。你会选什么主控和什么水位传感器?试试看,下一章我公布我的方案。