基于物联网的农田鼠情监测站:从硬件选型到数据预警实战

发布时间:2026/10/7 21:29:05
基于物联网的农田鼠情监测站:从硬件选型到数据预警实战
做了大半年“鼠情监测站”终于从一台只会触发拍照的铁盒子跑出了一套能指导农田害鼠防治的稳定数据流。这个项目不是高大上的科研课题就是农业植保里最接地气的痛点要想防治鼠害首先得知道老鼠到底有多少、在哪儿活动、什么时候开始变多。传统做法是“夹夜法”晚上沿田埂放一百个鼠夹第二天去数夹住的个体以此估算密度。可农田环境复杂、人力成本高而且人工统计很容易漏鼠种、漏时段数据断断续续防治时机基本靠猜。于是我把物联网传感器和数据分析塞进一个防水箱做成一台自动值守的鼠情监测站放在田间地头让它每天自动记下老鼠的活动轨迹和取食量再远程传给后台展示。这篇文章就把整套系统的设计思路、硬件选型、部署经验、数据算法以及后半程踩过的坑完整写出来给同样想在植保、仓储或社区场景做鼠害监测的朋友当一份参考。1. 这个项目到底要解决什么1.1 鼠害不是靠“想起来再去治”就能控制住的农业鼠害有个很烦人的特点爆发之前几乎没有明显征兆。你白天在田里看不到几只老鼠但它们夜里在根系附近打洞、咬茎、盗食种子等到苗缺、穗损明显时种群密度往往已经很高了。这个时候再投饵成本高、效果差还容易造成药物残留问题。所以鼠害防治的核心不是“杀”而是“监测”要抢在种群快速上升之前预判风险。但老鼠不是昆虫没有诱虫灯那种“扑棱棱飞过来”的机制也不像害虫那样有明显的迁飞高峰。鼠类警觉性极高活动范围固定喜欢沿着墙根、沟渠、田埂这种隐蔽路径跑。一个好的鼠情监测点必须能长期静默地记录它们“经过、取食、逗留”这些行为还得不惊扰它们。传统夹夜法一只鼠夹只能记录一晚一个夹子只能夹住一只鼠夹满之后后面的鼠就绕道走了。这导致数据随机性很大经常出现上个月密度为零、下个月突然爆发的断层。我们决定做监测站的时候目标很明确不再用“一次性猎捕”换密度而是用长期连续的行为数据计算一个“鼠情指数”。监测站24小时在线记录每一次动物进入通道的体重、时刻、取食量和影像然后把这些数据汇总成趋势曲线。趋势比绝对值更重要只要曲线斜率开始抬头就说明种群正在扩增可以提前两周到一个月安排防控措施。这才是自动鼠情监测能带来的真正价值。1.2 从夹夜法到自动监测为什么我决定自己搭一套市面上不是没有成品鼠情监测设备但价格普遍偏高而且大多是“样品箱式”的一个红外探头加一个计数模块只能告诉你“今天有几次触发”没法区分老鼠、癞蛤蟆、还有爬进来的昆虫。有些设备必须插市电在田里根本找不到取电条件。还有些设备把数据存在本地SD卡里得定期去现场导出和传统方法比只是省了数尸体没有真正解决远程化和实时化。我当时手头有从草莓园到大田玉米的不同场景需求不想每块地都买一堆半成品就决定自己从硬件到软件整体搭一版。自己做的好处是传感器组合、上报频率、分析算法都可以按场景调。比如草莓园里怕鼠类啃食滴灌带但田里又总有蟾蜍反复路过我可以在算法里过滤掉体重不符的数据粮库周边的鼠情监测则更关心夜间活动高峰可以在平台上单独看时段分布。模块化设计让这些需求不用重新开模改一下阈值和逻辑就行。这套系统的另一个优势是硬件成本可控单个监测站的材料成本压到了千元级别一台设备能连续工作半年以上不用频繁维护部署十几台也不心疼。2. 鼠情监测站的硬件设计与选型2.1 整机结构与一条“鼠道”的设计鼠情监测站的外形大致是一个长条形的封闭管道老鼠可以从两端进入中间设置一个称重平台。整个结构分四层外层防护壳、诱饵仓、检测区、通讯控制仓。防护壳我用的ABS塑料箱体带硅胶密封条防护等级做到IP65。箱体表面喷成草绿色或土黄色避免在农田里太突兀也能降低对鼠类的惊吓感。两侧各开一个直径8厘米左右的入口入口处加了一段黑色软胶挡片防止雨水倒灌和阳光直射诱饵。核心设计很关键的一点是“诱导通行”。光开口不够老鼠很谨慎不会轻易走进一个陌生管道。我的做法是在通道内壁贴了一圈粗糙的麻绳纹理两侧还有轻微坡度模拟鼠道的感觉。诱饵仓放在通道正中央老鼠必须踩上称重台才能吃到。这样每次进食都会留下体重数据和停留时间。通道尺寸也很有讲究宽度做到12厘米、高度10厘米小家鼠和黄毛鼠能顺利通过但相对较大的天敌或家禽进不去可以减少非目标动物的干扰。检测区底部是称重传感器上方是两个红外对射传感器一前一后。当老鼠前后两个对射都被遮挡时系统判定“有动物在通道内”接着主控记录时刻、持续时间并读取称重平台上的重量变化。最后面的位置还预留了一个微型摄像头模组可以拍摄通道内的侧面影像用于后期识别鼠种和确认动物类型。诱饵仓和检测区分开布置防止老鼠扒拉诱饵时把碎屑洒在称重台上影响后续计量。整个结构没有一颗露出箱外的螺丝所有接缝都用中性硅胶做了二次密封这一点在后来的雨季中起到了决定性作用。2.2 三类传感器怎么配合才不打架“称重红外拍照”听起来简单但真正把它们放在一个盒子里需要解决一堆互相干扰的问题。首先是称重和红外的时序配合红外触发很快老鼠只要一探脑袋就会触发但称重需要稳定一两秒才能读出准确数字。如果一触发就去读重量往往读到的是一半重量数据没有意义。我的做法是让主控在红外持续遮挡超过2秒后才启动称重采样连续采10次去掉最大最小值取平均把这个平均值作为“动物体重”同时把红外计时作为“停留时间”。其次拍照的时机要卡在老鼠侧面轮廓最完整的时候。摄像头如果一直开着一是耗电二是闪光灯或补光灯会惊到老鼠。我加了一颗红外补光LED波长850nm配合摄像头的夜视能力不会产生可见闪光。拍照触发条件为“红外遮挡后500毫秒”启动连拍三张间隔200毫秒这样基本能捕捉到老鼠的脊背和耳朵轮廓足够区分鼠种。红外补光灯只在拍照期间点亮每次约1.2秒功耗控制得很低。称重的零漂是另一个麻烦。农田昼夜温差大早上和中午的称重基准可能相差三四克。如果不处理一只十克的小家鼠可能被识别成二十克。我在每个整点让系统自动记录一次空载重量用滑动平均更新零点之后所有体重值都减去当前零点。也就是说系统会不断自校准不会因为天气变化导致数据漂移。这之后体重数据终于稳下来有时候连同一只鼠两天内的体重波动都在两克以内非常可靠。2.3 低功耗和野外交互不能被一根电源线绑死监测站放在农田里最现实的问题是没有市电。我采用的方案是“电池太阳能板”双供电主体用4节18650锂电池串联标称电压14.8V容量约3400mAh再通过DC-DC降压给各模块供电。太阳能板选用18V/10W的弱光型多晶硅板输出接MPPT充电模块在大部分晴天条件下能维持电量在70%以上。经过实测连续阴雨四天设备依靠电池仍然能正常上报每天都在工作。主控芯片我选了STM32L431这是低功耗系列停机和待机电流特别低。平时系统处于停机状态只有红外对射模块和定时唤醒计时器在运行。红外模块本身耗电只有微安级用一颗CR2032纽扣电池单独供电这样的话即使主电池电量耗尽监测站还有一小段时间能记录触发事件虽然不能上传但能保存本地日志。等电量恢复再补传数据。通信模块选用NB-IoT因为农田信号覆盖优于LoRa不需要自建网关一张物联网卡就能搞定。每次上报平均耗流只有几百毫安秒一天固定上报4次加上事件实时上传整体平均功耗控制在2W以内太阳能补电完全跟得上。低功耗设计后我特别在意“假唤醒”的问题。刚开始程序里用了外部中断检测红外信号结果田野里小虫子爬过也会触发中断一秒一次把电池迅速耗尽。后来改成了“窗口判断”外部中断唤醒后先开启红外对射的连续采样连续3次确认都遮挡才认为是一次有效动物事件否则立刻重新进入停机模式。这个改动让系统在虫害高发期的待机功耗大幅下降也大大减少了垃圾数据。3. 数据上报与鼠情分析平台3.1 上报协议与数据表怎么设计硬件侧收集到的数据通过NB-IoT以MQTT方式上报到服务器。每台监测站有唯一设备ID消息体用JSON格式包含设备编号、时间戳、事件类型、体重、停留时长、诱饵剩余重量、电池电压、信号强度、红外触发次数等字段。设备在每次有效事件结束后把本地缓存里的事件记录推送到云端。如果网络信号不好导致发送失败数据会暂存在本地Flash中等网络恢复后按时间顺序补传。服务器端我用的轻量化架构EMQX作为MQTT Broker后端服务订阅各设备上报的原始消息经过清洗后写入MySQL。为什么不用时序数据库因为数据量还没大到那个量级单设备一天事件量最多几百条MySQL配合索引完全够用部署和备份也简单。平台对外提供RESTful API前端网页和管理小程序共用这一套接口。数据表按“设备表、事件表、设备状态表、诱饵变化表”四类拆开核心是事件表字段包括 id、device_id、event_time、weight、duration、photo_url、battery、rssi、create_time。每次事件还附带一个“诱饵消耗量”字段由前后两条诱饵剩余重量相减得到用于分析取食强度。设计数据库的时候特别注意了时间对齐。农田里设备上报可能因为网络原因延迟事件发生时间和服务器入库时间会差几分钟。如果直接用服务器时间画曲线容易出现“夜间22:31的事件被记到22:35”这种错位。我让所有分析都基于事件时间也就是设备采集时打的时间戳服务器时间只做入库标记。后来查看夜间活动高峰曲线时这个细节保证了数据能精确对应到半小时粒度。3.2 鼠情指数的算法不能只看“今天进了几只”早期我试过用“每日触发次数”直接当鼠情指标结果数据飘得很厉害。同一块田昨天触发12次今天触发35次可能是同一只老鼠反复进出也可能是两只老鼠在通道附近追逐。真正反映种群压力的不是“次数”而是“有效取食事件”和“连续取食趋势”。我梳理了一套三级判断逻辑。第一级是“行为识别”。红外触发后如果体重小于20克且停留时间小于3秒多半只是探头观察不计入取食量。如果体重在20到150克之间停留超过3秒并伴随称重台明显下降表示老鼠在啃食诱饵才记为一次有效取食事件。第二级是“个体估计”。同一只鼠不会长时间待在监测站里所以我在算法里加了一个“戒心间隔”如果两次有效事件间隔小于5分钟就认为可能是同一批活跃个体来回活动在统计种群指数时把权重调低如果间隔超过20分钟可能是不只一只鼠在活动。这个权重因子再乘以体重中位数公式大致为日鼠情指数 Σ(有效事件权重 × 体重指数) / 设备连续工作时间小时。单位是“克·次/小时”能反映鼠类活动的综合强度。第三级是“滑动基线”。农田鼠类活动受农事操作、天气、季节影响很大用固定阈值判断“高不高”不靠谱。我把每个点位过去14天的鼠情指数做指数平滑得到一条基线当天的指数如果超过基线的1.8倍就标记为“异常抬升”。这个相对变化比绝对数值更灵敏。在春播期整片区域指数都在爬升但单个点位相对基线快速拔高时往往意味着该区域有新的鼠群迁入。这套算法跑下来预测的准确度比我人工看曲线高得多至少能把预警时间提前3到5天。3.3 预警分级和可执行建议平台把鼠情预警分为四级绿色低风险鼠情指数低于基线1.2倍、黄色警惕指数为基线1.2到1.8倍、橙色高风险指数为基线1.8到3倍、红色暴发指数超过基线3倍且持续两日。每个级别对应不同的处理建议。低风险只要求日常巡查不需要额外干预黄色预警提示增加毒饵站或粘鼠板布放密度并重点检查鼠道入口封堵橙色预警就需要组织区域统防避免单点防治引起鼠群扩散红色预警则要启动应急防控协调周边田块同步采取措施。预警建议还会结合时段分布。比如有的点位监测到晚上20点到22点是取食高峰说明那附近鼠类倾向于在日落后活动投饵建议安排在下午16点到18点让饵料在高峰前达到最佳新鲜度。有的点位凌晨4点到6点才活跃可能鼠类已经受到附近天敌或人类活动干扰活动时段异常这时候适合增加物理捕鼠工具。系统里每台设备生成一份“点位周报”自动推送当地植保员周报里不仅包含指数曲线还包括当天拍摄到的鼠类影像缩略图方便人工复核。4. 点位布设与现场安装实操4.1 点位规划把监测站放在老鼠必经之路上硬件和软件做得再漂亮点位放错了也白搭。老鼠的活动是有固定路线的它们一般贴着墙基、沟渠、排水口、田埂杂草带前进很少在开阔地中间大摇大摆跑。我布设监测站时遵循三条原则第一放在鼠道交汇处或农田边缘而不是作物正中央第二通道入口方向顺着鼠类习惯行进方向避免让老鼠“回头”才能进洞第三点间距根据场景动态调整普通大田30到50米一个果园和苗圃因为鼠种活动范围小可以加密到20米一个。在粮库周边布点更关注建筑角落和墙根尤其是门缝两侧、台阶下方、排水沟边。这些地方老鼠喜欢贴边走监测站可以直接靠着墙摆放入口方向与墙面平行模拟一段鼠道穿过墙根的感觉。在草莓大棚里我则把监测站放在棚头靠近卷帘门的位置那里是老鼠进出大棚的必经通道同时避免放在滴灌带正下方否则老鼠可能为了喝水经过滴灌带分散了进入监测站的意愿。每放一台设备记录GPS坐标和现场照片回到平台里标点方便后续查看点位间距是否合理。4.2 安装调测过程中的几个坑安装阶段最容易翻车的不是电子部分而是“稳定性”。太阳能板如果直接放在箱体顶上农田里风大不固定好就会摆动把接线扯断。我的做法是用四颗不锈钢抱箍把太阳能板支架固定在箱体侧面与水平面成45度角既能兼顾冬季太阳高度角又不会在强风中被掀翻。所有外部线缆都套上波纹管进出口用格兰头锁紧任何一根线都不能裸露在外这一步能挡住百分之八十的“虫子咬线”问题。红外对射探头的安装也要调角度。探头如果装得太高小家鼠从下方钻过时遮不住光轴就不会触发。我把红外模块装在通道侧壁底部离地3.5厘米光轴离地面只有约2厘米这样再小的鼠也能遮住。装好后一定要用遮挡物实际测三遍从左边进、从右边进、快速跑过。最常见的问题是老鼠经过时尾巴翘起来会额外触发一次红外导致系统把同一次经过记录成两次事件。后来我在软件里加了“去重窗口”红外触发结束后5秒内再次触发不生成新事件只在原事件的停留时长上累加。这个去重逻辑救回了大量被重复计数炸掉的曲线。另外设备测试不能只在室内做。农田里湿度、温度、露水都会影响红外探头灵敏度。我在室外连续测试三天第一天发现清晨露水凝在探头表面导致红外一直处于遮挡状态系统不停触发。解决办法是在探头表面加了一圈加热膜每天夜里定时通电半小时驱除凝露同时把红外对射的触发阈值从默认的0.5V提高到1.2V这样即便是水滴轻微折射也不会误触发。这个细节从根上解决了“雨夜设备疯狂上报”的假象。4.3 诱饵选择与安全底线监测站的诱饵目标不是“一次杀灭”而是“长期吸引”。所以诱饵要选对鼠类适口性好、但不容易变质、也不会造成安全隐患的东西。我试用过小麦、玉米粒、花生、复合颗粒饵料、甚至棉花蘸香油。最终固定配方是六成新鲜玉米粒、三成带壳花生碎、一成葵花籽偶尔加几滴没有抗凝血成分的香草精充当气味剂。这样配比在农田和仓储场景中都表现不错老鼠取食率高也耐放基本能维持两到三周不被蚂蚁和霉菌完全毁掉。这里必须强调安全底线监测站内绝对不能放任何杀鼠剂或带有毒性的饵料。田间的鼠情监测站是开放式通道虽然入口较小但猫、刺猬、鸟类依然有可能误入。我们的目标是监测不是灭杀使用有毒饵料既不专业也违反植保操作规范。如果要配套做防控应在监测站周围单独设置固定的毒饵站上锁并张贴警示标识。诱饵仓也要设计成“只能啃不能拖走”我在诱饵盘下加了一个重锤压杆老鼠能吃到粮粒但整块饵盘无法被拖出称重区防止老鼠把食物搬到权当窝里导致监测数据失真。5. 运行半年后的故障排查与维护心得5.1 数据离线先从信号和供电查起运行半年我遇到的最高频故障就是“数据离线”。排查顺序很固定先看平台的设备状态表确认最后一条上报时间和当前时间差多少。如果离线超过6小时第一步不是拆箱而是看太阳能板输出电压。田野里太阳能板被鸟类粪便覆盖、被秸秆遮挡的情况很常见尤其是收割季节粉尘附着导致发电效率骤降。我一般先用远程指令读取设备报告的电池电压如果低于12.2V基本就是充电不足需要到现场清理太阳能板或调整角度。如果电池电压正常仍然离线第二步查NB-IoT信号。农田里信号不稳定是常有的事尤其低洼地块和密林边缘。设备状态里会有最后一次上报的rssi和rsrp值一般rsrp大于-105dBm才能稳定联网。我遇到过一个点位其余设备都正常只有那台连续三天离线现场看了才发现设备被移动到了仓库角落的铁皮围挡内信号被金属结构完全屏蔽。把设备挪出铁皮围挡后信号满格问题马上消失。所以安装前一定先拿手机做一次信号测试不能看图标满格就完事要在设备安装高度附近转一圈确认最差的位置也不至于断网。5.2 误报高得离谱别急着骂传感器误报一般分两类一类是“无人驾驶式”误报设备没电或程序跑了红外触发不停并持续上传另一类是“宠物式”误报田里有猫、刺猬、雉鸡钻进通道系统把它们当成老鼠。处理第一类问题先查看事件表的event_time分布如果每秒甚至每几百毫秒一条事件多半是红外对射的接收端被污染或主控程序跑飞。清洗探头后如果仍然每秒触发就检查是不是对射模块供电电压异常红外发射管的供电电压如果波动输出信号会毛刺丛生导致单片机误判。第二类问题靠体重和影像双验证。田鼠类野生动物体重一般不超过150克超过200克的直接标记为“非目标动物”不参与鼠情指数计算。我还在算法里加了“通道通过时长”的分布统计老鼠通过时间一般在3到15秒停留时间通常不超过2分钟。如果某条事件记录显示停留超过10分钟体重又不稳定变化很可能是蟾蜍或蛙类蹲在称重台上不走。这种情况即使红外触发了两次也会被行为识别过滤掉。后期我加入摄像头影像辅助复核所有被判定为有效事件的数据都保留照片人工可随时抽查形成一个快速反馈校准的闭环。5.3 电池续航、防水密封与气象干扰续航是长期运行最考验人的环节。原以为10W太阳能板绰绰有余但秋收后田里尘大、冬春季日照弱电池电压还是慢慢往下走。我加了一个“低压保护策略”当电池电压低于12.5V时自动把上报频率从每2小时一次降为每6小时一次事件触发后不再实时拍照只保存重量和红外数据。这保证了最恶劣天气下监测站至少能维持基本记录而不是直接黑机。等到电量回升到13V以上再恢复全功能。防水密封不能只看IP65等级真正暴雨季来临时湿度才是元凶。箱体内即使不进明水高湿度也会导致PCB板结露红外模块引脚氧化。我在箱体底部放了两个硅胶干燥包并在控制仓内壁刷了一层三防漆。箱体顶部透气阀也不能省它能平衡内外气压避免密封腔体在昼夜温差作用下“呼吸”进水汽。第一版没装透气阀两个月后打开设备主板上全是一层水渍损失了两块STM32。装上透气阀和干燥包后连续雨季设备内部湿度一直稳定在40%以下再没出现过“湿度过高自动关机”的问题。气象干扰还包括雷击和静电。农田里的设备是旷野中的突出物雷雨天容易感应过电压击穿通信模块和充电模块。我在太阳能板输入、电池输出、天线接口三处都加了防雷TVS管和自恢复保险丝。天线我还刻意选择了外置橡胶天线尽量让天线垂直向上而不是贴近箱体金属外壳。有一次附近田里真的被雷击中距离设备只有几十米设备报告了电压异常但防雷电路扛住了重启后恢复正常。从那以后所有新装点位都统一使用带防雷元件的防水接线盒这也算用现场事故换回来的经验。如果要说这个项目后续还能往哪扩展我个人的答案是接入更多的时空维度。现在监测站主要做的是“点位上鼠情指数”下一步可以在同一块田多个点位之间做热力插值再叠加作物生育期和气象数据构建一个真正的鼠害风险地图。我一直在跟几个搞植保的朋友聊他们说如果能把这类设备从“数据采集器”真正变成“决策工具”推广价值会大很多。对一个做硬件落地的人来说能把这些田间采集到的数据变成农户听得懂、敢决策的建议就是我继续迭代这台设备的动力。