技术

|

01 Jul 2022

我们如何使用 ubxlib 构建一个联网传感器

ubxlib 通过用一套通用且易于上手的 API 取代针对特定模块的 AT 命令,从而加快了联网应用程序的开发速度。 

ubxlib makes simplifies the development of connected sensor solutions

物联网设备日益增长的复杂性,迫使产品开发人员必须掌握越来越多的技术,而每项技术都存在其固有的挑战和复杂性。在这篇博客文章中,我们将探讨我们刚刚发布的一款新工具——开源库 ubxlib——如何简化应用程序开发,降低出错风险并缩短产品上市时间。 您将了解到,我们利用可在 GitHub 上下载的 ubxlib,构建了一个功能强大的传感器聚合解决方案,该方案可转化为商用室内或环境传感设备。 

 从简单到复杂

在过去的几十年里,我们近距离见证了物联网的成熟发展历程——它从支持联网烟雾报警器等典型单功能设备,演变为语音控制的个人助理等高度复杂、紧密集成的多功能解决方案。 以一种简单但常见的物联网设备为例,不妨想想城市中用于监测城市污染的环境传感器。过去,这类设备可能仅由几个传感器和一张用于存储采集数据的存储卡组成。后来,它们可能通过添加蜂窝调制解调器进行了升级,从而能够自主将数据上传至云端。

快进到今天,环境传感器往往要复杂得多,可能包括全球导航卫星系统(GNSS)接收器,用于为感知数据添加精确的时间戳和地理标签;Wi-Fi模块,用于在Wi-Fi接入点处于覆盖范围内时传输数据;以及蓝牙模块,用于通过智能手机配置传感解决方案。 它们还可能包含一系列其他传感器,例如用于追踪运动的加速度计和陀螺仪,这些传感器不仅能提供额外的上下文信息,还能将数据输入机器学习算法,通过边缘AI实现本地数据处理。

要将所有这些技术集成到主应用程序中,应用程序开发人员通常需要熟练掌握若干套不同的 AT 命令,用于配置蜂窝调制解调器、蓝牙和 Wi-Fi 模块、GNSS 接收器等。这不仅会显著影响将新型联网设备推向市场所需的时间。 每增加一项技术,配置错误、未被发现的漏洞或安全隐患渗入设备上运行的应用软件的可能性也会随之增加。

借助 ubxlib 简化开发体验

这就是 ubxlib 的用武之地,它为开发人员提供了一套工具包,以克服这些挑战并简化开发体验。但首先,ubxlib 到底是什么?ubxlib 是一个用于主机微控制器的库,可轻松控制 u-blox 模块。 我们将其作为现有微控制器和实时操作系统 (RTOS) 软件开发工具包 (SDK) 的附加组件提供,以促进将连接性、安全性和本地化功能集成到嵌入式应用中。

我们不希望开发人员费力地进行原型设计、测试和调试自己的解决方案,而是开发了 ubxlib,以便在您的应用中充分利用 u-blox 模块的功能。 如果您是应用程序开发人员,您会发现,使用一套在越来越多的 u-blox 模块中保持统一的简洁 API,可以提高应用程序开发过程的效率、可靠性和安全性。

使用 ubxlib 构建联网传感器

我们开发 ubxlib 并非仅面向客户。我们的内部开发人员也在使用它!以一个实例为例,我们利用 ubxlib 构建了一个联网传感器解决方案,该方案可收集传感器数据(包括设备的位置),然后通过 Wi-Fi 或蜂窝网络将数据传输到云平台。 该解决方案的核心是 u-blox C210 开发板,它集成了使物联网应用正常运行所需的所有基础组件(电源、内存、天线等)、多种传感器,以及 u-blox 的全套技术:

Example schematic of an application built with ubxlib

如上所述,该应用程序在 NORA-B106 模块上运行,并使用 ubxlib 来读取、写入数据以及向其他模块发送命令。 该库包含用于处理 AT 命令或 u-blox GNSS 接收机所用 UBX 协议的低级 API,以及用于处理蜂窝网络和 Wi-Fi 连接中的网络套接字、管理蓝牙低功耗(Bluetooth LE)数据交换的高级 API。MQTT客户端 API 还允许开发人员连接并与 MQTT 代理进行通信。

此后,我们将该联网传感器解决方案转化为参考方案,您可从我们的 GitHub 代码库克隆该方案,这将为您开发自己的联网解决方案提供巨大的先发优势。该 GitHub 代码库还包含大量可直接使用的示例,演示了如何将这些 API 与 u-blox 云服务结合使用,以构建解决实际问题的方案。 虽然 ubxlib 针对 u-blox 应用板和 EVK 进行了优化,但它并不局限于特定的 RTOS 或 MCU 平台,同样可在 ESP32、搭载 FreeRTOS 的 STM32、搭载 ZephyrOS 的 nRF5 微控制器平台,以及 Windows 和 Linux 个人电脑上运行。

ubxlib 入门指南

您无需手头有 C210 开发板,即可直接使用 ubxlib 进行应用程序开发。兼容的主机平台和外设的完整列表可查阅。通过基于 ubxlib 代码库中已包含的现有示例脚本和构建文件进行开发,可快速入门。 以下是分步说明,可帮助您顺利起步:

  1. 访问u-blox ubxlib GitHub 代码库,将最接近您目标应用的示例源文件复制到您的项目目录中。
  2. 删除所有仅与 ubxlib 测试系统相关的定义和头文件。例如,您只需包含 ubxlib.h 文件即可。
  3. 将定义更新为您的示例所需的内容。具体方法请参阅您所在平台的头文件 u_cfg_app_platform_specific.h。需要设置的定义示例包括:
    1. 用于将 MCU 连接到目标模块的 UART 编号和 UART 引脚。
    2. 您的网络凭据(例如,Wi-Fi SSID 和密码)。
  4. 从 MCU 对应端口(port/platform/)的 runner 目录中复制 make 文件,并根据您的应用程序进行调整:
  5. 通过设置 UBXLIB_BASE 指向 ubxlib 目录。
  6. 如有需要,请将您的应用程序源文件添加到 make 文件中。
  7. 使用您选择的 IDE 或通过命令行执行 make 命令,对修改后的示例代码进行编译并烧录。

 

就这样!您可以在 port 目录中找到有关构建系统的通用信息,而针对您应用所用 MCU 的平台特定信息则可在相应的 port 目录中查阅。

如需进一步了解 ubxlib 以及它如何帮助您缩短将可靠且安全的联网解决方案推向市场所需的时间,请务必查看u-blox ubxlib GitHub 代码库以及ubxlib 产品页面。

https://content.u-blox.com/sites/default/files/2025-11/magnus-johansson.jpg

Magnus Johansson

Senior Product Line Manager - Product Strategy Short Range, u-blox

Linkedin

Harald Kroell

Product Management Cellular, u-blox

您可能还对以下内容感兴趣