本文作者 | Magnus Johansson,u-blox短程通信产品战略部;Harald Kroell,u-blox蜂窝产品管理
随着物联网设备日渐复杂,广大产品开发人员必须学习更多技术才能应对各种挑战,但是每种技术都存在其固有的挑战和复杂性。
在本文中,我们将介绍u-blox最新发布的ubxlib库,帮助您简化应用开发、降低出错风险并缩短产品上市时间。您会看到我们如何使用ubxlib(可通过Github下载)构建复杂的多传感器解决方案,进一步转化为商用室内传感设备或环境传感设备。
01.由简入繁
过去几十年间,我们亲眼见证了物联网从诞生到成熟的发展历程。物联网从支持典型的单用途设备(如联网烟雾报警器),发展到为高度复杂、紧密集成的多功能解决方案(如语音控制式个人助理)提供支持,速度惊人。城市中部署的监测城市污染状况的环境传感器,就是一种简单但常见的物联网设备。
过去,此类设备可能包含多个传感器,以及一张用来存储所收集的数据的存储卡。后来,人们在这些设备上添加了蜂窝通信调制解调器,支持其自主将数据上传到云端。
时至今日,环境传感器的复杂度大幅度提高,可能包括:
一个全球导航卫星系统(GNSS)接收机,用来为感测到的数据添加准确的时间戳和地理标签;
一个Wi-Fi模块,用来在其检测范围内有Wi-Fi接入点时传输数据;
以及一个蓝牙模块,以便通过智能手机配置感测解决方案。
这些设备上可能还配有其他许多传感器,例如用来跟踪运动的加速计和陀螺仪,可以提供额外的相关信息,或者为机器学习算法提供数据,从而利用边缘AI直接在设备上进行数据处理。
为了将所有这些技术集成到一款主机应用中,应用开发人员通常必须能自如地使用一系列不同的AT命令集,以配置蜂窝通信调制解调器、蓝牙和Wi-Fi模块、GNSS接收机等。
这不仅会明显拖慢一款联网设备的上市时间,而且每多一种技术,设备上运行的应用软件中出现配置错误、程序错误或安全漏洞的可能性就会更高。
02.借助ubxlib简化开发体验
ubxlib正是应此而生,这款解决方案为开发人员提供了一个致力于化解这些难题、简化开发体验的工具包。
首先有必要搞清楚,ubxlib是什么?ubxlib是一种适用于主机微控制器的开源库,用户可借助此库轻松控制u-blox模块。为了便于在嵌入式应用内实现通信、安全和本地化集成,我们将这个库作为附加功能添加到现有的微控制器和实时操作系统(RTOS)软件开发工具包(SDK)中。
ubxlib的开发初衷是帮您在自己的应用中充分利用u-blox模块的功能,从而避免开发人员自行进行解决方案原型设计、测试和调试这类耗时任务。
如果您是应用开发人员,那么自会感受到ubxlib的优势所在——在日渐增多的u-blox模块中使用一套统一、简洁的API,从而提高应用开发流程的效率、可靠性和安全性。
03.使用ubxlib构建互联传感解决方案
ubxlib不仅适用于我们的客户,同样也适用于我们公司内部的开发人员!举例来说,我们使用ubxlib构建了一个互联传感器解决方案,以收集传感器数据(包括设备位置在内),然后使用Wi-Fi或蜂窝连接将数据传输到云端平台。
我们这一解决方案的基础是u-blox C210开发板,这个开发板具备IoT应用所需的所有管路(电源、存储器、天线等),以及数款传感器和全部u-blox技术:
NORA-B106模块用作主机MCU和蓝牙调制解调器
NINA-W156 Wi-Fi模块
SARA-R510S蜂窝通信模块
MAX-M10S GNSS接收机
此外,还配有一张Thingstream物联网SIM卡使用MQTT Anywhere套餐实现云端连接的
如上图所示,基于NORA-B106模块上的应用使用ubxlib读取、写入和调用其他模块的命令。
该库包括处理AT命令或u-blox GNSS接收机所用UBX协议的底层API,以及用于通过蜂窝通信和Wi-Fi连接处理网络套接字,并且管理通过蓝牙低功耗进行的数据交换的高层级API。开发人员还可以借助MQTT客户端API,实现与MQTT broker的进一步通信。
在这款互联传感器解决方案开发完毕后,我们将其变为参考解决方案并放到了我们的Github代码库中,可供您使用,为您提供开发互联解决方案参考。
我们的Github代码库中还有许多可直接使用的示例,展示如何将API与u-blox云端服务配合使用,从而构建能解决现实问题的方案。
ubxlib针对u-blox应用板和EVK进行了优化,但这个库不仅能在特定RTOS或MCU平台上使用,也可在ESP32、使用FreeRTOS的STM32、使用ZephyrOS的nRF5微控制器平台以及Windows PC、Linux PC上运行。
04.ubxlib快速入门
C210开发板并非使用ubxlib进行应用开发的必备条件。我们提供了兼容主机平台和外设的完整列表,您可以基于现有示例脚本和构建文件快速上手,所有相关资料都可在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/)中的make文件,并根据您的应用加以调整。
5.设置UBXLIB_BASE,以指向ubxlib目录。
6.如有必要,将您的应用的源代码文件添加到make文件中。
7.使用自选IDE或通过命令行运行make命令,以构建并刷入修改后的示例代码。
这样就搞定了!您可以在端口目录中找到关于构建系统的一般信息,在您应用的MCU的端口目录中找到特定平台的信息。
若要详细了解ubxlib,以及该库能如何帮您尽快将安全可靠的互联解决方案推向市场,请务必访问u-blox ubxlib GitHub代码库及ubxlib产品页面。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !