智能浮标 - [摘要]
组件和用品
| × | 1 | ||||
| × | 1 |
关于这个项目
智能浮标摘要博客帖子
大家好!这是我们智能浮标项目的简要(ish)总结。我们会将技术构建分解为单独的帖子,以解释:电子、3D 打印和仪表板。
你会 需要
对于完整的智能浮标构建,您需要很多东西。我们将在相关教程中对构建的每个阶段所需的特定材料进行细分,但对于某些情况,以下是完整列表:
- Arduino Nano - 亚马逊
- Raspberry Pi 零 - 亚马逊
- 电池 (18650) - 亚马逊
- 太阳能电池板 - 亚马逊
- 阻流二极管 - 亚马逊
- 充电控制器 - 亚马逊
- 降压助推器 - 亚马逊
- GPS 模块 - 亚马逊
- GY-86(加速度计、陀螺仪、气压计、指南针)-亚马逊
- 水温传感器 - 亚马逊
- 电源监控模块 - 亚马逊
- 实时时钟模块 - 亚马逊
- 无线电模块 - 亚马逊
- i^2c 多路复用器模块 - 亚马逊
- 3D 打印机 - 亚马逊
- PETG 长丝 - 亚马逊
- 环氧树脂 - 亚马逊
- 底漆喷漆 - 亚马逊
- 绳索 - 亚马逊
- 浮动 - 亚马逊
- 胶水 - 亚马逊
所有使用的代码都可以在 https://gitlab.com/t3chflicks/smart-buoy 找到。
它有什么作用?
智能浮标上的传感器使其能够测量:波浪高度、波浪周期、波浪功率、水温、气温、气压、电压、当前使用情况和 GPS 位置。在理想的世界中,它还会测量波的方向——根据它能够进行的测量,我们非常接近让它工作。然而,结果证明它非常复杂,它实际上是实际研究界的一个大问题。如果有人可以帮助我们并提出一种有效的方法来进行波向测量,请告诉我们——我们很想知道如何让它发挥作用!
浮标收集的所有数据都通过无线电发送到一个基站,它是一个树莓派。我们使用 Vue JS 制作了一个仪表板来显示它们。
构建
浮标套管
这个浮标可能是我们迄今为止打印过的最困难的东西。需要考虑的事情太多了,因为它将在海中,暴露在各种元素和大量阳光下。我们将在 Smart Buoy 系列的另一集中对此进行更多讨论。简而言之:我们将一个近乎空心的球体打印成两半。上半部分有太阳能电池板的插槽和无线电天线穿过的孔。下半部分有一个供温度传感器穿过的孔和一个用于系绳的把手。
用PETG长丝打印浮标后,我们打磨它,喷上一些填料底漆,然后涂上几层环氧树脂。
外壳准备完成后,我们将所有电子设备放入内部,然后使用胶枪密封水温传感器、无线电天线和太阳能电池板。最后,我们用 StixAll 胶水/粘合剂(超级飞机胶水)将两半密封起来。
然后我们希望它是防水的……
图> 图> 图> 图>浮标电子
- 浮标全电路图
浮标上有很多传感器,我们在相关教程中详细介绍了这些传感器。由于这是一个摘要,我们将尽量保持内容丰富,但要简短!
浮标由一个 18650 电池供电,该电池由四个 5V 太阳能电池板充电。然而,只有实时时钟持续供电。浮标使用实时时钟的输出引脚来控制晶体管,从而允许电源进入系统的其余部分。当系统打开时,它首先从传感器获取测量值 - 包括来自电源监控模块的电压值。功率监视器模块给出的值决定了系统在获取下一组读数之前休眠的时间。设置了这个时间的闹钟,然后系统自动关闭!
系统本身是许多传感器和连接到 Arduino 的无线电模块。 GY-86 模块、RealTimeClock (RTC)、电源监控模块和 I2C 多路复用器都使用 I2C 与 Arduino 通信。我们需要 I2C 多路复用器,因为我们使用的 GY-86 和 RTC 模块具有相同的地址。多路复用器模块使您可以轻松进行通信,尽管它可能有点过分。
无线电模块通过 SPI 进行通信。原本我们也有一个 SD 卡模块,但是由于 SD 库的大小,我们决定报废它。
看一下代码。您可能有一些问题——也可能是挥之不去的疑虑——我们很高兴听到这些问题。深入的教程包括代码解释,所以希望他们能让它更清楚一些!
我们尝试在逻辑上分离代码文件并使用一个主文件来包含它们 - 这种方法效果很好。
图>
基站电子设备
- pi 电路图
基站是使用带有无线电模块的 Raspberry Pi Zero 制成的。我们从 https://www.thingiverse.com/thing:1595429 获得了外壳。你太棒了,非常感谢!
在 Arduino 上运行代码后,通过运行 receive.py 代码在 Raspberry Pi 上获得测量值非常简单。
T3ch Flicks 团队的一名成员是最近学习 Vue JS 的 Web 开发人员。当我们决定需要一个仪表板时,他们非常兴奋,并通过制作这个非常合法的仪表板让我们大吃一惊。
仪表板
向您展示我们如何制作整个破折号会有点像奥德赛,因为这是一个相当长且复杂的项目。如果有人想知道我们是如何做到的,请告诉我们 - T3ch Flicks 的常驻 Web 开发人员将非常乐意为此提供教程!
将这些文件放在 Raspberry Pi 上后,您应该能够运行服务器并查看包含数据的仪表板。出于开发原因,并查看如果由良好的常规数据提供的仪表板会是什么样子,我们在服务器中添加了一个假数据生成器。如果你想看看当你有更多数据时它的样子,运行它。
我们还在后面的一集中详细解释了这一点。
图>
版本 2??
问题
这个项目绝对不是完美的——我们更喜欢把它看作是一个原型/概念证明。尽管原型在基本层面上工作:它漂浮,进行测量并能够传输它们,但我们已经学到了很多东西,并且会在第二版中进行更改:
- 我们最大的问题是在将浮标粘上后无法更改其代码。这确实是一个疏忽,可以通过用橡胶密封件覆盖的 USB 端口非常有效地解决。然而,这会给 3D 打印防水过程增加另一层复杂性!
- 我们使用的算法远非完美。我们确定波浪特性的方法非常粗糙,最终我们花了大量时间阅读数学,以结合来自磁力计、加速度计和陀螺仪的传感器数据。最后它并不是很有帮助,但我们确实找到了这个有趣的视频。如果有人理解这一点并愿意提供帮助,我们认为我们可以使这些测量更加准确。
- 一些传感器的行为有点奇怪。水温传感器是一个特别狡猾的传感器 - 有时与实际温度相差近 10 度。造成这种情况的原因可能只是传感器坏了,或者有什么东西在加热...
改进
Arduino 很好,但如前所述,由于内存问题,我们不得不报废 SD 卡模块(如果无法发送无线电消息,它应该是数据备份)。我们可以将其更改为更强大的微控制器,例如 Arduino Mega 或 Teensy,或者仅使用另一个 Raspberry Pi 零。但是,这会增加成本和功耗。
我们使用的无线电模块有几公里的有限范围,直接视线 https://www.youtube.com/watch?v=57pdX6b0sfw 。然而,如果岛上有(非常)许多浮标,我们可以形成一个网状网络,例如 https://www.youtube.com/watch?v=xb7psLhKTMA 。数据的远程传输有很多可能性,包括lora、grsm。如果我们能够使用其中之一,也许可以在岛上建立一个网状网络!
使用我们的智能浮标进行研究
我们在南加勒比海的一个小岛格林纳达建造并发射了浮标。当我们在那里时,我们与格林纳达政府进行了交谈,他们说像我们创造的那样的智能浮标将有助于提供水特征的定量测量。自动测量将减少一些人力和人为错误,并为了解不断变化的海岸提供有用的背景。政府还建议进行风测量对于他们的目的来说也是一个有用的功能。不知道我们将如何管理那个,所以如果有人有任何想法......一个重要的警告是,虽然这是沿海研究的一个非常激动人心的时刻,特别是涉及技术,但要完全采用它还有很长的路要走.
感谢您阅读智能浮标系列总结博文。如果您还没有,请在我们的 YouTube 频道上观看此视频。在该系列的第一部分中,我们将向您展示我们如何进行波和温度测量。如果您喜欢我们的工作并希望帮助我们做更多事情,如果您考虑在 Patreon 上赞助我们,那就太棒了。非常感谢 Giacomo,他是我们的第一个 Patreon 赞助商!
查看下一篇博客文章,我们将展示我们如何进行波和温度测量 https://create.arduino.cc/projecthub/t3chflicks/smart-buoy-making-wave-and-temperature-measurements-257ca1
代码
智能浮标回购
https://gitlab.com/t3chflicks/smart-buoy
示意图
制造工艺