探索Xiotman:物聯(lián)網(wǎng)軟件架構(gòu)的創(chuàng)新之路
什么是物聯(lián)網(wǎng)
????眾所周知,物聯(lián)網(wǎng)是當(dāng)今科技領(lǐng)域的一個(gè)熱門話題,它指的是通過互聯(lián)網(wǎng)將各種物理設(shè)備、傳感器、終端等連接起來,實(shí)現(xiàn)信息的交換和通信。物聯(lián)網(wǎng)的應(yīng)用場(chǎng)景非常廣泛,涉及智能家居、智能城市、智能醫(yī)療、智能工業(yè)等領(lǐng)域。然而,物聯(lián)網(wǎng)終端應(yīng)用的開發(fā)也面臨著很多挑戰(zhàn),例如:
- ????應(yīng)用的多樣性:物聯(lián)網(wǎng)終端需要支持不同的功能和場(chǎng)景,例如溫濕度監(jiān)測(cè)、人臉識(shí)別、語音控制等,這就要求開發(fā)者能夠靈活地開發(fā)和切換不同的應(yīng)用。
- ????組件的多樣性:物聯(lián)網(wǎng)終端需要使用不同的硬件和軟件組件,例如傳感器、顯示器、攝像頭、網(wǎng)絡(luò)模塊等,這就要求開發(fā)者能夠方便地集成和解耦不同的組件。
- ????RTOS的多樣性:物聯(lián)網(wǎng)終端可能需要運(yùn)行在不同的實(shí)時(shí)操作系統(tǒng)(RTOS)上,例如FreeRTOS、RT-Thread,ucos等,這就要求開發(fā)者能夠兼容和適配不同的RTOS。
- ????MCU的多樣性:物聯(lián)網(wǎng)終端需要使用不同的微控制器(MCU)芯片,例如STM32、RA系列、ESP32等,這就要求開發(fā)者能夠支持和移植不同的MCU。
什么是Xiotman
????為了解決這些挑戰(zhàn),一套全新的物聯(lián)網(wǎng)多應(yīng)用框架Xiotman應(yīng)運(yùn)而生。Xiotman是一套致力于解決物聯(lián)網(wǎng)終端應(yīng)用多樣化挑戰(zhàn)的軟件架構(gòu)解決方案,它由 CSDN博客專家 架構(gòu)師李肯在2023年RT-Thread全球技術(shù)峰會(huì)上首次公開發(fā)布,并在GitHub和Gitee上開源。
Xiotman的特點(diǎn)
????Xiotman的主要特點(diǎn)如下:
- ????支持多應(yīng)用開發(fā):Xiotman提供了一個(gè)統(tǒng)一的應(yīng)用接口和入口,開發(fā)者只需要編寫自己的應(yīng)用邏輯代碼,并在配置文件中選擇要編譯和運(yùn)行的應(yīng)用即可。Xiotman還提供了一些常見的應(yīng)用示例,例如智能房間、調(diào)試串口等,供開發(fā)者參考和學(xué)習(xí)。
- ????支持多組件解耦:Xiotman提供了一個(gè)組件管理機(jī)制,開發(fā)者可以將自己使用的硬件和軟件組件封裝成獨(dú)立的模塊,并在配置文件中選擇要加載和使用的組件即可。
- ????支持多RTOS:Xiotman提供了一個(gè)RTOS適配層,開發(fā)者可以在配置文件中選擇要運(yùn)行在哪個(gè)RTOS上,并根據(jù)不同RTOS提供的API進(jìn)行編程。目前Xiotman已經(jīng)支持了RT-Thread V5.0.X版本,并計(jì)劃支持更多版本和其他RTOS。
- ????支持多MCU:Xiotman提供了一個(gè)MCU適配層,開發(fā)者可以在配置文件中選擇要使用哪個(gè)MCU芯片,并根據(jù)不同MCU提供的驅(qū)動(dòng)和外設(shè)進(jìn)行編程。目前Xiotman已經(jīng)支持了qemu-veXpress-a9(仿真)、RA2E1、RA2L1、RA4M2、RA6M4等芯片,并計(jì)劃支持更多芯片。
Xiotman的架構(gòu)
????Xiotman的架構(gòu)如下圖所示:
Xiotman的使用
????Xiotman的使用方法也非常簡單,接下來我們就來詳細(xì)介紹一下:
安裝env工具
????這個(gè)地方我們需要注意,我們最好使用官方最新的版本,目前最新是1.3.5版本,筆者在測(cè)試的時(shí)候使用的是1.1.0版本的,有許多?錯(cuò)誤?,所以還是希望大家用最新版的。
????下載連接如下所示:env下載鏈接
獲取源代碼
????這邊我們還是建議獲取Github上面的最新版,但是考慮到Github在國內(nèi)訪問不太友好,所以我們也在Gitee上開源了我們的代碼,可以使用Git去獲取,也可以直接點(diǎn)擊下載ZIP再解壓使用。
使用
????首先將env注冊(cè)到右鍵,當(dāng)然,直接手動(dòng)進(jìn)入目錄也可以,注冊(cè)到右鍵與使用env的教程如下:Env 用戶手冊(cè) ,然后進(jìn)入到 Xiotman/build 目錄,右鍵,進(jìn)入env(進(jìn)入env之后通過命令行進(jìn)去也是可以的):
????執(zhí)行 scons --list_app
查看當(dāng)前選擇編譯的應(yīng)用、MCU、RTOS版本等信息;
????執(zhí)行 scons --menuconfig=build
選擇對(duì)應(yīng)的應(yīng)用、MCU及RTOS和RTOS版本,默認(rèn)的情況下,選擇的是 app_uart_debug應(yīng)用、qemu-vexpress-a9、rt-thread-v5.0.x版本;
????執(zhí)行 scons
開始編譯當(dāng)前應(yīng)用,輸出如下所示就說明編譯成功了,在 out/app_uart_debug(qemu-vexpress-a9)/
目錄可以看到對(duì)應(yīng)的固件文件輸出;
????執(zhí)行編譯輸出的固件;進(jìn)入到 xiotman/out/app_uart_debug(qemu-vexpress-a9)/
目錄,執(zhí)行 ./qemu-nographic.bat
即可運(yùn)行;
????當(dāng)然了,如果你想要清除當(dāng)前選擇的應(yīng)用的中間編譯輸出,執(zhí)行 scons --clean
就好了。
????同時(shí)xiotman還保留了原生的 RTOS
的配置,執(zhí)行 scons --menuconfig=rtos
即可進(jìn)入配置:
????我手上剛好有一塊RA2E1的開發(fā)板,于是驗(yàn)證了一下,發(fā)現(xiàn)可以正常運(yùn)行,結(jié)果如下所示。教程就和上述一樣,只不過換了一個(gè)芯片,除了RA2E1之外,其他的我都測(cè)試過,沒有什么大問題。
其他教程
????Xiotman還提供了一些演示視頻,展示了它在不同的硬件平臺(tái)和應(yīng)用場(chǎng)景下的運(yùn)行效果,可以在B站搜索【Xiotman 基礎(chǔ)功能演示】觀看。
Xiotman的開源地址
????Xiotman是一個(gè)完全開源的項(xiàng)目,遵循 Apache License 2.0 開源許可協(xié)議,可以免費(fèi)在商業(yè)產(chǎn)品中使用,并且不需要公開私有代碼,沒有潛在商業(yè)風(fēng)險(xiǎn)。Xiotman的代碼倉庫地址如下:文章來源:http://www.zghlxwxcb.cn/news/detail-485001.html
- GitHub: https://github.com/recan-li/xiotman
- Gitee: https://gitee.com/recan-li/xiotman
總結(jié)
????總之,Xiotman是一個(gè)全新的物聯(lián)網(wǎng)多應(yīng)用框架,它為物聯(lián)網(wǎng)終端應(yīng)用的開發(fā)提供了一個(gè)靈活、方便、兼容、可擴(kuò)展的軟件架構(gòu)解決方案。同時(shí)也希望大家能給Xiotman提出寶貴的建議與看法,感謝大家。文章來源地址http://www.zghlxwxcb.cn/news/detail-485001.html
到了這里,關(guān)于探索Xiotman:物聯(lián)網(wǎng)軟件架構(gòu)的創(chuàng)新之路的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!