0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于物联网的天气数据记录器

科技观察员 来源:Rajeev Piyare 作者:Rajeev Piyare 2022-08-24 14:53 次阅读

通过本文,你将了解如何使用 Conexio Stratus 套件和 Datacake 构建低成本(和低代码)天气数据记录器

背景

建筑物的温度读数对于供暖专家、社会房东甚至房主来说可能是一个主要问题,以确保房屋内的温度恒定且定期受控。适当管理的室内气候可以保证为用户提供舒适的环境并有助于节省能源。

本文将演示如何:

免费创建您自己的基于物联网的天气数据仪表板。

在 Datacake 上创建您的第一台设备,并通过 MQTT 代理将运行 ZephyrRTOS 的 Conexio Stratus 连接到 Datacake 平台。

组装所需的硬件

使用 Conexio Stratus 设备从 BME280 传感器获取重要的环境数据以及电池电压、LTE 信号强度、固件版本和设备 IMEI 等其他生命体征数据,并将其推送到云端。

从世界任何地方可视化和跟踪您的环境数据。

为什么选择蜂窝网络以及为什么选择 Conexio Stratus 套件?

Wi-Fi 服务可能不是最可靠的,在某些地方甚至不是用户的选择。例如,如果您想在农场中间监控和部署一个传感器设备,那里没有 WiFi,但您有良好的蜂窝网络覆盖。这就是蜂窝连接派上用场的地方,这也是我决定使用基于蜂窝的 Conexio Stratus 开发套件的原因。尽管还有许多其他基于蜂窝的物联网平台,但以下是 Conexio Stratus 脱颖而出的一些原因。

Conexio Stratus 开发套件使我们能够轻松地对 IoT 解决方案进行原型设计,因为它带有 500MB 的预付费数据和 10 年的全球蜂窝服务。不需要合同。

该开发套件支持 LTE-M 和 NB-IoT 协议,还集成了 GPS,无需购买和集成外部 GPS 模块。

它还具有板载环境传感器,特别是来自 ST micro 的 Sensirion Sht4x 温度和湿度传感器和 LIS2DH 加速度计。

最后但同样重要的是,该套件支持能量收集和太阳能电池充电。这是目前在许多物联网设备中找不到的缺失功能之一。

pYYBAGMFyn6ABQtiAALJaXsqCRo826.png

除了 Stratus 设备,我还使用了 Stratus 扩展板,它支持 Sparkful QWIIC 连接器、用于 Mikroe click 板的 Mikro 总线,以及用于连接外部传感器和执行器的 Grove I2C 连接器。使用此防护罩,我们连接了 Mikroe 的 BME280 天气点击板,用于测量温度、湿度和压力。这主要是为了演示无需焊接即可轻松地将第三方传感器模块连接到 Stratus 设备。

poYBAGMFynqAMGzlAALykbTNWwE604.png

无需外部MCU

与其他需要专用 MCU 来控制 GPS、传感器等其他外围设备的基于蜂窝的 IoT 设备不同,Conexio Stratus 无需外部 MCU。它简单地将主 MCU、单元和 GPS 模块组合在一个由 nRF9160 SiP 支持的微型外形中。nRF9160 包含一个仅用于应用的 Arm Cortex-M33 应用处理器、一个完整的 LTE 调制解调器、射频前端 (RFFE) 和一个电源管理系统,使其成为市场上最紧凑、最完整和最节能的蜂窝物联网解决方案。此外,无需外部 MCU、蜂窝或 GPS 模块,降低了设备集成成本和时间。

因此,让我们深入设置所需的软件和硬件配置。

组装硬件以进行初始固件测试

以下是我们使用过的所有硬件:

poYBAGMFynaAMuMWAAM-c0cGHYU879.png

对于初始测试,我们将主 Stratus 开发板和 Mikroe BME280 天气点击板插入 Stratus 防护板,如下所示。最终部署的完整硬件将在本文后面进行组装和展示。

pYYBAGMFynKACx8kAATXig5pLo4422.png

Datacake 注册和设置

在此处在 Datacake 平台上注册并创建用户帐户。您的前两个设备是免费的。

在通过 MQTT 存储任何测量读数之前,我们需要在 Datacake 平台上设置一个设备。注册和帐户激活后,前往 Datacake 工作区的车队视图。

poYBAGMFym6AXEdsAABtvjeRB0I164.png

点击右上角的添加设备,弹出如下弹窗。

pYYBAGMFymqAMDhbAAHkfPH4pVo817.png

在STEP 1中,选择设备类型为“ API ”,在 Datacake Product 下选择New Product 。然后在“产品名称”下为您的设备分配一个名称。在本教程中,我们将产品命名为“ Conexio Stratus ”。

poYBAGMFymaAbIQxAAFgCevDt-g349.png

在STEP 2中,您可以添加一个或多个 API 设备。接下来,分配设备名称并点击Next 。

pYYBAGMFyl2AYTekAAF7e4NFWL8974.png

最后,在STEP 3中,选择 Datacake 计划。要创建设备,必须选择付款计划。由于 Datacake 最多允许您免费创建两个设备,因此您可以选择“免费”计划并单击“添加 1 个设备”。

您的设备现在已经注册到 Datacake 平台,应该会出现在“ Fleet ”视图中的设备下。单击您注册的设备,它将带您进入其工作区。在STEP 2中,您可以添加一个或多个 API 设备。接下来,分配设备名称并点击Next 。

添加数据库字段

好的。此时,我们需要在设备的数据库中定义字段,这些字段将托管从 Stratus 设备通过 MQTT 发送的测量值。

poYBAGMFyliAGlXbAACHY5P8UD0206.png

在 Datacake 中,导航到“配置”选项卡并向下滚动到“字段”部分,然后单击“添加字段”按钮。

pYYBAGMFylSAWbDMAAAuRBdSWVw440.png

这将打开一个具有多种数据类型的模式。在本文中,我们将添加以“ Float ”类型的温度开头的多个字段。Datacake 会自动填写“标识符”字段。有关详细信息,请参阅下面的片段。

poYBAGMFylCATDAyAAE4pGhWUEk893.png

完成字段详细信息后,单击“添加字段”即可完成此字段。您将在下面看到我们为此示例应用程序添加的所有不同字段。这些字段包括:

RSRP - LTE 信号强度值

电池 - 用于记录连接的锂聚合物电池的电压

IMEI - Conexio Stratus 国际移动设备识别码 (IMEI) 号码

版本 - 设备上运行的固件版本

温度 - BME280 传感器的环境温度读数

湿度 - BME280 传感器的相对湿度读数

压力 - BME280 传感器的环境压力读数

poYBAGMFykuAZrjzAACfNMbxa2g174.png

添加集成

接下来,在 Fields 部分的正下方,您将找到Integrations部分。要通过 MQTT 从您的设备转发数据,必须建立与 Datacake 的连接。单击配置,将弹出MQTT 集成信息窗口。

poYBAGMFykaAM_AMAAAk6VUUzH0073.png

Datacake 平台提供具有 TLS 加密的 MQTT 代理,它允许订阅和记录数据。

在该平台的帮助下,您可以:

通过 MQTT 将传入的设备数据转发到外部服务

通过 MQTT 将数据存储到 Datacake Cloud

为了将测量记录到 Datacake Cloud,我们将把数据发布到相应的主题结构中,如 MQTT 集成窗口中所示。

poYBAGMFykOAQD-ZAACyl-H9OB0377.png

注意:复制上面的代理名称和我们稍后将在固件配置中使用的主题。

Datacake 的 MQTT 主题前缀遵循以下结构:

dtck-pub/《product_slug》/《device_id》/《field_name》

主题结构中的最后一个元素是测量值的字段名称,它出现在我们之前创建的数据库字段中。该字段(标识符)是我们将发布来自 Stratus 设备的不同测量值的地方。

生成访问令牌

在 Datacake 平台创建和注册用户帐户时,会自动生成用户访问令牌。此 API 令牌充当安全性并允许设备访问用户的帐户。

注意:我们将需要此令牌来使用 Datacake 平台验证我们的 Stratus 设备。

要查看您的个人访问令牌,请单击“ Edit Profile ”,然后单击“ API ”。

pYYBAGMFyj6AV6rkAAE0WRUQwqk604.png

要查看您的访问令牌,请单击“显示”。现在将这个访问令牌复制到一个安全的地方,因为我们稍后会需要它。

至此,我们已经具备了将 Conexio Stratus 设备中的数据连接和发布到 Datacake 所需的所有详细信息。现在让我们转到设备固件方面。

MQTT 应用程序代码

我们扩展了 nRF Connect SDK 中提供的示例 MQTT 应用程序,以便轻松地将 Stratus 套件连接到 MQTT 代理,从 Datacake 平台发送和接收数据。

扩展的示例应用程序连接到 Datacake 并将数据发布到配置的发布主题。在按钮按下事件时,应用程序将设备生命值发布到 Datacake 并定期发布环境数据,例如温度和湿度。

完整的应用程序可以在本文下方找到。

将 Datacake 凭据添加到应用程序代码

首先,我们必须将 Datacake 访问令牌添加到应用程序代码中。您将需要conexio_stratus_firmware/samples/datacake/prj.conf使用您的 Datacake 访问令牌进行编辑。更新以下参数

# MQTT application configuration authentication
CONFIG_MQTT_PASS="DATACAKE_ACCESS_TOKEN"
CONFIG_MQTT_USER="DATACAKE_ACCESS_TOKEN"

注意用户名和密码是一样的。

MQTT 代理配置

接下来,我们需要配置 MQTT 代理主机名和端口。使用以下内容更新 Datacake 代理配置:

# MQTT broker configuration
CONFIG_MQTT_BROKER_HOSTNAME="mqtt.datacake.co"
CONFIG_MQTT_BROKER_PORT=8883

我们将使用使用 CA 签名服务器证书的端口 8883。

MQTT 发布/订阅配置

要将测量记录到设备的特定数据库字段,我们将更新 MQTT 发布主题,如下所示:

# MQTT topics for recording measurement values
# Change this as per your Datacake MQTT Integration and fields
CONFIG_MQTT_PUB_TOPIC_TEMP="dtck-pub///TEMPERATURE"
CONFIG_MQTT_PUB_TOPIC_HUM="dtck-pub///HUMIDITY"
CONFIG_MQTT_PUB_TOPIC_PRES="dtck-pub///PRESSURE"
CONFIG_MQTT_PUB_TOPIC_VER="dtck-pub///VERSION"
CONFIG_MQTT_PUB_TOPIC_IMEI="dtck-pub///IMEI"
CONFIG_MQTT_PUB_TOPIC_BAT="dtck-pub///BATTERY"
CONFIG_MQTT_PUB_TOPIC_RSRP="dtck-pub///RSRP"
CONFIG_MQTT_PUB_TOPIC_BUTTON="dtck-pub///BUTTON"

# MQTT subscription topics
CONFIG_MQTT_SUB_TOPIC="dtck/conexio-stratus///+"

例如,使用 Product-Slug my-product , Device-ID 6b98a3bb-9ae1-418f-9375-f23091a849cd和 Field-IdentifierTEMPERATURE将发布消息到:

dtck-pub/my-product/6b98a3bb-9ae1-418f-9375-f23091a849cd/TEMPERATURE

有效负载将保存您要记录到该特定数据库字段中的值。

publish("dtck-pub/my-product/6b98a3bb-9ae1-418f-9375-f23091a849cd/TEMPERATURE", 25.00)

到这一步已经设置好了 MQTT 参数配置。

对 Stratus 设备进行编程

要编译应用程序,请在应用程序目录中打开一个终端窗口并发出以下west命令

west build -b conexio_stratus_ns
成功编译应用程序后,连接 Stratus 设备并将其置于 DFU 模式。

使用 newtmgr 刷写编译好的固件:

newtmgr -c serial image upload build/zephyr/app_update.bin
打开串行控制台并重置 Stratus 设备。终端中将显示以下串行 UART 输出。如果您是第一次连接 Stratus 设备,请花几分钟时间注册到网络并与塔建立 LTE 连接。由于 Stratus 设备已预先配置为自动连接到 LTE 网络,因此无需额外的 SIM 激活。

*** Booting Zephyr OS build v2.6.99-ncs1 ***
mqtt_app: Stratus MQTT Datacake sample started, version: v1.0.0
watchdog: Watchdog timeout installed. Timeout: 60000
watchdog: Watchdog started
watchdog.watchdog_feed_enable: Watchdog feed enabled. Timeout: 30000
mqtt_app: Provisioning certificates
mqtt_app: LTE Link Connecting...
+CEREG: 2,"412D","03382810",7
+CSCON: 1
+CEREG: 5,"412D","03382810",7,,,"11100000","11100000"
%CESQ: 35,1,10,1
mqtt_app: LTE Link Connected!
mqtt_app.modem_rsrp_handler: Incoming RSRP status message, RSRP value is 35
mqtt_app: IPv4 Address found 144.126.245.197
mqtt_app: client_id: 352656103852334
mqtt_app: TLS enabled
env_sensors: Environmental sensors initialized
mqtt_app: MQTT client connected mqtt_app: Subscribing to: dtck/conexio-stratus/4fbfe839-c8aa-4882-a890-02f981753f6d/+ len 59 mqtt_app: SUBACK packet id: 1234
mqtt_app: Publishing: 26.06
mqtt_app: to topic: dtck-pub/conexio-stratus/4fbfe839-c8aa-4882-a890-02f981753f6d/TEMPERATURE len: 73
mqtt_app: Publishing: 23.24
mqtt_app: to topic: dtck-pub/conexio-stratus/4fbfe839-c8aa-4882-a890-02f981753f6d/HUMIDITY len: 70

建立 LTE 连接后,您会注意到 Stratus 连接到 Datacake MQTT 代理,之后它将传感器数据发布到配置的主题。您的 Stratus 设备现在处于活动状态并正在与 Datacake 云进行通信

在 Datacake 仪表板上可视化天气数据

固件启动并运行后,返回 Datacake 仪表板并将图形小部件添加到您的工作区。您现在将看到设备数据流入 Datacake 并填充漂亮的图表。下面是我们创建的示例仪表板。

pYYBAGMFyjWAeNNwAAEkKS5KSHA441.png

您可以从世界任何地方访问实时设备仪表板和数据:https ://app.datacake.de/pd/f66e9fed-996e-4b84-b44f-e3d4e458cd3e

组装最终部署就绪的硬件

现在我们已经启动并运行了初始固件和仪表板,让我们组装完整的硬件以进行部署。在这里,我们将一个小型太阳能电池板连接到 Stratus 护罩,用于为 LiPo 电池充电。通过滑动 Stratus 主板侧面的开关打开设备后,完整的硬件安装在亚克力外壳内,如下所示:

poYBAGMFyjGAFsVQAAcYXqhZWgw858.png

poYBAGMFyi2AeP54AAW2r2c8QXE608.png

结论

这篇文章演示了您可以使用 Conexio Stratus 蜂窝物联网设备创建的众多应用程序之一。现在我们有了像 Datacake 这样的无代码或低代码云平台,发送和可视化 IoT 设备数据变得比以前容易得多。借助预付的 500MB 蜂窝数据,您无需 WiFi、蓝牙甚至 SD 卡即可从世界任何地方跟踪和记录您的天气数据。

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

    关注

    2909

    文章

    44608

    浏览量

    373115
  • 蜂窝网络
    +关注

    关注

    2

    文章

    209

    浏览量

    21649
  • 数据记录器
    +关注

    关注

    0

    文章

    53

    浏览量

    12694
收藏 人收藏

    评论

    相关推荐

    iButton数据记录器和IP 等级

    `摘要:Thermochron® (DS1922L、DS1922T、DS1921G)和Hygrochron™ (DS1923) iButton®数据记录器可理想用于多个领域。由于具有不锈钢外壳,这些
    发表于 09-22 14:25

    PIC控制的远程数据记录器

    我正在设计一个可以通过互联网访问的远程数据记录器记录器将通过UART从一个传感收集数据,并且
    发表于 03-12 14:55

    【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】七、获取网络天气数据

    元旦好冷,哪也不想去,那就趁着有空,写写帖子吧。今天的帖子我写的是关于如何从网络获取天气数据,以及如何解析出我们需要的天气数据。一、天气数据获取 首先说说怎么获取天气数据。现在可以从很
    发表于 01-01 21:46

    温度记录器

    温度记录器
    发表于 01-22 14:08 1次下载

    Nodemcu数据记录器

    电子发烧友网站提供《Nodemcu数据记录器.zip》资料免费下载
    发表于 07-04 14:32 4次下载
    Nodemcu<b class='flag-5'>数据</b><b class='flag-5'>记录器</b>

    基于Arduino的GPS数据记录器

    电子发烧友网站提供《基于Arduino的GPS数据记录器.zip》资料免费下载
    发表于 10-31 10:35 4次下载
    基于Arduino的GPS<b class='flag-5'>数据</b><b class='flag-5'>记录器</b>

    【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】七、获取网络天气数据

    。今天的帖子我写的是关于如何从网络获取天气数据,以及如何解析出我们需要的天气数据。   一、天气数据获取        首先说说怎么获取天气数据。现在可以从很多平台获取到
    的头像 发表于 11-02 14:49 902次阅读

    使用TTGO ESP32和Visuino从互联网上获取天气数据

    电子发烧友网站提供《使用TTGO ESP32和Visuino从互联网上获取天气数据.zip》资料免费下载
    发表于 11-07 15:22 0次下载
    使用TTGO ESP32和Visuino从互<b class='flag-5'>联网</b>上获取<b class='flag-5'>天气数据</b>

    GPS和AHRS数据记录器开源分享

    电子发烧友网站提供《GPS和AHRS数据记录器开源分享.zip》资料免费下载
    发表于 11-15 11:44 1次下载
    GPS和AHRS<b class='flag-5'>数据</b><b class='flag-5'>记录器</b>开源分享

    基于Arduino Meag 2560的数据记录器

    我创建了一个数据记录器,可以尽可能快地记录和存储 EMG 数据值。目前,它每秒可以测量多达 3000 个数据点(使用 Arduino 串行监
    发表于 12-08 15:41 0次下载

    基于Arduino MKR ZERO的天气数据记录器

    关于这个项目介绍通过这个项目,您将能够在几分钟内创建一个温度和湿度数据记录器。您可以使用 MKR Zero 的内置 SD 读卡来存储数据。插入电池,添加保护套,您将拥有一个整洁的
    发表于 12-19 16:16 0次下载

    使用Blues Wireless和Qubitro的联网天气数据记录器

    电子发烧友网站提供《使用Blues Wireless和Qubitro的联网天气数据记录器.zip》资料免费下载
    发表于 02-06 14:21 0次下载
    使用Blues Wireless和Qubitro的<b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>天气数据</b><b class='flag-5'>记录器</b>

    天气数据收集和存储程序开源分享

    电子发烧友网站提供《天气数据收集和存储程序开源分享.zip》资料免费下载
    发表于 02-09 11:25 0次下载
    <b class='flag-5'>天气数据</b>收集和存储程序开源分享

    简单的数据记录器开源设计

    电子发烧友网站提供《简单的数据记录器开源设计.zip》资料免费下载
    发表于 06-09 10:55 0次下载
    简单的<b class='flag-5'>数据</b><b class='flag-5'>记录器</b>开源设计

    什么是数据记录器数据记录器数据采集系统

    虽然有些数据记录器只有一个传感和输入,但许多数据记录器有多个通道,在许多情况下,它们可以记录
    的头像 发表于 02-08 12:28 1561次阅读