劉巧利++賀鵬飛++周洋
摘 要:文中構建了基于CC3200和Yeelink平臺的無線遠程環境監測與控制系統,通過節點上各種不同類型的傳感器測量環境中的各項參數,借助CC3200片上WiFi模塊和強大的互聯網安全協議實現自主組網功能,將采集到的數據通過無線傳輸方式傳送到服務器,實現在Internet中實時監測環境指標數據并進行反饋控制。基于物聯網技術的遠程環境監測系統可與手機和平板電腦等終端互聯互通,方便靈活,可隨時加入各種傳感器,能夠適應不同環境的監測需求。
關鍵詞:CC3200;Yeelink平臺;遠程監測;反饋控制;傳感器
中圖分類號:TP39 文獻標識碼:A 文章編號:2095-1302(2017)10-00-03
0 引 言
隨著計算機技術和網絡技術的不斷發展,環境監測由原始的儀器設備分析向智能化的物聯網方向發展,實現了無線控制的遠程環境監測。然而傳統遠程監測設備存在功耗高、體積大、安裝不方便等特點,尤其是物聯網應用中遠程控制設備的不完善,使其應用場合受到了極大限制。為了提高系統工作效率,擴大系統的使用范圍,降低生產成本,需要一種功耗低、體積小、便于移動、安裝無需布線、使用方便快捷的新型遠程監測與控制系統[1]。
本文針對目前環境監測過程中出現的地域限制、網絡不穩定等導致測量參數不準確的問題,應用CC3200芯片和Yeelink平臺實現數據交互與連接,溫度的遠程監測及燈光控制,使其不受時間、地域的限制[2]。軟硬件設計靈活清晰,具有很強的擴展性,利用這些成果對本設計做適當修改就能夠實現各種有意義的應用系統。
1 系統硬件設計
1.1 系統設計原理
本項目主要以CC3200芯片的內置WiFi為依托,借助互聯網HTTP協議來實現聯網功能。解決了傳感器與主控芯片的數據傳輸、系統聯網方式、傳感器節點與物聯網平臺的數據傳輸、終端用戶數據的獲取等問題,實現了遠程監測與控制,只要手機或電腦等手持設備連接到因特網,通過服務器就可以實現手機終端對系統終端的監測控制。系統原理如圖1所示。
1.2 物聯網云平臺
本項目采用Yeelink平臺。Yeelink是一個開放的通用物聯網平臺,可為用戶提供傳感器云服務,并通過實時數據處理提供安全可靠的狀態監控。Yeelink獨有的高并發接入服務器和云存儲方案,能夠同時完成海量傳感器數據接入和存儲任務,確保數據能夠安全保存在互聯網上。Yeelink平臺支持數值型、圖像型、GPS型和泛型等多種數據的接入,并提供完備的API文檔和代碼示例。通過API接口,簡單操作就能將傳感器接入Yeelink平臺,實現傳感器數據的遠程監控[3]。在Yeelink上,數據不再是孤單的節點,存儲在Yeelink的數據可以簡單的被API取回,放置到個人博客上,或根據規則自動轉發到個人指定的微博上,實現人與數據的全面融合[4]。
圖1 系統整體原理圖
1.3 CC3200 Wireless MCU
該監測與控制系統的主芯片采用CC3200,它是具有內置WiFi的MCU。CC3200器件是一個完整平臺解決方案,包括軟件、示例應用、工具、用戶和編程指南、參考設計以及TI E2E 支持社區。FT2232芯片支持串口Flash編程,可通過PC的USB口進行UART通信。測試用的板子內置天線設計、2個用戶按鍵和3個LED指示燈及用于供電和調試的Micro USB接口、加速度和溫度傳感器、電流測量接口等[3]。
作為業界第一個具有內置WiFi連通性的單片微控制器單元(MCU),CC3200有著優良的特性:
(1)擁有業界最低的功耗,適用于電池供電式設備;
(2)高靈活性,CC3200的集成型可編程ARM Cortex?-M4 MCU允許用戶添加其特有的代碼;
(3)可利用快速連接、云支持和片上WiFi、互聯網和安全協議實現針對IoT的簡易開發;
(4)能夠采用某種手機或平板電腦應用程序或網絡瀏覽器簡單且安全地將其設備連接至WiFi[3]。
正是基于這些優良特性,CC3200才能被廣泛用于物聯網應用,如家庭自動化、家用電器訪問控制、安防系統、互聯網網關、IP網絡傳感器節點等,具有廣闊的發展前景。
2 系統軟件設計
本系統軟件設計采用分層次和模塊化的設計思想,從簡單的基本設備管理到無線網絡配置,及BSD Socket服務與更多其他功能。這些功能被歸類為不同的組件,每個組件具有不同的功能。其中包括設備(Device),WLAN連接,Socket通信,網絡應用(NetApp),網絡參數配置(Netcfg),文件系統(FS)等,各組件的功能見表1所列。
以上各個組件獨立進行封裝,通過驅動調用各種功能。在驅動上分出外設抽象層,使得程序調用更簡單,可實現功能的透明化。如果使用嵌入式操作系統,還可以添加OS抽象層,使得系統便于調用底層驅動以及各種功能函數[5]。使用紅外非接觸式溫度傳感器,若采用I2C接口與CC3200通信,則需要調用I2C驅動,因此它屬于Device模塊。WiFi接入WLAN模塊,HTTP通信屬于Socket和Net App模塊,數據的本地存儲屬于文件系統(FS)模塊。
系統執行包括CC3200初始化、網絡連接初始化、溫度傳感器TMP006以及LED初始化、HTTP Client初始化、連接云平臺上傳溫度數據及控制信息的獲取,最后執行控制。系統執行流程如圖2所示。
2.1 系統初始化設計
為確保系統上電能夠正常運行,需要對CC3200進行初始化配置。CC3200初始化的過程比較復雜,初始化會調用系統函數,包括促使系統運行的底層驅動。具體流程為:設置向量標記地址,使能處理器,使能系統中斷,配置系統時鐘,配置DMA,使能實時時鐘RTC,設置SWD模式,重寫JTAG線程,使能軟復位,關閉休眠[6]。endprint
2.2 網絡連接的初始化設計
為確保系統能夠正常連接網絡,需要對CC3200網絡連接進行初始化配置。初始化會調用網絡連接相關函數,包括WLAN連接,網絡配置等相關驅動[7]。首先,配置系統進入默認狀態,選擇進入station模式后,獲取設備版本信息,設置WLAN連接策略,使能DHCP客戶端,設置發射功率,設置電源管理策略。最后,初始化變量獲取SSID參數,連接WLAN即可。當無法進入station模式時,我們就要轉換模式,使系統重新進入默認狀態。
2.3 溫度傳感器TMP006的配置
溫度傳感器采用TMP006。TMP006為非接觸式溫度傳感器,具有2.2~5.5 V的輸入電壓范圍,8位可編程地址,本設計采用的TMP006地址默認為0x41。工作時電流消耗僅為240 μA,通過I2C串行總線接口與CC3200通信[8]。I2C串行總線有兩根信號線,一根為雙向數據線SDA,另一根為時鐘線SCL。所有接到I2C總線設備上的串行數據SDA都接到總線的SDA上,各設備的時鐘線SCL接到總線的SCL上。
為正確讀取傳感器數據,首先通過I2C接口函數對TMP006的MANUFAC_ID 和DEVICE_ID 進行驗證,驗證通過才能讀取傳感器值,經處理、計算后變為溫度值。
2.4 HTTP Client初始化
數據要上傳到物聯網云平臺。物聯網云平臺是一種服務器,規定了數據的傳輸協議并給出了與數據交互相關的API,協議規定使用HTTP進行連接和數據交互。要使用HTTP,需對HTTP Client進行初始化操作。本設計中主要采用了GET和POST兩種方式對數據進行操作。GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息。因此只需定義GET和 POST方式即可。
2.4.1 定義GET
在HTTP請求中,第一行必須是一個請求行(Request Line),用來說明請求類型、要訪問的資源以及使用的HTTP版本。緊接著是一個首部(Header)小節,用來說明服務器要使用的附加信息。在首部之后是一個空行,再此之后可以添加任意其他數據,稱之為主體,HTTP請求后,服務器會對請求做出響應。在請求之前,HTTP Client把這些信息封裝起來,最后調用Socket通信接口發送給服務器。
2.4.2 定義 POST
POST同樣包含請求和響應,POST方式同時可把數據傳輸給服務器,本設計提交的數據為JSON格式,利用數組進行存儲。POST的方式包含與GET方式相同的頭部信息,只是在最后把溫度數據信息封裝在BODY里[9]。
2.5 連接云平臺及數據交互
使用公共物聯網云平臺。該平臺傳輸的數據為JSON格式,平臺為用戶提供一些API,使用的API包括創建數據點和查看數據點。
2.5.1 創建數據點
對該URL的一個HTTP POST請求會為指定的傳感器創建一個新的數據點,使用此API來為傳感器存儲歷史數據。數據格式為JSON,即一個datapoint是由key和value組成的鍵值對,key為timestamp, value為數值,請求方式為POST,返回值為HTTP Headers Only,需要在HTTP Header中增加API Key來授權寫入操作。
2.5.2 查看數據點
對該URL的請求返回指定key的datapoint,若未指定key,則返回該sensor的最新數據,請求方式為GET,返回值為請求的傳感器信息,返回值數據格式為JSON。在訪問數據和創建數據之前,需要在物聯網云平臺注冊用戶,并創建設備和傳感器,這樣可以獲取對應API Key。
2.6 執行控制結果
在通過GET和POST方式請求信息之后,服務器都會返回對應的信息,當通信成功且被云平臺接受之后,服務器會返回具體的操作信息。上傳溫度數據之后服務器會確認上傳成功。請求LED開關狀態之后,服務器返回LED的亮滅狀態。在本設計中,主要完成對LED狀態的控制,因此,板載LED顯示的狀態即為服務器上的狀態。控制端使用Android App修改LED狀態信息,即可改變LED的亮滅。控制LED調用CC3200 GPIO修改IO口的輸出狀態。時序如圖3所示。
3 系統功能測試
系統功能測試包括上行測試和下行測試。上行主要為監測,指溫度傳感器數據從CC3200發往服務器,手機App從服務器下載數據,然后以曲線形式表現出來。下行主要為控制,是指用戶通過手機App或電腦訪問服務器,控制指示燈的開閉。
3.1 上行測試
首先通過USB對電路板供電,然后打開Android端Yeelink平臺并登錄,一段時間后查看,數據以曲線形式表示,如圖4所示。橫坐標表示時間,縱坐標表示溫度,曲線上每一個點都是對應時刻室內的溫度。此次測試是在夏季,我們選擇室內環境,截取了早上7點到下午1點間得到的數據。
3.2 下行測試
通過手機App登錄Yeelink平臺,規定在按下手機控制按鈕5 s之內LED燈做出正確反應則為成功,否則為失敗。經過600次測試,控制過程基本準確,統計數據見表2所列。
4 結 語
本文設計開發了基于CC3200的遠程環境監測與燈光控制系統,在Yeelink平臺上實現了無線遠程監控,不論手機或電腦都可實現靈活操作。在系統架構上,實現了參數的遠程信息采集,以太網和3G移動通信的接入方式,云計算和Web服務器發布數據及數據的監控與共享。在此控制基礎上,還可以實現更多功能,如測空氣濕度、攝像頭監控等,對工農業的發展有實際意義。
參考文獻
[1]陳穎瑩.芯片上的網絡TI SimpleLink Wi-Fi讓聯網如此簡單[J].電子技術應用,2014,40(7):2.
[2] TI推出新型SimpleLink Wi-Fi CC3100和CC3200平臺[EB/OL].[2014-06-17]. http://products.eccn.com/products_2014061714321497.htm.
[3] Texas Instruments Inc. CC3200 SimpleLinkTM Wi-Fi? and Internet-of-Things solution, a single-chip wireless MCU [EB/OL].[2015-02-01].http://www.ti.com/lit/ds/symlink/cc3200.pdf.
[4]申斌,張桂青,汪明,等. 基于物聯網的智能家居設計與實現[J].自動化與儀表,2013,28(2):6-10.
[5] MARTIN T. The designers guide to the Cortex-M processor family: a tutorial approach[M]. Amsterdam: Elsevier Ltd,2013:109-131.
[6]郭書軍.ARM Cortex-M4 + Wi-Fi MCU 應用指南[M].北京:電子工業出版社,2015.
[7]姚文祥.ARM Cortex-M3與Cortex-M4權威指南:第3版[M].吳常玉,等,譯.北京:清華大學出版社,2015.
[8] Texas Instruments Inc. CC3100/CC3200 SimpleLinkTM Wi-Fi? Internet-on-a-chip users guide[EB/OL].[2016-03-01].http://www.ti.com/lit/ug/swru368a/swru368a.pdf.
[9]耿興隆,張瑩,薛玉倩.PHP 基礎與案例開發詳解[M].北京:清華大學出版社,2015.endprint