張一宇 曲向林 于學山
(北京創意博物聯科技有限公司 北京市 100083)
當今生產生活中,溫度采集和應用無處不在,工業領域的溫度控制、工作環境中的溫度控制、家居環境中的溫度控制等等,它們都需要一個值或一定范圍的值,基于這些需要,在控制領域出現了很多基于溫度采集的集中控制系統、分布式控制系統以及溫度分析系統等綜合應用。隨著軟件和通信技術的發展,使用低功耗電子技術進行溫度采集成為了下一個應用的重點,比如在節能供熱領域,供熱管路溫度應該調節為多少才能使能源消耗性價比更高?這時就需要采集末端的溫度才能準確建立分析模型進行反饋控制。類似的應用很多,它的應用創造了價值。文中圍繞一個溫度點的采集,從電路、通信、協議、控制以及數據平臺等幾個方面進行了細致的分析,為了更好的說明系統的基本原理,系統只描述了一個溫度點的采集過程,文中的思想也可以擴展到復雜數據采集應用中。
整個系統由硬件和軟件組成,硬件包含了CPU 芯片、存儲、供電部分、溫度采集部分和NBIOT 傳輸部分。軟件包含了芯片的控制邏輯軟件和物聯網平臺的軟件,系統基本組成如圖1 所示,粗線代表供電回路,細線代表數據線路。下面我們按照溫度采集的流程對各部分進行闡述。主芯片CPU 實現了硬件的控制邏輯,首先控制一個MOSFET1,可以打開和關閉溫度傳感器和存儲器的供電電路,當打開MOSFET1 時,溫度傳感器和存儲芯片才能和CPU進行數據的交互工作。其次控制另一個MOSFET2,它負責NBIOT的電源供電,當開關打開時,CPU 可以將采集到的溫度數據通過NBIOT 和物聯網平臺建立連接,將數據傳輸到平臺上。

圖1

圖2

圖3
主芯片及外圍電路部分是整個硬件的核心,包括CPU、外部存儲器、電池供電和功率管MOSFET 四部分。CPU 采用的是意法半導體推出的STM32L 單片機,STM32L 系列單片機是基于ARM Cortex-M3 的超低功耗微控制器,除了一般32 位CPU 芯片的基本功能外,它具有優秀的節能性能,有六個超低功耗模式,系統設計中采用了1uA 停機模式。在數據采集間歇期保證了系統的最低功耗。外部存儲器采用的是串行flash 存儲芯片W25Q128,芯片尺寸小,具有很好的靈活性和性價比。通過串行SPI 方式與CPU 連接。供電范圍為2.7-3.6V,在激活狀態下電流功耗很低,W25Q128 將16M 的容量分為 256 個塊(Block),每個塊大小為 64K 字節,每個塊又分為 16 個扇區(Sector),每個扇區4K 個字節。W25Q128的擦寫周期多達10W 次,掉電后可存儲20年,滿足了數據存儲的設計要求。在電路設計中,有兩個功率管MOSFET,一個是控制溫度傳感器和外部存儲器的供電,另一個是控制NBIOT 芯片及外圍電路的供電。最大程度保證電池的應用時間,電池采用了功率型電池,容量可以根據數據采集的周期和連續工作時間選擇,它的額定電壓為3.6V,終止電壓為2.0V,最大持續放電電流為1A,同時它具有高能量密度和長貯存壽命的特點。
溫度采集的方式有很多種,市場上溫度傳感器的類型也很多,有PT100 熱電阻類型、NTC 負溫度系數類型、熱電偶型、4-20mA信號模塊類型以及數字芯片型等,這樣在設計一個溫度采集系統時要選擇滿足應用的傳感器或芯片,要依據具體的應用對溫度的測量范圍,采集精度、安裝形式、功耗、成本等方面來確定。文中描述的是空氣溫度的測量,根據具體要求采用了瑞士Sensirion 數字溫度傳感器芯片SНT35,它和CPU 之間是IIC 數據接口,傳感器功耗低,封裝較小。供電電壓為2.15V-5.5V,在測量溫度為20℃-60℃時,精度能夠達到絕對值0.1℃,溫度偏差為圖2 所示。同時具備采集環境濕度的功能,正常工作時,功耗僅為4.8uW。
傳輸部分采用了NBIOT 芯片SIM7020,NBIOT 構建于蜂窩網絡,只消耗200KНz 的帶寬,具有超強覆蓋、超低功耗、超大連接和超低成本四個特點。系統應用了SIM7020 中TCP 傳輸模式,將數據上傳到指定服務器,發送數據協議中包含了模組的IMEI 號,CPU 發送次數,系統所處位置的信號強度,存儲芯片內的5 次歷史數據等信息。選用了柔性PCB 天線,相比于棒狀天線,柔性PCB的成本較低,和外殼配合較好,發送成功能夠得到保障。供電電路使用了MOSFET 器件進行了控制,當數據傳輸時打開,數據傳輸結束后按相應的流程關閉,合理利用電池的電能。
數據采集邏輯是編寫芯片程序的基礎,描述了CPU 工作的流程,由于CPU的供電是直接電池供應,所以CPU始終處于工作狀態,除非強制把電池電源開關關閉。CPU 啟動后,邏輯程序開始運行,首先對電路中使用的IO 及內部寄存器等資源進行初始化。打開MOSFET1,溫度芯片和存儲芯片供電穩定后,讀取溫度數據到存儲器,同時RAM 中記錄當前采集的溫度值,也可以連續讀取多個溫度值,采集完成后關閉MOSFET1,同時打開MOSFET2,適當延時后,發送相應的AT 指令給SIM7020,當網絡狀態正常,并且處于激活聯網狀態后,連接指定的服務器IP 地址,從而采用TCP協議發送數據到平臺。SIM7020 每次發送AT 指令集的時間都不超過500 毫秒,聯網指令時間為1.5-2 秒,數據發送時間大約1-2 秒鐘,發送成功后,CPU 收到發送結束命令。此時先關閉MOSFET2,使CPU 處于待機休眠狀態,進入低功耗模式。休眠一定時間后,自動進行上述的工作流程,直到強制關閉電源或供電結束,停止工作。在軟件設計上,嚴格把控各個關鍵節點的時間,達到最小用電的效果。其次,用戶可以通過發送遠程指令或者電路板的按鍵來控制休眠時間達到合理的采集周期,從而根據具體應用達到節電或延長更換電池時間。傳輸部分的硬件和軟件設計都是以低功耗和高效為目的來進行數據傳輸的。數據采集流程為圖3 所示。
物聯網平臺采用了兩臺服務器,一臺是采集指令和數據存儲,另一臺用于前端數據分析展示,結合NIO 多線程以及kafka 消費機制靈活接入多種多臺采集器,本文沒有對物聯網平臺的功能進行詳細描述,簡要展示了數據存儲和查看界面如圖4 所示。系統采用了B/S 架構,操作系統為windows server 2016,數據庫采用了MySQL5.7,WEB 部分采用了Spring Boot 架構,使用了НTML 前端技術。通過設計的協議和指令格式,平臺和設備進行數據的采集,并存儲到數據庫,由于數據傳輸的協議中使用了斷電續傳技術,即數據協議中包含了5 次歷史數據信息,當傳輸數據出現1-5 次連續中斷后,可以通過協議包信息解析,并根據中斷的次數恢復歷史數據達到續傳的目的。平臺可以查看和展示數據記錄信息,也可以通過微信掃碼方式查看各個采集設備對應的實時數據和前5 次的歷史數據。物聯網平臺使用了多線程技術,滿足了數據采集設備接入平臺的規模化、實時性強的特點。平臺也提供了第三方數據傳輸接口,可以通過НTTP 協議與第三方平臺進行定制性傳輸,保證數據應用的靈活性。
我們將文中的采集設備又稱作采集器,它輕小便捷,因此采用多次抽樣和小規模、多地點試驗。整個測試過程分為一測和二測,一測是在組裝前完成的,檢測采集器的數據值,對應時間,信號值等。對滿足測試要求的進行二測。測試時,首先要完成一測,然后抽取部分成品分別在學校的操場、居民樓、企業廠房、開闊的道路以及信號良好的車間等進行二測。將采集器分別均勻放置在目標地點,依次打開各采集器的開關,連續采集100 次,掃碼查看100 次數據接受情況,通過記錄分析驗證設備的數據準確性和整體穩定性。在采集器上都有設備的二維碼,通過微信掃碼快速查看測試結果,結果為圖5 所示。
基于物聯網的溫度采集系統能夠滿足多種應用場合,特別是低功耗模式的應用,大大提高了系統的可復制性和系統安裝的靈活性。整個系統采用了目前主流的技術方式,不過,在系統的研究中也存在著許多要考慮的問題,首先,有些場合需要其他形式的溫度傳感器,不同信號類型的傳感器,它的采集電路不同,如何結合低功耗要求進行設計,需要針對性考慮。另外,NBIOT 傳輸方式是否可以進一步優化,結合采集頻率和存儲數據兩個方面進行更好的提高采集器的更換時間周期。最后,系統中采集器和平臺是單向傳輸的,如何解決采集器與平臺建立數據傳輸時進行雙向傳輸,可以讓平臺控制采集器的運行參數,都需要進行逐步的完善和優化。

圖4

圖5