×

Chaac气象站开源项目

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-27

王兰

分享资料个

描述

注意:这最初于 2019 年 2 月发布在我的网站上!

我不确定我是什么时候开始对建造气象站感兴趣的。至少在一两年前……我记得在SwitchDoc 实验室页面上看到Project Curacao 2的帖子,并认为构建类似的东西会很有趣,但集成度更高。我也从未从事过“户外”项目,想了解更多关于防风雨、太阳能充电等的知识……(我最终真正想做的是建造一个超声波风速计,但我告诉自己我不会从那开始兔子洞,直到我有一个完全工作的气象站。)

第一个目标是建立一个可以测量以下内容的气象站:

  • 风速和风向
  • 雨量
  • 气压
  • 温度
  • 湿度
  • 光照水平

第一次尝试

早些时候,我研究了将 LoRa 用于无线电通信,例如 Curacao 项目。看了一段时间后,我最初决定反对它,因为让某些东西工作的进入门槛要高得多。不过,我将来可能会切换到它!

由于我一直在其他项目中使用 BLE 设备,所以我制作的第一块板使用了我熟悉的 NRF52。该设备工作正常,但它从未通过我的工作台。范围不是很大(呃!),我对这个项目失去了一段时间的兴趣。

第一个 BLE 板

第二次尝试

在将近一年没有从事这个项目之后,我告诉自己我会在寒假期间得到一些工作。我决定从一开始就不要过度优化,只是让一些工作正常。外部。

我不知道为什么我决定最初必须有 GPS。很可能是因为它很有趣,而且这些项目实际上只是学习新事物的借口,而且我之前没有在嵌入式系统中做过 GPS。无论哪种方式,这让我选择了STM32 NUCLEO-L476RG开发板开始。它有大量的 UART 接口(无线电、gps、调试)并且功耗相当低。它还具有原生MBED支持,这是我想要使用的另一个工具(并且会加快开发速度)。

对于收音机,我决定使用Xbee收音机,因为我可以依靠最终成为无线串行端口的东西生存下来。同样,我最终可能会使用其他东西,但这让我继续前进并取得进步。

Nucleo Weather Breakout v0.1

在玩了 Nucleo 板并弄乱了一堆电缆之后,我制作了一个带有 Xbee 接头和 RJ11/14 插头的 PCB 分线板,用于风雨传感器组件,以及一些 I2C、UART 和模拟引脚断开。

 

天气突围 v0.1

 
pYYBAGNsUSGAF6S_AADcN2bpXDU591.jpg
 

这块板让我做了大量的固件工作,并大致了解了设备的整体功耗。

第一个外壳

因为我想尽快在户外做点什么,我最终得到了一块巨大的太阳能电池板,里面有一块巨大的电池和现成的充电器/调节器。这非常接近可能的最低效率设置,但它工作并开始在外部测量数据。

我找到了一个巨大的Bud Industries NBF-32026 ABS 外壳用作外壳,并为所有电缆找到了一些便宜的电缆密封套。如果没有某种我没有的安装板,就没有简单的方法将所有电子设备安装到盒子上,所以我最终使用了盒子的侧面和拉链。

第一个外壳内部

 
poYBAGNsUSOADm1oAADR9kAWJFk201.jpg
 

关于在塑料上使用阶梯钻头,所以我决定试一试。阶梯钻头效果很好!我之前尝试过使用非常宽的钻头,但没有成功。

 
 

阶梯钻头

 
pYYBAGNsUSWAPw_yAAA4FnYsnEo366.jpg
 

不幸的是,在我现在住的地方,冬天的天井里没有阳光直射。这意味着即使使用巨大的面板,我仍然必须每周左右手动为电池充电。不管怎样,它让我做固件和后端开发(计算机接收和保存数据)。

第一个室外设置

 
pYYBAGNsUSiAaOh9AAE7F-z8ztA515.jpg
 

Nucleo Weather Breakout v0.2

在我验证了大部分固件后,我决定做第二个分线板。这个有一个内置的低功率 GPS 和天线、BMP280 压力传感器,以及更少的随机接头和一个新的双 RJ11/14 连接器。

天气突围 v0.2

 
poYBAGNsUSuAQLvaAADw6fEszGQ176.jpg
 

一旦第二块板到达并开始工作(它需要几根电线才能像往常一样工作),它很快就到外面进行长期测试。总的来说,我认为它在被新模型取代之前已经在外面呆了几个星期。

第一个外壳内部(带分线 v0.2)

 
pYYBAGNsUS2AEpVkAACg1oAH94c160.jpg
 

查克 v1.0

在玩过分线板之后,我决定是时候将它们全部集成到一个板上了。我把它命名为Chaac

这就是我遇到 MBED 问题的地方。为定制板制作板支持包 (BSP) 并非易事。另一个问题是我无法让低功耗模式正常工作。同时,我决定放弃 GPS,因为气象站不太可能在我不知情的情况下移动。有了新的要求,我最终切换到了基于STM32L432KC的开发板。

在 FW 方面,我决定回到我喜欢并使用过的mynewt OS 。移植 mynewt BSP 也并非易事,但我能够在几天内完成。使用 mynewt 还给了我使用mcuboot引导加载程序的好处,它可以让我通过 xbee 链接进行“简单”的固件更新。

这个新板有一个电池充电器和太阳能电池板输入(借自Adafruit 的太阳能充电器、STM32L432 微控制器、BMP280、风扇驱动器,以及用于外部温度/湿度和环境光传感器的输入。

查克 v1.0

 
poYBAGNsUTCARFuCAACpy5FmRiI922.jpg
 

与大多数新设计一样,我在第一个版本中犯了一些愚蠢的错误。Xbee 的待机引脚上没有下拉电阻,STM32 上有一个浮动的 boot0 引脚,电池充电器接线错误等。经过大量调试和一些返工,电路板工作得很好,去外面更换旧设置。

第二个外壳

在第二个外壳内

 
poYBAGNsUTSAHkCVAACh3eRk2M8359.jpg
 

现在设置更简单/更小,我需要一个更小的外壳。)我使用了相同的Bud Industries NBF -32202 Economy Box 、McMaster 电缆密封接头、导管、太阳能电池板的 RAM 支架等……

 

外面的第二个外壳

 
pYYBAGNsUTaACfBNAACQNNzXyAY459.jpg
 

为了将 Chaac v1.0 板安装到外壳上,我再次使用了一块带孔的纸板。它在短期内运作良好。在外面,我使用了一条 PVC 管和一个塑料杯来保护温度/湿度传感器免受雨水的影响,并使用一些保形涂层来使光传感器防水。

将保形涂层应用于光传感器

 
pYYBAGNsUTmADUIpAAActtlKraQ089.jpg
 

查克 v1.1

chaac 板的第二个修订版包括对 v1.0 中所有 bodge 线的修复。我移除了风扇驱动器和 gps 串行输入,因为我认为我永远不会使用它们,并将光传感器连接移动到底部以简化接线。

另一个新增功能是 MOSFET,可在不使用时断开风向和光传感器电源。这有助于在不进行测量时降低功耗。风向传感器只是一个电阻器(根据风向而变化,但不完全是电位器),所以它总是消耗功率,除非它被切断。

查克 v1.1

 
pYYBAGNsUTuAZaJGAACppe0pxaM376.jpg
 

第三个外壳

由于我有一个系统在外面工作,我决定组装第二个外壳。作为一个非常细心和注重细节的人,我在盒子的错误一侧钻了孔。由于太阳能电池板电缆很短,电缆密封套需要在靠近门铰链的盒子的顶部,而不是在底部……我用了一些大猩猩胶带来掩盖坏洞,希望它能挡住水。我还尝试了一种安装板的新方法:从一次性食品容器中取出一块便宜的塑料。

修补孔

 
poYBAGNsUT2ARnmDAAAsOy6U_dw959.jpg
 

塑料底座

 
pYYBAGNsUUCAXUefAAChsPekG0o134.jpg
 

查克 v1.2

电路板的最新版本增加了太阳能电池板电压监控、引导加载程序按钮,并将太阳能电池板和电池连接器移动到更好的位置。太阳能电池板电压可用于确定电池是否正在充电以及获得光照水平。我想看看单独的光照水平传感器是否值得。

查克 v1.2

 
poYBAGNsUUSADqt_AACzSNAoivA045.jpg
 

第四外壳

我把最后一个外壳放在一起。这个用一块木头做一个稍微好一点的背板,并有正确对齐的孔。

带有木制安装板的第四个外壳

 
pYYBAGNsUUiAQXdvAACVE92rGQw806.jpg
 

为什么这么多机箱?!你可能会问……当我探望父母时,这个人和我一起去了墨西哥。我爸爸和我把它安装在房子的屋顶上。气象站第一次可以清楚地看到天空:D。

墨西哥的最终设置

 
pYYBAGNsUUyATYCwAAD4f8DoCGI731.jpg
 

服务器/用户界面

为了从气象站获取数据,我设置了一个带有 Xbee 收音机的 Raspberry Pi。我编写了一个 python 脚本来解码天气数据包并将它们存储在 sqlite 数据库中。起初,查看数据的唯一方法是将其导出到 csv 文件中,因此我决定考虑编写一个 Web 界面来显示它。因为我不知道自己在做什么,所以我不得不学习诸如Flask BulmaPlot.ly 之类的东西

最后,我想出了一些看起来像这样的东西:

网页界面总结

 
poYBAGNsUVGAKLZ2AABhdydlvxo853.png
 

包含最新数据的“摘要”页面以及包含日/周/月数据的“绘图”页面。

Web UI 图 (1/2)

 
poYBAGNsUVSAHHh-AACsj0dhw5Q004.png
 

Web UI 图 (2/2)

 
pYYBAGNsUViAbZBrAACVn6HDlBs573.png
 

到目前为止,您需要与树莓派在同一个网络上才能查看数据,但我确实计划在某个时候将其公开可见。

下一步

在我继续之前,我要从项目中休息一下,做一些其他的事情。一旦我这样做了,这里有一些我想改进/做的事情:

  • Web UI 可以使用大量工作来使它看起来更好
  • 使用更小的电池和太阳能电池板(因此,外壳)
  • 使用来自各个气象站的数据制作一个公共 UI(我想做更多!)
  • 使用不同的收音机!
  • 制作一个超声波风速计:P
  • 还有很多东西……

这个项目我想分享的东西比我想在这篇文章中的要多,所以也许我会写一些跟进。我学到了很多并想分享的一些主题是:

  • 使用 MCUBoot 通过 xbee 链接进行无线固件更新
  • 功耗越来越低
  • Web ui 和数据库如何工作
  • 传感器的工作原理
  • 如何不制作外壳:P

如果这些听起来很有趣,请告诉我,我可以先尝试专注于这些!

更多信息

与我的大多数项目一样,所有源代码、原理图/PCB 文件等都可以在github上找到

推特

Facebook

领英

-------------------------------------------------- ------------------------------------------

注意:本部分最初于 2020 年 7 月在我的网站上发布

自从我写关于我的气象站项目以来,已经一年多了。从那以后发生了很多事情,所以我想我会发布更新。

pYYBAGNsUVuARUKGAAG6lnT55Ow178.png
查克 v2.0
 

从墨西哥回来后不久,我开始考虑下一个版本的董事会。我不想继续使用 XBee 无线电,所以我决定再次尝试蓝牙......用于蓝牙的LE 编码 PHY ,理论上可以为您提供更远的范围。使用第 2 版开发板,我能够让蓝牙正常工作并启动新的 NRF52

poYBAGNsUV6AG1YXAAFYL6qDoQE765.png
Chaac v3.0 基板
 
poYBAGNsUWKALE3IAAEM6tdP65M666.png
Chaac 无线电委员会
 
pYYBAGNsUWSAUlrFAAES5-OCOZM743.png
Chaac 无线电板底部
 

下一个版本 加入了一些我想尝试的新技术。主要目标是使外壳更小,整个系统更紧凑。我决定将项目分成两个独立的 PCB,这样我就可以在无线电部分使用稍贵的 4 层板,而在较大的基板上使用更便宜的 2 层板。这也让我可以尝试双面表面贴装焊接。我一直在使用模板和焊膏,但从未在双面板上做过

poYBAGNsUWmAI7R7AADNI4MvrWk922.png
Chaac Radio 底部模板夹具
 

我想尝试的最后一个新功能是不同的射频连接器。以前的电路板使用 RP-SMA 连接器,但我想尝试更紧凑的东西。由于插入周期数少,我决定不使用 u.FL 连接器,而是使用 MMCX 连接器。我学到的另一个有趣的话题是防水射频连接器。

poYBAGNsUW6AOxvKAAE7hO3508s589.png
Chaac v3.0 汇编
 

理论上,我可以用相同的基板测试不同版本的无线电/控制器板,但实际上,这个版本只是作为演示单元参加了几次会议。

pYYBAGNsUXGAXSokAACqf4tuCDU841.png
拆解 2019 上的 Chaac v3.0
 

实际上,我在 2019 年的CrowdSupply Teardown Conference上就这个问题进行了讨论每当在公共服务器中发出请求时,它将请求向下转发到相应的 Raspberry Pi。我不想让它全部基于云,所以数据总是存储在本地,即使互联网出现故障。这也避免了复杂的网络设置来打开防火墙中的端口,因为所有连接都通过公共服务器。

 

 

随着时间的流逝,我开始考虑对气象站进行新的升级。我决定摆脱两板解决方案并回到单板。这使得组装和保形涂层变得更加简单。我没有使用完全密封的外壳,而是开始研究开放式太阳辐射防护罩,例如 Ambient Weather SRS100LX。 这将摆脱昂贵的外部温度/湿度传感器,并允许将所有传感器安装在同一 PCB 上。我从BMP280温度和压力传感器切换到BME280温度、湿度和压力传感器。使用辐射防护罩还可以带来更好的温度读数,因为只要有气流,它在阳光下就不会变热。

poYBAGNsUXWAPdbwAAEzTcaeIGE542.png
SRS100LX 辐射防护罩
 

pYYBAGNsUXeAC_ndAAEqjrFu7ZY468.png
查克 v3.1
 

由于辐射屏蔽使整个电路板暴露在元素中,我开始再次研究保形涂层。我让新板在户外运行了一段时间,然后涂上涂层,看看在暴雨中它会得到多少水。我认为它实际上确实停止了一段时间,我不得不在回流炉中烘烤它才能让它回来。它也很快成为一些小动物的家……

poYBAGNsUXqAHYG1AAD2A7PYfg4277.png
Chaac v3.0 巢
 

pYYBAGNsUX6AdxsmAAEPj7DwlVI037.png
Chaac v3.0 蜘蛛
 

清洁并确保它再次工作后,我使用了MG 化学品 #422B硅胶保形涂层。由于传感器需要暴露,我在涂上涂层之前用 kapton 胶带将它们遮住。

poYBAGNsUZGAVBa4AAEgJ2o351Q629.png
保形涂层
 

时光飞逝。至此,距离我上次去墨西哥旅行已经过去了整整一年!在返回那里之前,我将一个新套件与 v3.1 板和辐射防护板放在一起。由于我父亲家已经有一个带有雨/风传感器的车站,所以我没有多带一个。为了获得更好的温度/湿度读数,我们决定将新的安装在房屋旁边的小巷中,那里风很大,而且大部分都被遮蔽。

poYBAGNsUZSACFsWAAEsJ2DuDts058.png
安装辐射防护罩
 
pYYBAGNsUZaAPb_3AABYGVVjH80515.png
新安装的Chaac v3.1
 

 

pYYBAGNsUZiAQ7ZeAAFVER_Wb3o091.png
新安装的Chaac v3.1
 

几天后,我们注意到下面的测量温度明显低于屋顶,这并不奇怪。另一个令人惊讶的事情是它能够从它的微型太阳能电池板获得足够的电力,即使大部分都被覆盖!这个新版本在功率方面效率更高。不幸的是,我从未真正实现过用于蓝牙的 LE 编码 PHY,因此无线电范围不是很好。我们不得不将接收器移到比以前更靠近气象站的位置。

poYBAGNsUZqAXeLNAACLpPxtJsg899.png
一年后雨量计
 

 

poYBAGNsUZ2ADZ2JAADS5DgCMaw137.png
一年后的风向标
 

当我拜访我的父母时,这也是查看旧气象站在阳光下一年后表现如何的好时机。它很脏,塑料上有很多污渍,但看起来还可以。和其他情况一样,一些小动物似乎来来去去,但密封的外壳做得很好。主板看起来和以前差不多。截至撰写本文时,它已经连续运行超过 505 天!

poYBAGNsUZ-ALjmSAAFnTkrEnvc783.png
1年后的外壳
 

 

poYBAGNsUaKAU7flAAFaA2qwVEo023.png
一年后的内部外壳
 

一两个月前,一场热带风暴靠近我父母的房子。几天来风很大,下着雨。不幸的是,BME280 传感器似乎已经吸收了一些水,因为它现在只报告 100% 的湿度。制造商提出了一些建议,例如在特定温度下烘烤,然后再补水,但没有奏效。结论是 BME280 不应该暴露在这些元素中,这实际上不适用于室外气象站。我开始四处寻找替代品,最终选择了Sensirion SHT31温度/湿度传感器。他们提供过滤膜防水和防尘等级 (IP67) 的选项,应该能够处理一些水滴。对于压力,我决定回到 BMP280,但在它周围盖了一层保护盖,以保护它免受水影响,同时允许精确的压力测量。

poYBAGNsUaSAHbluAAHczHmib0Y602.png
Chaac v4.0 前端
 

通过这次最新的重新设计,我进行了更多更改。首先,我决定不再害怕 LoRa,并安装了 LoRa 无线电模块。这将通过正确的固件,允许使用 LoRaWAN 和物联网进行独立操作。 它还将允许更长的范围,其 900MHz 频率较低,功耗略高。我也可以继续在我的 Raspberry Pi 点对点设置中使用它。

pYYBAGNsUaiALJkhAAE-ok1lfws634.png
Chaac v4.0 返回
 

下一个变化是去掉太阳能电池板和电池充电器。从类似的项目中,我估计我可以获得低几十微安甚至个位数微安的平均功耗。使用一些碱性 AA 电池或可充电 AA 电池,这些设备应该可以使用一年以上。这简化了电路并使安装更加简单,因为不需要阳光直射。最后的变化是将压力传感器和湿度传感器分开,并以某种方式将压力传感器与元件隔离开来。我有一些想法在我的脑海里蹦蹦跳跳,所以我必须尝试一些,看看有什么效果。AM2315 _我之前使用的传感器有一个非常好的网/膜,应该可以将其与水隔离,同时仍然可以准确测量湿度。事实证明,膜并不像我所怀疑的那样超级便宜。我还考虑过使用带有非常细网眼的塑料管来阻止水进入,但仍然可以进行适当的压力测量。

poYBAGNsUaqAJ-61AAHMN1BBWho704.png
测试可能的压力传感器防护罩
 

最后,我可能只是抛开我的 CAD 技能,然后制作一个 3D 打印的外壳,让温度/湿度传感器暴露在外,同时屏蔽大部分电路以及压力传感器。

这就是我现在所拥有的。与往常一样,所有设计文件都在 github 上。如果您有任何问题/意见,请随时给我发电子邮件或在 Twitter @alvaroprieto 上给我发消息。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !