本文作者 | Magnus Johansson,u-blox短程通信產(chǎn)品戰(zhàn)略部;Harald Kroell,u-blox蜂窩產(chǎn)品管理
隨著物聯(lián)網(wǎng)設(shè)備日漸復(fù)雜,廣大產(chǎn)品開發(fā)人員必須學(xué)習(xí)更多技術(shù)才能應(yīng)對各種挑戰(zhàn),但是每種技術(shù)都存在其固有的挑戰(zhàn)和復(fù)雜性。
在本文中,我們將介紹u-blox最新發(fā)布的ubxlib庫,幫助您簡化應(yīng)用開發(fā)、降低出錯風(fēng)險并縮短產(chǎn)品上市時間。您會看到我們?nèi)绾问褂胾bxlib(可通過Github下載)構(gòu)建復(fù)雜的多傳感器解決方案,進(jìn)一步轉(zhuǎn)化為商用室內(nèi)傳感設(shè)備或環(huán)境傳感設(shè)備。
01.由簡入繁
過去幾十年間,我們親眼見證了物聯(lián)網(wǎng)從誕生到成熟的發(fā)展歷程。物聯(lián)網(wǎng)從支持典型的單用途設(shè)備(如聯(lián)網(wǎng)煙霧報警器),發(fā)展到為高度復(fù)雜、緊密集成的多功能解決方案(如語音控制式個人助理)提供支持,速度驚人。城市中部署的監(jiān)測城市污染狀況的環(huán)境傳感器,就是一種簡單但常見的物聯(lián)網(wǎng)設(shè)備。
過去,此類設(shè)備可能包含多個傳感器,以及一張用來存儲所收集的數(shù)據(jù)的存儲卡。后來,人們在這些設(shè)備上添加了蜂窩通信調(diào)制解調(diào)器,支持其自主將數(shù)據(jù)上傳到云端。
時至今日,環(huán)境傳感器的復(fù)雜度大幅度提高,可能包括:
一個全球?qū)Ш叫l(wèi)星系統(tǒng)(GNSS)接收機(jī),用來為感測到的數(shù)據(jù)添加準(zhǔn)確的時間戳和地理標(biāo)簽;
一個Wi-Fi模塊,用來在其檢測范圍內(nèi)有Wi-Fi接入點時傳輸數(shù)據(jù);
以及一個藍(lán)牙模塊,以便通過智能手機(jī)配置感測解決方案。
這些設(shè)備上可能還配有其他許多傳感器,例如用來跟蹤運動的加速計和陀螺儀,可以提供額外的相關(guān)信息,或者為機(jī)器學(xué)習(xí)算法提供數(shù)據(jù),從而利用邊緣AI直接在設(shè)備上進(jìn)行數(shù)據(jù)處理。
為了將所有這些技術(shù)集成到一款主機(jī)應(yīng)用中,應(yīng)用開發(fā)人員通常必須能自如地使用一系列不同的AT命令集,以配置蜂窩通信調(diào)制解調(diào)器、藍(lán)牙和Wi-Fi模塊、GNSS接收機(jī)等。
這不僅會明顯拖慢一款聯(lián)網(wǎng)設(shè)備的上市時間,而且每多一種技術(shù),設(shè)備上運行的應(yīng)用軟件中出現(xiàn)配置錯誤、程序錯誤或安全漏洞的可能性就會更高。
02.借助ubxlib簡化開發(fā)體驗
ubxlib正是應(yīng)此而生,這款解決方案為開發(fā)人員提供了一個致力于化解這些難題、簡化開發(fā)體驗的工具包。
首先有必要搞清楚,ubxlib是什么?ubxlib是一種適用于主機(jī)微控制器的開源庫,用戶可借助此庫輕松控制u-blox模塊。為了便于在嵌入式應(yīng)用內(nèi)實現(xiàn)通信、安全和本地化集成,我們將這個庫作為附加功能添加到現(xiàn)有的微控制器和實時操作系統(tǒng)(RTOS)軟件開發(fā)工具包(SDK)中。
ubxlib的開發(fā)初衷是幫您在自己的應(yīng)用中充分利用u-blox模塊的功能,從而避免開發(fā)人員自行進(jìn)行解決方案原型設(shè)計、測試和調(diào)試這類耗時任務(wù)。
如果您是應(yīng)用開發(fā)人員,那么自會感受到ubxlib的優(yōu)勢所在——在日漸增多的u-blox模塊中使用一套統(tǒng)一、簡潔的API,從而提高應(yīng)用開發(fā)流程的效率、可靠性和安全性。
03.使用ubxlib構(gòu)建互聯(lián)傳感解決方案
ubxlib不僅適用于我們的客戶,同樣也適用于我們公司內(nèi)部的開發(fā)人員!舉例來說,我們使用ubxlib構(gòu)建了一個互聯(lián)傳感器解決方案,以收集傳感器數(shù)據(jù)(包括設(shè)備位置在內(nèi)),然后使用Wi-Fi或蜂窩連接將數(shù)據(jù)傳輸?shù)皆贫似脚_。
我們這一解決方案的基礎(chǔ)是u-blox C210開發(fā)板,這個開發(fā)板具備IoT應(yīng)用所需的所有管路(電源、存儲器、天線等),以及數(shù)款傳感器和全部u-blox技術(shù):
NORA-B106模塊用作主機(jī)MCU和藍(lán)牙調(diào)制解調(diào)器
NINA-W156 Wi-Fi模塊
SARA-R510S蜂窩通信模塊
MAX-M10S GNSS接收機(jī)
此外,還配有一張Thingstream物聯(lián)網(wǎng)SIM卡使用MQTT Anywhere套餐實現(xiàn)云端連接的
如上圖所示,基于NORA-B106模塊上的應(yīng)用使用ubxlib讀取、寫入和調(diào)用其他模塊的命令。
該庫包括處理AT命令或u-blox GNSS接收機(jī)所用UBX協(xié)議的底層API,以及用于通過蜂窩通信和Wi-Fi連接處理網(wǎng)絡(luò)套接字,并且管理通過藍(lán)牙低功耗進(jìn)行的數(shù)據(jù)交換的高層級API。開發(fā)人員還可以借助MQTT客戶端API,實現(xiàn)與MQTT broker的進(jìn)一步通信。
在這款互聯(lián)傳感器解決方案開發(fā)完畢后,我們將其變?yōu)閰⒖冀鉀Q方案并放到了我們的Github代碼庫中,可供您使用,為您提供開發(fā)互聯(lián)解決方案參考。
我們的Github代碼庫中還有許多可直接使用的示例,展示如何將API與u-blox云端服務(wù)配合使用,從而構(gòu)建能解決現(xiàn)實問題的方案。
ubxlib針對u-blox應(yīng)用板和EVK進(jìn)行了優(yōu)化,但這個庫不僅能在特定RTOS或MCU平臺上使用,也可在ESP32、使用FreeRTOS的STM32、使用ZephyrOS的nRF5微控制器平臺以及Windows PC、Linux PC上運行。
04.ubxlib快速入門
C210開發(fā)板并非使用ubxlib進(jìn)行應(yīng)用開發(fā)的必備條件。我們提供了兼容主機(jī)平臺和外設(shè)的完整列表,您可以基于現(xiàn)有示例腳本和構(gòu)建文件快速上手,所有相關(guān)資料都可在ubxlib代碼庫中找到。
這里提供了一個步驟詳盡的說明,能夠幫您開啟ubxlib之旅:
1.訪問u-blox ubxlib GitHub代碼庫,找到與您的預(yù)期應(yīng)用最接近的示例,然后將其源代碼文件復(fù)制到自己的項目目錄中。
2.移除所有僅與ubxlib測試系統(tǒng)相關(guān)的定義和引用文件。例如,您只需要包含ubxlib.h文件。
3.按照您的需求更新宏定義與配置。如需了解具體方法,請參閱適用于您的平臺的引用文件 u_cfg_app_platform_specific.h。需要設(shè)置的定義的示例:
1)用于將MCU連接到目標(biāo)模塊的UART編號和UART引腳。
2)您的網(wǎng)絡(luò)憑證(例如,您的Wi-Fi SSID和密碼)。
4.復(fù)制您的MCU程序文件夾(port/platform/)中的make文件,并根據(jù)您的應(yīng)用加以調(diào)整。
5.設(shè)置UBXLIB_BASE,以指向ubxlib目錄。
6.如有必要,將您的應(yīng)用的源代碼文件添加到make文件中。
7.使用自選IDE或通過命令行運行make命令,以構(gòu)建并刷入修改后的示例代碼。
這樣就搞定了!您可以在端口目錄中找到關(guān)于構(gòu)建系統(tǒng)的一般信息,在您應(yīng)用的MCU的端口目錄中找到特定平臺的信息。
若要詳細(xì)了解ubxlib,以及該庫能如何幫您盡快將安全可靠的互聯(lián)解決方案推向市場,請務(wù)必訪問u-blox ubxlib GitHub代碼庫及ubxlib產(chǎn)品頁面。
審核編輯:湯梓紅
-
傳感器
+關(guān)注
關(guān)注
2541文章
49963瀏覽量
747578 -
mcu
+關(guān)注
關(guān)注
146文章
16667瀏覽量
347835 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2894文章
43316瀏覽量
366563 -
u-blox
+關(guān)注
關(guān)注
3文章
121瀏覽量
31588 -
wi-fi
+關(guān)注
關(guān)注
14文章
2054瀏覽量
123700
原文標(biāo)題:ubxlib快速入門
文章出處:【微信號:ublox_China,微信公眾號:ublox】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論