本文作者 | 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產品頁面。
審核編輯:湯梓紅
-
傳感器
+關注
關注
2552文章
51219瀏覽量
754616 -
mcu
+關注
關注
146文章
17176瀏覽量
351661 -
物聯網
+關注
關注
2909文章
44741瀏覽量
374510 -
u-blox
+關注
關注
3文章
134瀏覽量
31711 -
wi-fi
+關注
關注
14文章
2147瀏覽量
124638
原文標題:ubxlib快速入門
文章出處:【微信號:ublox_China,微信公眾號:ublox】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論