唐 軍,杜秀君
(1.宜賓職業技術學院 電子信息與人工智能學院,四川 宜賓 644003;2.宜賓職業技術學院 科技處,四川 宜賓 644003)
Huawei LiteOS發布于2015年5月的華為網絡大會上,是面向IoT領域構建的輕量級物聯網操作系統[1]。本設計利用LiteOS系統,通過NB-IOT技術完成與華為IOTDA物聯網平臺的對接,可以將數據發送到該平臺,也可以從該平臺下發指令,控制設備側。本設計來源于橫向課題,要求基于NB-IOT技術,將溫度、光照度、數字量、開關量輸入數據傳入IOTDA平臺,并能依據IOTDA平臺指令,控制繼電器輸出。
按項目需求,本設計需要在采集完外界的溫度、光照度數據與數字開關量數據后,對數據進行上傳處理,并能對外部的一些數字IO量進行開關的控制。為方便現場的數據調試,設計采用串口觸摸屏進行顯示。數據采集完成后,通過NB-IOT模塊,系統將數據傳送到華為的IDOA平臺,進行遠程處理。

圖1 系統架構設計
系統由STM32小系統、高速數字量輸入電平轉換、光照度數據采集、PT100溫度采集模塊、開關量輸出、觸摸屏通信接口、NB-IOT模塊通信接口設計構成。
外部數據的開關量,其電平標準為5 V,而STM32的端口為3.3 V,故需要設計一個高速數字量輸入電平轉換模塊完成電平轉換功能,實現電平轉換與端口保護。本設計采用光耦6N137實現此功能。
系統的整體設計參考了小熊派開發板的設計。該開發板包含采集光照度的E53智慧路燈模塊。本設計直接采用該模塊,連接與光照度模塊的接口。光照度模塊采用IIC接口進行通信。
PT100采集外部的溫度信號,經過電橋電路后,得到與溫度相關的信號,然后將電壓值送入儀表放大,放大后的電壓信號送入STM32,利用STM32內部自帶的ADC模塊進行模數轉換,并利用查表法完成溫度信號的換算,從而得到具體的溫度信號[2]。設計出的具體電路,如圖2所示。

圖2 PT100溫度采集模塊設計
按設計要求,系統需要能夠對華為物聯網平臺IOTDA下發的指令進行解析,用以控制繼電器。
本設計在STM32上實現了華為的LiteOS系統運行。該系統可以很方便地與華為IOTDA平臺實現連接。本設計,一是在MDK平臺上,完成了LiteOS的遷移;二是單獨為每一個電路模塊標志了驅動程序,通過觸摸屏完成了數據的顯示;三是利用NB-IOT將所采集到的數據上報到華為IOTDA平臺。在云端,本設計也對應開發了相應的程序用以響應和控制設備側。
Huawei LiteOS是華為面向IoT領域構建的輕量級物聯網操作系統[3],系統可廣泛應用于智能家居、個人穿戴、車聯網、城市公共服務、制造業等領域[4]。
LiteOS系統遷移之前,需要在STM32裸機上完成對應外設的驅動開發后開始進行遷移。系統遷移的步驟主要包括增加新移植開發板的目錄、適配新開發板的外設驅動和HAL庫配置文件、配置系統時鐘、適配串口初始化文件、修改鏈接腳本和適配編譯配置等步驟。
在實現LiteOS成功移植后,通過加入在STM32裸機上已經調試運行成功的外設程序,就可以通過NB-IOT模塊與云端IOTDA平臺進行通信。系統的整體功能架構如圖3所示。

圖3 系統的整體功能架構
系統上電后,首先初始化LiteOS內核,然后在LiteOS中創建STM32硬件初始化任務,對STM32時鐘、串口、ADC、IIC的進行配置,再創建數據采集和數據上報任務,將采集到的各種數據,利用NB-IOT上傳到IOTDA平臺。
IOTDA云測平臺中對系統模型進行了定義,在模型中一共定義了4個服務,即Sensor,LED,Temperature和In_put,分別對應這個設備側上傳到云側的光強度數據、LED的開關指令、PT100采集到的溫度數據和開關量的狀態,通過這4個服務,就可以實時把測量到的數據上傳到IOTDA平臺,并可以由LED指令控制設備側的LED亮滅。
本文利用華為的LiteOS技術設計了遠程設備的管理平臺,可以實現光照度、溫度、數字量IO的數據上報,也可以在云側通過SET_LED指令實現對設備側的控制。NB-IOT在LiteOS的控制下,實時向IOTDA平臺傳遞數據,在IOTDA平臺,通過設置Set_LED的狀態為ON,可以點亮LED,完成對開關量的控制。