第一次在 V2EX 发文,希望大家多多关照。
今年三月份的时候做了个地震仪,对标国外的 Raspberry Shake ,拿去参加比赛过后拿了个国一的奖,最近决定把系统开源出来( MIT 协议)。
整套监测系统分上位机和下位机,下位机是在 PlatformIO 上用 Arduino 框架开发的,可以直接在 STM32 、ESP32 和 Arduino 等各种单片机上跑起来;上位机是 B/S 架构的软件,后端用 Go + Gin 写的,前端用的是 TypeScript + React + Tailwind ,上下位机之间用的串口通讯
因为上位机软件是 Go 写的,所以很轻易就可以在各种平台上部署,比如各种吃灰的开发板(树莓派香澄派 RockPi ),矿渣盒子( N1 T1 玩客云),Windows 服务器,甚至是路由器
项目的亮点和一些优势:
- 传感器方面,使用的是地震检波器,比网上现有的大多数 MPU6050 方案灵敏
- 上下位机可以用无线传输,下位机摆放位置比较灵活,不受空间限制
- 硬件不复杂,材料很容易买到,所以也很轻易就可以搭建起来
- 这个项目直接使用数字滤波器对地震波低频进行补偿
- 网页端支持移动端,提供 I18N 支持,可选多种震度标准
- 网页提供实时波形图,支持 MiniSEED (按天)和 SAC (按秒)格式数据导
- 可以根据现有地震事件反查测到的波形(提供多个地震事件数据源)
- 可以搭配 RingServer 作为 SeedLink 服务器(后续会用 Go 重新实现这个协议)
- 提供后端接口文档( Swagger ),支持二次开发
- ... 还有一些亮点,不一一列举了
这个项目从完工到现在已经监测到十多次国内外地震(中间还清过几次数据库,其实应该不止十多次),有两个示例站点可以参考(都是内网穿透,不太稳定,如果打不开可以等等再试)
由于平时比较忙(手上还有好几个项目没做完),所以比较详细的使用文档还没得及写,简单的搭建流程和注意事项可以先参考这篇博客
这个项目现在还存在一些问题(文章里面也有写,这里就不赘述了),希望有 V 站的大佬能够提提建议或者帮忙改进,最后贴出项目上下位机的两个 Repos ,欢迎 Star 和 Fork



