夜雨聆风学习资料网

ARTICLE · 1329757

中鱼了,APP 才响:一个钓鱼佬给自己做的远程守竿报警器

中鱼了,APP 才响:一个钓鱼佬给自己做的远程守竿报警器

硬件自制 · 物联网项目实录

广东的太阳有多毒,钓过的人才知道。这个项目只解决一个问题——人在家坐着,竿在岸边守,中鱼了手机喊我。

作者 | LowHuang

一、先说为什么做这个东西

我是钓鱼佬,主攻海竿。每次出钓的流程都一样:打窝、上饵、抛竿,然后就是守。守四个小时,鱼口来没来不知道,人先被晒脱一层皮。

后来我冒出一个想法:海竿钓法本质就是"守株待兔",竿稍动了、铃铛响了,人跑过去起鱼就行。那这个"守"的环节,能不能交给机器?

我去网上找了一圈,有类似思路的产品,但都偏笨重,装在竿上累赘,逻辑也不合我的用法。索性自己动手,前后折腾了半年,做出了这套东西:智能鱼竿报警器。

二、判鱼口的逻辑:不猜,让数据说话

方案的核心是传感器选型和报警判据。

鱼竿竿稍在中鱼瞬间的物理特征是两件事同时发生:弯曲角度突变,伴随一次加速度冲击。单看任何一个都会误报——风吹会晃,收线会有加速度,但真正的咬口是两者叠加,而且不是一闪而过。

所以设备端的判据写成这样:

l陀螺仪传感器实时检测竿稍姿态;

l弯曲度和加速度同时达到限值;

l并且重复 2 次以上,才向 APP 发出中鱼报告。

两次确认,滤掉了绝大多数假信号。设备装好后,在 APP 端发一次校正数据,把当前悬垂状态归零作为基准,之后设备持续上报状态。

三、一个绕不开的坑:OneNET 不能主动推送

架构上我踩了最花时间的一坑,写出来给同样想做物联网项目的朋友参考。

我的框图里有三个角色:设备、手机 APP、云服务。云服务用了两个——OneNET 做设备接入,阿里云做自有服务。

问题在于:OneNET 平台不能主动向 APP 端推数据,只能被动接受查询。也就是说鱼咬钩了,OneNET 知道,但 APP 不知道,除非 APP 不停地去问。

我的解法是加一台阿里云上的私有服务,它只干一件事:不停地轮询 OneNET 的数据,一旦发现报警数据,立刻下发给 APP。

等于在"只能等电话"的平台前面,加了一个专职盯屏幕的秘书。结构简单,但把实时性补齐了。

图 1 · 系统方案框图:设备 ↔ OneNET + 阿里云 ↔ 手机 APP

四、硬件:一块 68mm 的板子

主控用 STM32F1 系列,姿态检测用 MPU6050,整机做在一块 68.0mm × 53.3mm 的板子上。带充电管理配18650锂电池与和太阳能充电

供电部分单独设计了电池管理:分压电阻采样电池电压,N-MOS 控制采样回路的通断——采完就断,不让分压电阻一直漏电。这对一个要挂在鱼竿边晒太阳的设备来说,是续航的基本盘。

图 2 · PCB 设计图,板框 68.0mm × 53.3mm

五、固件:采用STM32+4G模组(带AT固件)

固件工程里能看到这个项目的性格。以 battery.c 为例,一套电池管理被拆得明明白白:

l3.3V 的系统直接量 4.2V 电池读数不准,所以采样前先用 GPIO 切换采样回路的开关状态,再等待约 180ms 让电路建立稳定后才读数;

l电量指示灯共用 3.3V、串 2.2K 电阻限流,低电平点亮,切换输出前先把引脚拉高,避免上电瞬间闪一下;

l

图 3 · 固件工程结构与 battery.c 电源管理代码

六、APP:四个页面,各干各的事

手机端是一套 React Native(Expo)工程,底部四个 Tab:实时监控、潮汐预报、报警记录、设备设置,后端接 Supabase 和自有云服务。

图 4 · APP 工程代码:四个 Tab 的路由定义

实时监控是主页面:鱼竿阵列状态、每根竿的实时倾角、报警灵敏度、校准状态、电量。界面上能看到"基准校准成功 · 电量已同步"这样的反馈条——校正完成后,硬件基准已归零,电量也顺手同步回来了。

报警记录做了完整的事件溯源:按鱼竿筛选、按日期筛选,每条记录带触发倾角、触发时间和数据通道标注(OneNET 直连上报 / 阿里云实时推送),最大触发倾角 85.7° 这种数字直接列在统计栏里——那条就是真正的大弯弓。

图 5 · APP 实时监控页与中鱼事件记录页(界面截图)

潮汐预报是给海钓加的分:定位到珠海,周边 56 个海钓水域按距离排序,每个点位给出转流时间、潮水高度、农历活汛死汛,还有"一键设为珠海""钓鱼模式"这种快捷操作。查潮汐不用再切别的 APP。

设备设置管理多竿:每根竿有序号、设备 ID、数据流,灵敏度 30° 是下发给硬件的阈值,改完一键"保存并下发给所有鱼竿",报警响应方式可选声音与振动 / 仅声音 / 仅振动。

图 6 · APP 潮汐预报页与系统及设备管理页(界面截图)

七、写在最后

这个项目没有黑科技,用的都是成熟的料:STM32、MPU6050、OneNET、阿里云、React Native。它能跑起来,靠的是把每个环节的细节抠完然后连起来——报警判据要两次确认,电源采样要等 180ms,OneNET 不推数据就自己补一个轮询服务。

半年时间,换来的是以后出钓可以这样说:竿交给你,人我带走了。

工具的意义不是炫技,是把人从"守"里面解放出来——钓鱼佬的时间,应该花在挑钓位和等口上,不是花在晒太阳上。

好了酱,有想要的可以给LowHuang留言,整套方案资料都可以共享

(文中 PCB、代码与 APP 界面均为项目实拍/实测截图。)

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料