1. 项目概述与硬件选型:了解农业气象站能干啥,选对单片机和传感器
大家好,我是你们的硬件老司机。今天咱们正式开干《单片机农业气象站从零搭建》这个项目。
说实话,农业气象站这玩意儿,听起来挺高大上,其实拆开了看,就是几个传感器加一块单片机,再配个显示屏或者无线模块。我当年第一次做类似项目,是在一个蔬菜大棚里。客户说想要知道棚里啥时候该浇水、啥时候该通风。我一听,这不就是温湿度加光照嘛!
嗯,咱们这节课,先把项目搞清楚,再把硬件选型定下来。别急着焊板子,先把路走对。
1.1 农业气象站到底能干啥?
说白了,农业气象站就是给庄稼当“私人医生”。它实时监测环境参数,然后告诉你:现在该不该浇水?光照够不够?风速会不会吹倒苗?
我总结了一下,核心功能就这几条:
- 温湿度监测:空气温度和湿度。这是最基础的,几乎所有作物都跟它挂钩。比如草莓,湿度太高容易得灰霉病。
- 光照强度监测:光合作用靠的就是光。光照不够,蔬菜就徒长,口感差。
- 风速风向监测:大风天要提前预警,尤其是大棚种植,风大了能把棚膜掀了。我在山东一个项目里就遇到过,半夜刮大风,棚膜吹跑了,损失惨重。
- 数据记录与预警:把数据存下来,超过阈值就报警。比如温度超过35度,自动提醒你开风机。
你想想看,有了这些数据,种地就不再是“靠天吃饭”,而是“靠数据吃饭”。
核心思路:我们的目标是做一个低成本、可复制的气象站。不需要工业级精度,但必须稳定可靠。说白了,就是花小钱办大事。
1.2 单片机选型:STM32 还是 ESP32?
这个问题,我几乎每次上课都会被问到。我的回答是:看你的需求。
咱们先列个表,对比一下:
| 对比项 | STM32(以F103为例) | ESP32 |
|---|---|---|
| 主频 | 72MHz | 240MHz(双核) |
| 无线功能 | 无(需外挂WiFi模块) | 内置WiFi + 蓝牙 |
| 功耗 | 较低(约50mA) | 较高(约80mA,但可深度睡眠) |
| 开发难度 | 中等(HAL库/标准库) | 较低(Arduino框架友好) |
| 价格 | 约8-15元 | 约15-25元 |
| 适合场景 | 工业级、低功耗、有线传输 | 物联网、无线传输、快速原型 |
我个人习惯是:如果项目需要联网上传数据,直接上ESP32。省一个WiFi模块的钱,还省了调试时间。如果项目是电池供电、要求极低功耗,或者需要跑复杂的控制算法,那STM32更合适。
咱们这个课程,我选的是ESP32。为什么?因为农业气象站大概率要放在田里,你不可能拉根网线过去。用ESP32自带的WiFi,数据直接传到手机或云平台,多方便。
避坑指南:我曾经在一个项目里用了STM32+ESP8266的组合,结果两个芯片之间通信老是丢包。后来换成单颗ESP32,问题全解决了。所以,能用一个芯片搞定的事,别用两个。
1.3 传感器选型:温湿度、光照、风速
传感器选型是门学问。选贵了,成本扛不住;选便宜了,数据不准。我的原则是:够用就好,稳定优先。
1.3.1 温湿度传感器
市面上最常见的就两种:DHT11 和 DHT22(也叫AM2302)。
- DHT11:精度±2°C,±5%RH。价格便宜,3块钱一个。适合要求不高的场景。
- DHT22:精度±0.5°C,±2%RH。价格15块左右。适合需要精确控制的场景。
我建议咱们用DHT22。别省那十几块钱。你想想,温度差个2度,可能就判断错了浇水时机。我在一个草莓大棚里就吃过这个亏,DHT11报的温度偏低,结果没及时通风,棚里闷坏了。
注意:DHT22的采样间隔至少2秒,别拼命读。我曾经犯过这个错,1秒读一次,结果传感器直接罢工了。
1.3.2 光照传感器
光照传感器我推荐两种方案:
- BH1750:数字输出,I2C接口,精度高。直接读出勒克斯(lux)值。价格10元左右。
- 光敏电阻 + ADC:模拟输出,需要自己换算。成本极低,但精度一般。
咱们选BH1750。为什么?因为它直接输出数字量,不用自己算公式。而且它有个好处——内置了光谱修正,测出来的值更接近人眼感知。说白了,就是更准。
1.3.3 风速传感器
风速传感器比较特殊。市面上主要有两种:
- 三杯式风速计:机械结构,靠风杯转动产生脉冲信号。便宜,但容易卡死。
- 超声波风速计:无机械部件,精度高,但贵(几百到上千)。
咱们做的是低成本项目,选三杯式风速计。它输出的是脉冲信号,用单片机的计数器就能读。我一般用霍尔效应型的,比干簧管型的寿命长。
具体型号,我推荐EC-200或者类似的国产模块。价格大概30-50元。它的原理是:每转一圈,输出一个脉冲。风速越快,脉冲频率越高。咱们只需要测频率,然后查表或者用公式换算成风速。
小技巧:三杯式风速计有个启动风速,一般是0.5m/s左右。低于这个风速,它不转。所以测静风时,直接报0就行。
1.4 硬件选型总结
好了,咱们把硬件清单理一理:
| 器件 | 型号 | 数量 | 预估成本 |
|---|---|---|---|
| 单片机 | ESP32(如NodeMCU-32S) | 1 | 20元 |
| 温湿度传感器 | DHT22 | 1 | 15元 |
| 光照传感器 | BH1750 | 1 | 10元 |
| 风速传感器 | EC-200(三杯式) | 1 | 40元 |
| 其他(面包板、杜邦线、电源等) | - | 若干 | 20元 |
| 总计 | 约105元 |
你看,一百块钱出头,就能搭一个基础的气象站。比起市面上动辄上千的成品,咱们这个性价比很高了。
嗯,这节课就到这儿。下一节,咱们开始搭建开发环境,把ESP32点亮。到时候我会手把手教你怎么配Arduino IDE,怎么烧录第一个程序。
记住,硬件选型是地基。地基打好了,后面盖楼才稳。咱们下节课见。
课后思考:如果你来做这个项目,你会把气象站放在哪里?是露天农田,还是大棚里?不同的场景,对传感器的防护要求可不一样哦。