1. 项目缘起一个“不务正业”的硬件工程师的河边奇遇去年夏天我回老家休假。有天傍晚我沿着村边那条熟悉的小河散步想找找儿时的记忆。结果记忆没找着倒是被眼前的一幕给堵得心头发慌河面上漂着几条翻着白肚的鱼岸边草丛里还扔着几个被剪断的简易电瓶和几截电线。不用问这肯定是“电鱼”的“杰作”。我老家这条河小时候鱼虾成群现在却连个像样的鱼影都难见这种“绝户”式的非法捕捞“功不可没”。作为一名硬件工程师我的职业本能让我开始琢磨有没有一种技术手段能像森林防火的“电子眼”一样对河道进行24小时不间断的智能监测一旦发现电鱼行为就立刻报警让执法力量能够精准、快速地介入这个想法在我脑子里挥之不去。回到城市后我查阅了大量资料发现市面上针对电鱼的监管主要还是依赖人工巡逻和群众举报效率低、覆盖面窄尤其是在夜间和偏远水域几乎处于监管真空。而电鱼设备往往简单、隐蔽、作案快等接到举报赶到现场人早就跑了。于是我决定利用自己的专业技能动手设计并制作一套“电鱼智能报警器”。这不仅仅是一个技术Demo我更希望它能成为一个可落地、低成本、易部署的解决方案原型为保护我们身边脆弱的鱼类生态尽一份力。今天我就把这个项目的完整设计思路、技术选型、踩坑过程以及未来展望毫无保留地分享出来。2. 核心原理拆解电鱼信号如何被“听见”与“识别”要让机器识别电鱼首先得明白电鱼行为的物理特征。电鱼机又称“电捕鱼器”的工作原理是将电池的直流电通过逆变器转换成高压脉冲或交流电然后通过两根电极竿插入水中形成电场。水中的鱼虾在强电场中会瞬间昏厥或死亡从而被捕获。这个过程中会产生几个关键的可检测信号异常电流信号电鱼机工作时会在水体中注入远高于环境背景的电流。这种电流通常是脉冲式的“哒哒哒”的放电声就是脉冲频率在几十到几百赫兹电压可达上百甚至上千伏。特定频率的电磁辐射逆变器升压、产生脉冲的过程会伴随强烈的电磁辐射其频率特征与常见的民用电器如水泵、电动车充电器有显著区别。声音振动信号可选有些老式或大功率电鱼机其变压器或放电开关会产生独特的机械振动通过水体传导。基于以上分析我的报警器核心检测逻辑就清晰了通过部署在水下的传感器持续监测水体的电学参数如电场强度、电流变化一旦捕捉到符合电鱼特征特定幅值、特定频率的脉冲信号的异常即判定为疑似电鱼事件触发报警。这里有一个关键的技术抉择到底以检测电流/电场为主还是以检测电磁辐射为主电流/电场检测水下电极传感器优点直接、本质。传感器如不锈钢电极直接接触水体测量的是电鱼行为最直接的效应——水中电场变化。抗干扰能力相对较强不易受岸边远处电器影响。缺点传感器需要防水、防腐蚀处理长期浸泡可靠性要求高。部署时需要将电极固定于水下安装稍复杂。电磁辐射检测空芯线圈或磁棒天线优点非接触式传感器可以密封在防水仓内置于水面浮标或岸边部署灵活维护方便。缺点容易受到环境中其他电磁噪声干扰如高压线、无线电发射塔、大型电机等。需要更复杂的信号处理算法来滤除干扰。考虑到河流环境的复杂性和系统长期稳定运行的可靠性我最终选择了“水下电场检测为主水上电磁检测为辅”的双重验证方案。主传感器采用特制的防水电极对直接感知水体电场辅助传感器用一个磁棒线圈监测特定频段的电磁噪声。只有当两个传感器在时间窗口内同时触发异常才确认为高置信度的电鱼事件这样可以极大降低误报率比如单独的水上电磁信号触发可能是路过车辆的干扰单独的水下微弱信号可能是鱼类群游扰动。3. 硬件系统设计与关键器件选型整个硬件系统可以分为传感层、主控层、通信层和电源层。我画了一个简单的系统框图来帮助理解[水下电极传感器] -- [信号调理电路滤波、放大] -- [主控MCU] -- [4G通信模块] [水上电磁传感器] -- [信号调理电路滤波、放大] -- | -- [云平台/手机APP] | [GPS模块] ----------------------------------------------- | | [声光报警器可选] ----------------------------------- | | [太阳能电池板] -- [充电管理] -- [锂电池] -- [电源管理] -- [整个系统]下面我详细说说每个部分的设计考量和具体选型3.1 传感层捕捉微弱的“犯罪信号”水下电场传感器核心器件一对316L不锈钢电极棒。选择316L是因为其耐腐蚀性极佳适合长期淡水浸泡。电极间距和面积需要根据水体电导率和预期检测灵敏度进行计算。我的经验公式是在典型淡水电导率下约100-500 μS/cm电极间距1米左右可以较好地平衡灵敏度和抗环境噪声能力。信号调理电极感应到的信号是微弱的电压差。首先经过一个仪表放大器我用的AD620进行第一级差分放大它能有效抑制共模干扰比如来自电网的50Hz工频干扰。然后通过一个带通滤波器我设置的通带频率是20Hz - 2kHz目的是滤除低频的缓慢变化如潮汐、温度变化引起的电导率漂移和高频的无线电噪声只保留电鱼脉冲可能存在的频段。最后再经过一级可编程增益放大器PGA由MCU根据背景噪声水平动态调整放大倍数。水上电磁传感器核心器件高磁导率磁棒绕制的空芯线圈。磁棒能聚集磁场线提高灵敏度。线圈匝数和谐振电容需要匹配使其谐振频率落在电鱼机常见的干扰频段如20kHz-200kHz。信号调理线圈感应的是电动势经过一个简单的电压跟随器缓冲后同样送入带通滤波器最后进行包络检波将高频信号转化为可以被MCU ADC读取的缓变电压信号用于判断电磁脉冲的强度。3.2 主控层系统的“大脑”与决策中心主控MCU的选择至关重要它需要具备足够的ADC通道、运算能力进行实时信号处理以及低功耗特性以支持太阳能供电。候选方案对比STM32系列如STM32L4性能强大外设丰富功耗控制优秀但开发复杂度稍高成本也偏高。ESP32系列集成Wi-Fi和蓝牙但本项目远程通信主要靠4G其集成无线功能略显浪费且在水边潮湿环境下Wi-Fi/蓝牙意义不大。国产GD32或雅特力AT32性价比高兼容STM32生态是很好的备选。TI MSP430系列超低功耗的标杆但处理复杂算法的能力稍弱。我的选择STM32G0系列。原因如下性价比高相比L4系列成本更低但性能完全满足需求。ADC性能好具备多个高速ADC支持双重采样模式可以同时对两路传感器信号进行同步采样便于后续做信号相关性分析这对双重验证算法很重要。低功耗支持多种低功耗模式。在待机状态下可以仅让ADC定时唤醒进行采样平均电流可以控制在1mA以下。生态完善开发工具、资料、社区支持都非常成熟踩坑时容易找到解决方案。3.3 通信与定位层让警报“飞”出河道报警信息必须能远程、实时送达。通信模块毫不犹豫地选择了4G Cat.1模块如移远EC200S。为什么不是NB-IoT虽然NB更省电但其传输速率低、网络覆盖在某些偏远水域可能不如4G且不适合传输少量但可能需要实时确认的数据比如拍照指令。Cat.1在功耗、成本和速率上取得了很好的平衡是物联网的中坚力量。定位模块采用北斗/GPS双模定位模块。获取设备自身的精确位置经纬度是报警信息的关键组成部分能让执法人员直奔事发地点。北斗系统在国内的覆盖和精度更有保障。通信协议为了省电和简化没有用复杂的MQTT而是直接采用模块的TCP/IP AT指令将报警数据封装成简单的JSON字符串发送到我自建的云服务器后端。一条典型报警数据如下{ device_id: FISH-ALARM-001, timestamp: 2023-10-27T22:15:30Z, location: {lat: 39.9042, lng: 116.4074}, event_type: high_confidence_electrofishing, sensor_data: { electric_field_strength: 12.5, em_pulse_count: 8 }, battery_level: 78 }3.4 电源与防护层确保野外长期生存这是项目能否从原型走向实用的关键。供电系统太阳能板选择一块10W左右的单晶硅太阳能板效率高弱光性能好。电池采用18650磷酸铁锂电池组如2并2串标称电压6.6V容量约6000mAh。磷酸铁锂安全性高循环寿命长适合户外恶劣环境。充电管理使用专用的太阳能充电管理芯片如CN3791实现MPPT最大功率点跟踪功能能最大限度地从太阳能板获取能量。电源管理使用低压差稳压器LDO和DC-DC降压芯片为不同电压需求的模块供电。整个电源路径上有过压、过流、反接保护。防护设计防水主控舱体采用IP68等级的防水盒所有出线口使用防水格兰头。传感器接口用防水胶密封。防雷击在水下电极信号输入端和天线接口处都设计了TVS管和气体放电管组成的两级防雷保护电路防止感应雷击损坏设备。防盗与固定设备外壳设计有隐蔽的安装孔可以用不锈钢缆锁固定在桥墩、水泥桩上。内部还加了一个简单的防拆开关一旦外壳被非法打开会立即发送设备被破坏的警报。4. 软件算法从数据到判断的“智能”之路硬件采集到的是原始的电压数据如何从中准确识别出电鱼信号是软件算法的核心任务。我的处理流程可以概括为采样 - 预处理 - 特征提取 - 模式识别 - 决策报警。4.1 信号预处理把“毛刺”捋平MCU的ADC以1kHz的频率对于电鱼脉冲信号足够对两路传感器信号进行同步采样。原始数据噪声很大。数字滤波首先在时域进行一个滑动平均滤波平滑掉一些高频毛刺。然后我实现了一个IIR带通数字滤波器其模拟原型就是硬件上的那个带通滤波器进行第二次精准滤波。这里我用了直接II型结构计算效率高。工频陷波50Hz的电网干扰是最大的背景噪声。我设计了一个自适应陷波器。原理是生成一个同频同相的正弦波从信号中减去。关键在于频率跟踪我通过监测信号在49-51Hz范围内的能量微调陷波器的中心频率以应对电网频率的微小波动。4.2 特征提取给信号画“肖像”经过预处理的信号干净了许多。接下来需要从中提取能代表电鱼特征的关键指标时域特征脉冲计数在固定时间窗口如2秒内超过设定阈值的正向和负向脉冲各有多少个电鱼脉冲通常是成对出现的。脉冲宽度每个脉冲的持续时间。电鱼脉冲宽度一般在几毫秒到几十毫秒。占空比脉冲持续时间与间隔时间的比例。信号能量计算窗口内信号的平方和或绝对值积分反映总体强度。频域特征通过FFT计算主频频率信号能量最集中的频率点。频谱质心频谱的“重心”反映信号频率分布的整体位置。频谱带宽信号主要能量分布的频率范围。我最初只用了时域特征发现误报不少比如大雨导致的水流湍急带动电极晃动也会产生类似脉冲。加入频域特征后识别准确率大幅提升。因为电鱼脉冲的频谱有一个相对固定的“形状”而很多机械干扰的频谱是杂乱无章的。4.3 模式识别与决策是“坏人”吗这里我没有采用复杂的深度学习模型在资源有限的嵌入式端部署成本高而是采用了更轻量级且可解释性强的阈值判断状态机方法。初级触发单传感器水下电场信号的能量值和脉冲计数同时超过经验阈值触发“初级警报”系统进入“高度警戒”状态。双重验证在“高度警戒”状态下启动对电磁传感器信号的快速分析。如果在接下来的5秒内电磁信号也检测到特征脉冲且与电场脉冲在时间上有相关性我计算了一个简单的互相关系数则确认为“高置信度电鱼事件”。状态机管理系统有一个状态机包括“休眠”、“监测”、“警戒”、“报警”、“上报后冷却”等状态。这能有效防止连续误报。例如一次报警后系统会进入一个“冷却期”如3分钟在此期间即使再次检测到信号也不会重复上报避免网络拥塞和骚扰执法人员。注意所有阈值都不是拍脑袋定的。我是在实际河道非电鱼时间进行了长达一周的背景噪声数据采集统计出噪声的均值与方差然后将阈值设定在“均值3倍方差”以上。同时也搜集了一些公开的电鱼机视频资料对其音频进行频谱分析估算出脉冲的大致特征范围作为参考。5. 实地部署、调试与踩坑实录实验室里一切正常到了河边才是真正的考验。我把设备带到了市郊一段允许测试的河道开始了为期一个月的实地调试。5.1 部署安装的“水土不服”坑一电极极化效应。刚开始电极插入水中几个小时后信号基线就严重漂移导致阈值失效。这是因为金属电极与水体发生了电化学反应产生了极化电压。解决方案改用交流激励法。我不再直接测量电极间的直流/低频电压而是通过MCU的一个引脚向其中一个电极注入一个微弱的、固定频率如1kHz的正弦波小电流。然后在另一电极测量同频信号的幅值变化。水体电阻的变化由电鱼机强电场引起会调制这个1kHz信号的强度。这样检测的信号本身就是交流的完美避开了电极极化问题。这相当于把传感器从“直流电压表”模式改成了“交流阻抗分析”模式。坑二水体电导率变化。不同河道、不同季节、甚至不同天气雨后水的电导率差异很大。固定的检测阈值会失灵。解决方案引入自适应阈值。系统每隔一段时间如1小时自动进行一次背景噪声测量重新计算当前水域的噪声本底并动态更新触发阈值。同时将电导率作为一个环境参数上报供后台分析参考。5.2 环境干扰的“花样百出”坑三行船马达干扰。摩托艇的舷外机点火系统和电机会产生强烈的电磁脉冲和水中电流特征与电鱼信号有部分重叠。解决方案增加脉冲形状分析。电鱼脉冲通常更“干净”上升沿和下降沿很陡。而马达干扰的脉冲往往带有“毛刺”和后续振荡。我在算法里加入了脉冲波形相似度匹配与一个标准的电鱼脉冲模板进行比较。同时结合GPS位置判断如果设备检测到自身在快速移动可能是安装在执法船上则自动降低灵敏度或进入特定模式。坑四雷雨天气。远处的雷电会在水中感应出巨大的电流可能瞬间灌爆前端放大器。解决方案硬件上已做防雷。软件上增加一个“极端事件滤波器”。如果检测到信号幅值在极短时间内微秒级飙升到接近电源电压的水平则判定为雷击等瞬态高压事件软件直接丢弃这段数据并让前端电路有一个短暂的恢复时间。5.3 功耗与稳定的“持久战”坑五太阳能供电不足。连续阴雨天导致电池电量持续下降。解决方案实现多级功耗管理。根据电池电压和天气历史数据简单通过太阳能板充电电流判断动态调整系统工作模式模式A充足全功能运行采样率1kHz实时分析。模式B一般降低采样率至500Hz延长数据分析间隔。模式C匮乏进入深度睡眠仅每10分钟唤醒一次采集少量数据判断环境除非检测到强烈信号否则不上报。优化代码将FFT运算等耗时操作放在RAM中执行并充分利用MCU的低功耗休眠模式在采样间隔让大部分外设和核心进入休眠。6. 系统集成与未来可扩展性思考经过多次迭代单个的报警终端已经比较稳定。但要形成一个有效的监管网络还需要后台系统和更多扩展功能。简易云平台与报警推送我用Python Flask搭建了一个简单的后端服务器接收设备上报的数据存入数据库如SQLite或MySQL。当收到“高置信度电鱼事件”报警时服务器会通过钉钉机器人或短信API将报警信息包含时间、精确地图位置链接、信号强度实时推送到预设的执法队员或巡河员的手机上。他们可以第一时间查看并前往处置。电子地图可视化利用百度地图或高德地图的JS API在网页后台展示所有部署设备的位置、状态在线/离线/电量、以及历史报警事件分布。形成一张“河道监控电子网”。可扩展方向图像二次验证在报警终端增加一个低功耗摄像头如带红外夜视功能。当声学/电学传感器触发报警后可以自动唤醒摄像头抓拍1-2张现场照片或一段短视频通过4G网络回传。这能为执法提供更直观的证据进一步降低误报。难点在于图像识别算法的嵌入式部署和功耗控制。声学威慑终端集成一个防水喇叭。在确认报警后除了远程通知还可以现场播放预录的警告语音如“您已进入监控区域非法电鱼行为已被记录请立即停止”起到震慑和阻止作用。组网与协同在一条长河道上部署多个终端它们之间可以通过LoRa等远距离低功耗通信技术自组网。当一个终端检测到信号可以通知上下游的终端同时进入警戒状态追踪电鱼船的移动轨迹。水质关联监测电鱼不仅伤害鱼类强烈的电流也会杀死水中的浮游生物、水生昆虫等破坏整个水生生态链并可能短期内改变局部水质。可以集成一些基础的水质传感器pH、溶解氧、电导率在电鱼事件前后记录水质变化形成生态影响评估的数据支撑。这个项目从构思到实现花了近半年的业余时间。它不仅仅是一个电子制作更是一次将工程技术应用于具体生态保护问题的尝试。过程中最大的感触是从实验室到真实野外环境中间隔着一道巨大的“可靠性鸿沟”。温度、湿度、腐蚀、生物附着、不可预知的干扰……每一个因素都可能让精心设计的系统失灵。解决这些问题没有教科书式的答案全靠不断的测试、观察、分析和迭代。我希望这个分享能为同样关心环境、热爱技术的朋友提供一个可行的思路。也许它的设计还不够完美但至少迈出了从“看到问题”到“动手解决”的一步。保护鱼类生态需要的不仅仅是口号更需要这样一点点切实可行的技术力量。如果你有更好的想法或者在实际部署中遇到了新问题欢迎一起交流探讨。毕竟让技术变得有温度才是我们工程师最大的乐趣所在。