唐 軍,杜秀君
(1.宜賓職業(yè)技術學院 電子信息與人工智能學院,四川 宜賓 644003;2.宜賓職業(yè)技術學院 科技處,四川 宜賓 644003)
Huawei LiteOS發(fā)布于2015年5月的華為網(wǎng)絡大會上,是面向IoT領域構建的輕量級物聯(lián)網(wǎng)操作系統(tǒng)[1]。本設計利用LiteOS系統(tǒng),通過NB-IOT技術完成與華為IOTDA物聯(lián)網(wǎng)平臺的對接,可以將數(shù)據(jù)發(fā)送到該平臺,也可以從該平臺下發(fā)指令,控制設備側。本設計來源于橫向課題,要求基于NB-IOT技術,將溫度、光照度、數(shù)字量、開關量輸入數(shù)據(jù)傳入IOTDA平臺,并能依據(jù)IOTDA平臺指令,控制繼電器輸出。
按項目需求,本設計需要在采集完外界的溫度、光照度數(shù)據(jù)與數(shù)字開關量數(shù)據(jù)后,對數(shù)據(jù)進行上傳處理,并能對外部的一些數(shù)字IO量進行開關的控制。為方便現(xiàn)場的數(shù)據(jù)調試,設計采用串口觸摸屏進行顯示。數(shù)據(jù)采集完成后,通過NB-IOT模塊,系統(tǒng)將數(shù)據(jù)傳送到華為的IDOA平臺,進行遠程處理。
圖1 系統(tǒng)架構設計
系統(tǒng)由STM32小系統(tǒng)、高速數(shù)字量輸入電平轉換、光照度數(shù)據(jù)采集、PT100溫度采集模塊、開關量輸出、觸摸屏通信接口、NB-IOT模塊通信接口設計構成。
外部數(shù)據(jù)的開關量,其電平標準為5 V,而STM32的端口為3.3 V,故需要設計一個高速數(shù)字量輸入電平轉換模塊完成電平轉換功能,實現(xiàn)電平轉換與端口保護。本設計采用光耦6N137實現(xiàn)此功能。
系統(tǒng)的整體設計參考了小熊派開發(fā)板的設計。該開發(fā)板包含采集光照度的E53智慧路燈模塊。本設計直接采用該模塊,連接與光照度模塊的接口。光照度模塊采用IIC接口進行通信。
PT100采集外部的溫度信號,經過電橋電路后,得到與溫度相關的信號,然后將電壓值送入儀表放大,放大后的電壓信號送入STM32,利用STM32內部自帶的ADC模塊進行模數(shù)轉換,并利用查表法完成溫度信號的換算,從而得到具體的溫度信號[2]。設計出的具體電路,如圖2所示。
圖2 PT100溫度采集模塊設計
按設計要求,系統(tǒng)需要能夠對華為物聯(lián)網(wǎng)平臺IOTDA下發(fā)的指令進行解析,用以控制繼電器。
本設計在STM32上實現(xiàn)了華為的LiteOS系統(tǒng)運行。該系統(tǒng)可以很方便地與華為IOTDA平臺實現(xiàn)連接。本設計,一是在MDK平臺上,完成了LiteOS的遷移;二是單獨為每一個電路模塊標志了驅動程序,通過觸摸屏完成了數(shù)據(jù)的顯示;三是利用NB-IOT將所采集到的數(shù)據(jù)上報到華為IOTDA平臺。在云端,本設計也對應開發(fā)了相應的程序用以響應和控制設備側。
Huawei LiteOS是華為面向IoT領域構建的輕量級物聯(lián)網(wǎng)操作系統(tǒng)[3],系統(tǒng)可廣泛應用于智能家居、個人穿戴、車聯(lián)網(wǎng)、城市公共服務、制造業(yè)等領域[4]。
LiteOS系統(tǒng)遷移之前,需要在STM32裸機上完成對應外設的驅動開發(fā)后開始進行遷移。系統(tǒng)遷移的步驟主要包括增加新移植開發(fā)板的目錄、適配新開發(fā)板的外設驅動和HAL庫配置文件、配置系統(tǒng)時鐘、適配串口初始化文件、修改鏈接腳本和適配編譯配置等步驟。
在實現(xiàn)LiteOS成功移植后,通過加入在STM32裸機上已經調試運行成功的外設程序,就可以通過NB-IOT模塊與云端IOTDA平臺進行通信。系統(tǒng)的整體功能架構如圖3所示。
圖3 系統(tǒng)的整體功能架構
系統(tǒng)上電后,首先初始化LiteOS內核,然后在LiteOS中創(chuàng)建STM32硬件初始化任務,對STM32時鐘、串口、ADC、IIC的進行配置,再創(chuàng)建數(shù)據(jù)采集和數(shù)據(jù)上報任務,將采集到的各種數(shù)據(jù),利用NB-IOT上傳到IOTDA平臺。
IOTDA云測平臺中對系統(tǒng)模型進行了定義,在模型中一共定義了4個服務,即Sensor,LED,Temperature和In_put,分別對應這個設備側上傳到云側的光強度數(shù)據(jù)、LED的開關指令、PT100采集到的溫度數(shù)據(jù)和開關量的狀態(tài),通過這4個服務,就可以實時把測量到的數(shù)據(jù)上傳到IOTDA平臺,并可以由LED指令控制設備側的LED亮滅。
本文利用華為的LiteOS技術設計了遠程設備的管理平臺,可以實現(xiàn)光照度、溫度、數(shù)字量IO的數(shù)據(jù)上報,也可以在云側通過SET_LED指令實現(xiàn)對設備側的控制。NB-IOT在LiteOS的控制下,實時向IOTDA平臺傳遞數(shù)據(jù),在IOTDA平臺,通過設置Set_LED的狀態(tài)為ON,可以點亮LED,完成對開關量的控制。