ubxlib快速入门

本文作者 | 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产品页面。


美的发布了MWOW空调系列首款挂机产品,会是今年首个爆款吗?
华为Mate10拆解评测:做工对得起价格
石油化工仪表接地设计规范(SH3083-1997)
积分球-分光光度法在磁卡火车票鉴定中的应用
物联网卡在医疗器械上的应用简述
ubxlib快速入门
减少工业一氧化碳通过提高运动效率实现排放
江苏爱矽半导体科技项目正式投产 项目总投资达5亿元
功率放大器在氯离子砂浆中的迁移特性研究中的应用
格罗方德半导体加强亚太地区业务,新加坡区域总部斩获殊荣
国睿信维:完善研发管理体系,打响REACH睿知工业软件品牌!
UPS电源安装的十大注意事项
电机定子与壳体过盈配合的噪声分析
嵌入式Linux系统移植主要由四大部分组成
探究汽车主动安全性的背后
关于开关电源的热设计方法解析和介绍
ADI和宇通集团推出首款面向电动重型车辆市场的无线电池管理系统
iQOO Z1新配色幻彩流星6月18日正式开售,售价2198元起
公路划线机划线导向机器人的导向控制系统设计
王石出任华大集团联席董事长 发挥其商业运作等经验