本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于Particle Boron的太阳能蜂窝气象站

发布时间:2022-07-30
分享到:

基于Particle Boron的太阳能蜂窝气象站

发布时间:2022-07-30
分享到:

该项目使用 ThingSpeak、Particle 和 Sentient Things IoT 节点测量远程位置的风、雨、温度、湿度和光线。

该气象站提供以下功能:

  • 无电地点的可选太阳能
  • 基于Sentient Things 物联网节点的易于重复和可维护的包装和电子产品
  • 更新固件,带有微型 SD 卡数据记录、数据存储和转发以克服通信中断,以及可选的自动 ThingSpeak 频道创建

第 1 步 - 将天气和水平适配器和硼插入物联网节点
项目的第一步是将Sentient Things Weather and Level Adapter和Particle Boron LTE (或类似的基于 Feather 的设备)插入 Sentient Things IoT 节点上的Adafruit Feather兼容标头,如下所示:

Sentient Things 物联网节点是一款通用板,带有兼容 Adafruit 的标头,旨在成为各种物联网项目的基础。它带有铰链式防水外壳,并且该板包括以下功能:

  1. 作为 Adafruit Feather 标头的超级集的可扩展标头
  2. 带锂聚合物电池充电器的太阳能或市电
  3. 可选 3AA/A 二次电池
  4. 带有超级电容备份的实时时钟和日历
  5. 实时时钟电源切换能力 - 即时钟可以像深度睡眠模式一样关闭电子设备,但功耗更低
  6. 模拟看门狗定时器
  7. 256kbit FRAM 内存
  8. 微型 SD 卡插槽
  9. 三个公开 GPIO、串行和 I2C 的 I/O 接头(可以通过附加适配器添加更多)

最重要的是,为了让您的选择保持开放,它不包括微控制器。几乎任何与 Feather 封装兼容的微控制器都可以工作。该项目使用 Particle Boron LTE,但也可以使用各种替代设备,例如Adafruit HUZZAH32 。如果您碰巧有粒子光子或电子,您也可以将它们与转换为羽毛足迹的适配器一起使用。

第 2 步 - 将温度和湿度传感器安装在太阳辐射防护罩中
将Sentient Things AM2315 温湿度传感器组装到太阳辐射防护罩中。请注意,如果您已经有 AM2315 传感器,则可以使用它并按照下面描述的引脚分配添加您自己的 RJ45 连接器:

推荐的太阳辐射防护罩非常适合 AM2315 传感器,如下所示,但其他防护罩也可以使用。

第 3 步 - 将传感器插入物联网节点
将雨和风天气计、AM2315 温度和湿度传感器和TSL2591 户外光传感器 插入 Sentient Things 物联网节点和天气和水平适配器连接器。AM2315 可以插入任何一个 I/O 连接器,因为它们都包含 I2C 总线。Wind 和 Rain RJ11 连接器标记在 Weather and Level Adapter 和Voltaic Systems 6V 太阳能电池板上,带延长线插入 6V 连接器。板上标有 6V 太阳能极性。还记得将 FAT 格式的 micro SD 卡插入板上的 micro SD 插槽,以便天气数据也可以保存在本地。如图所示,将电缆穿过电缆密封套。

注意:天气和液位适配器包括一个 MPL3115A2 压力和高度传感器,因此不要使压盖完全密封,以使外壳内的压力与外部压力相等。最后将外壳安装到外面时,确保压盖朝下,以防止水泄漏到外壳中。

第 4 步 - 创建 ThingSpeak 和 Particle 帐户并注册您的设备
如果您还没有,请创建一个ThingSpeak和一个Particle帐户。ThingSpeak 为非商业用途提供免费帐户,Particle 也提供免费服务级别。

ThingSpeak 将用于收集、显示和分析云中的天气数据,Particle 提供设备硬件、固件和设备连接。Particle 还提供 Webhooks 云服务(如下所述),用于最小化数据流量。

按照Particle 快速入门指南设置您的 Particle 设备(将其与您的 Particle 帐户关联并在适用时设置 WiFi)。Particle 为设备设置提供了一个方便的 Android 或 iOS 应用程序。如果您使用的是像 Boron LTE 这样的蜂窝设备,您还需要按照 Particle 的说明注册您的 SIM 卡。

第 5 步 - 将 Webhooks 添加到您的 Particle 帐户
ThingSpeak 提供 REST 和 MQTT API 来将数据发送到 ThingSpeak。ThingSpeak 还提供了一个 Particle/Arduino 兼容库,以便于使用 API。对于通过 WiFi 或以太网连接且不收取​​数据费用的设备而言,该库是一个绝佳选择。但是,在蜂窝网络的情况下,最好不要直接使用 REST,从而最大限度地减少数据流量。最好的方法之一是使用 Particle 的(低开销)COAP 协议将数据发送到 Particle 服务器,并让 Particle 服务器通过 REST (http) 将数据中继到 ThingSpeak。这是使用Particle Webhooks完成的。

Sentient Things 固件使用下面代码部分中列出的 Particle Webhook。登录到您的 Particle 帐户控制台并通过将下面的 JSON 代码粘贴到自定义模板中并保存来在集成下创建三个 Webhook。

注意:对于创建和更新 ThingSpeak 频道的 Webhook,您需要将 XXXXXXXXXXXXXXXX 替换为您在 ThingSpeak 上的帐户配置文件下列出的 16 个字符的 ThingSpeak 用户 API 密钥。

第 6 步:对您的粒子设备进行编程并进行测试
下面列出的 Weather 固件用于对您的 Particle 设备进行编程。如果您熟悉基于 Visual Studio Code 的桌面开发环境,这可以使用Particle Web IDE或使用Particle Workbench来完成。您可以将以下代码复制并粘贴到 Particle Web IDE 上的新项目中,或者只需点击此链接即可获得固件的共享版本。

您可以通过无线方式对您的设备进行编程或刷新(以使用数据为代价),或者您可以按照 Particle 的说明在本地连接到您的计算机以避免蜂窝数据费用。

将您的设备插入物联网节点(如果尚未安装)并将物联网节点上的 POWER 开关转到 FBAT 以向 Particle 设备供电。当您的固件第一次使用插入物联网节点的 Particle 设备运行时,它会检测到这是它第一次运行(通过在 FRAM 中查找“幻数”)并使用 Particle Webhooks 创建一个新的 ThingSpeak 通道你之前创建的。当您访问 ThingSpeak 时,您应该会看到一个新创建的频道,如下所示:

固件将从 ThingSpeak 发回的通道号和通道读取和写入密钥保存在 FRAM 中,以便将来写入创建的通道。

随着固件的运行,您应该会看到每分钟都会将天气数据发布到 ThingSpeak。

固件会打印串行调试消息,因此如果您遇到问题,第一步是将 Particle 设备的 USB 输出连接到您的计算机并监控串行输出。如果您的计算机上安装了Particle CLI ,您将看到 Particle 设备作为 COM 端口。粒子 CLI 命令:

particle serial monitor --follow

是连接和查看 Particle 设备的串行调试输出的便捷方式。

请注意靠近代码顶部的以下代码段:

//********CHANGE BELOW AS NEEDED**************
// Set to true and enter TS channel ID and keys AND change firstRunTest to use an existing TS channel
// Set to false if you wish to create a new TS channel the first time the code runs
bool useManualTSChannel = false;
const char *manualTSWriteKey = "XXXXXXXXXXXXXXXX";
const char *manualTSReadKey = "XXXXXXXXXXXXXXXX";
const int manualTSChannel = 895141;
// Change this value to force hard reset and clearing of FRAM when Flashing
// You have to change this value (if you have flashed before) for the TS channel to change
const int firstRunTest = 1122124;
//********CHANGE ABOVE AS NEEDED**************

你可以改变

bool useManualTSChannel = false;

bool useManualTSChannel = true;

并添加您自己的 ThingSpeak 密钥和频道号以使用现有频道。

注意:还需要更改“magic number”

const int firstRunTest = 1122124;

设置为不同的值,以便固件检测到它首次运行以创建新通道或使用现有通道。

第 7 步:安装您的气象站并分析数据
气象站风速计最好安装在远离地面高的建筑物的地方。选项包括建造自己的桅杆或使用三脚架将仪表和其余传感器安装在屋顶上。

ThingSpeak 在网络上以实时图表显示您的天气数据方面做得非常出色。也可以使用 MATLAB 分析和显示您的数据。

访问MathWorks 的 ThingSpeak 气象站进行现场演示:

如果您对此项目有任何想法、意见或问题,请在下方留言。

以上内容翻译自网络,原作者:Robert Mawrey,如涉及侵权,可联系删除。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论