孔亞廣 郭斌
摘 要:養(yǎng)蜂環(huán)境直接影響到蜂產(chǎn)品的質(zhì)量。為了方便快捷地采集移動養(yǎng)蜂車的溫濕度數(shù)據(jù),為后續(xù)的蜂產(chǎn)品質(zhì)量追溯留下線索,設(shè)計一款基于STM32F103VET6和WiFi技術(shù)的智能溫濕度采集終端。詳細分析了系統(tǒng)的功能并給出總體設(shè)計方案,介紹了各功能模塊的原理及具體實現(xiàn)方法,給出了系統(tǒng)的軟件設(shè)計流程圖。測試結(jié)果表明,系統(tǒng)性能穩(wěn)定,能夠?qū)崟r顯示數(shù)據(jù)并快速刷新界面,在移動環(huán)境下能夠快速組建網(wǎng)絡(luò)并實時傳輸數(shù)據(jù)到手機客戶端,具有一定的應(yīng)用價值。
關(guān)鍵詞:WiFi;數(shù)據(jù)采集;STM32;移動養(yǎng)蜂車;FatFS文件系統(tǒng)
中圖分類號:TP391 文獻標識碼:A 文章編號:2095-1302(2015)04-00-03
0 引 言
由于生態(tài)環(huán)境的變化,當前蜂農(nóng)生產(chǎn)越來越傾向于轉(zhuǎn)地生產(chǎn),因而移動養(yǎng)蜂車的應(yīng)用越來越廣泛。養(yǎng)蜂車上蜂箱及蜂產(chǎn)品存儲的溫濕度等對蜂產(chǎn)品質(zhì)量有著重要的影響,因此采集養(yǎng)蜂車的溫濕度具有重要意義。而移動養(yǎng)蜂車是一個相對孤立并且可移動的平臺,要在這個移動平臺上采集蜂箱內(nèi)的溫濕度并傳輸?shù)絀nternet,就必須無線實時采集并傳輸數(shù)據(jù)。目前,智能手機因其價格便宜、智能方便成為人們隨身攜帶的通信工具。那么,我們可以考慮讓蜂農(nóng)通過手機來采集養(yǎng)蜂車上的溫濕度數(shù)據(jù),并通過3G數(shù)據(jù)網(wǎng)絡(luò)將溫濕度數(shù)據(jù)傳輸?shù)絀nternet。如今的智能手機,集成了多種無線傳輸?shù)墓δ?,包括藍牙、3G、NFC(近場通信)和WiFi。那么,該選擇哪種無線網(wǎng)絡(luò)來實現(xiàn)溫濕度數(shù)據(jù)無線傳輸?shù)绞謾C端呢?表1對這幾種無線通信技術(shù)進行了比較[1]。
表1 幾種無線通信技術(shù)的比較
藍 牙 3G NFC WiFi
頻帶許可 無需許可 需要許可 無需許可 無需許可
適用范圍 5~10 m 國家級覆蓋 ≤0.2 m 50~150 m
傳輸速率 1~2 Mb/s 最高2 Mb/s 最高1 Mb/s 11~54 Mb/s
系統(tǒng)費用 較低 極高 很低 較低
建立時間 3~10 s <1 s 0.1 s 3 s
功耗 ≤100 mW >1 W ≤1 mW >1 W
考慮到3G的費用極高,藍牙和NFC的傳輸距離太短并且傳輸速度慢,而WiFi的傳輸距離能達到百米,并且傳輸速度很快,組網(wǎng)方便快捷[2,3],我們采用WiFi無線傳輸技術(shù),將嵌入式采集模塊采集的數(shù)據(jù)實時傳輸給手機端,實現(xiàn)對移動養(yǎng)蜂車的溫濕度數(shù)據(jù)的實時監(jiān)控。
1 系統(tǒng)總體方案的設(shè)計
系統(tǒng)采用意法半導(dǎo)體公司的STM32作為整個嵌入式系統(tǒng)的CPU,STM32系列處理器基于ARM Cortex-M3內(nèi)核[4];采用DHT11溫濕度傳感器實時采集養(yǎng)蜂車內(nèi)環(huán)境溫濕度情況;人接交互采用的是TFT LCD觸摸屏,方便對網(wǎng)絡(luò)模式及IP地址等參數(shù)進行選擇和設(shè)定;采集的數(shù)據(jù)通過WiFi無線傳輸給手機端,這里我們采用的是專門的串口WiFi模塊;蜂農(nóng)使用安卓智能手機將采集的數(shù)據(jù)接收并且存儲下來,通過自主開發(fā)的手機客戶端軟件實現(xiàn)這種WiFi網(wǎng)絡(luò)通信。最后,作為功能擴展,手機可以通過3G移動網(wǎng)絡(luò)將溫濕度數(shù)據(jù)傳輸?shù)交ヂ?lián)網(wǎng)上,方便遠程監(jiān)控和數(shù)據(jù)跟蹤。系統(tǒng)總體方案架構(gòu)如圖1所示。
1.1 系統(tǒng)硬件架構(gòu)
本系統(tǒng)選用STM32F103VET6作為主控的MCU,該芯片功能強大,性價比高,內(nèi)置64 KB的SRAM和512 KB的Flash[5]。選用該芯片還有一個重要的原因就是,它擁有靈活的靜態(tài)存儲控制器FSMC接口,通過該接口連接TFT-LCD觸摸屏,可以實現(xiàn)快速的數(shù)據(jù)讀寫,使LCD界面顯示更加流暢,獲得良好的人機交互體驗;選用2.8寸的TFT-LCD觸摸屏模塊,模塊板載了ILI9325液晶屏控制器和XPT2046觸摸屏控制器;系統(tǒng)板載了兩種供電接口,DC-DC(6~16 V直流穩(wěn)壓電路)接口和USB供電接口;板載了兩種下載接口,JTAG下載和USB轉(zhuǎn)串口的ISP下載接口;系統(tǒng)擴展的外部存儲電路包括E2PROM芯片AT24C02和SPI Flash芯片W25Q64;選用基于單總線的數(shù)字溫濕度傳感器DHT11采集溫濕度數(shù)據(jù);最后,選用Hi-Link公司的HLK-RM04串口WiFi模塊,實現(xiàn)采集數(shù)據(jù)無線傳輸?shù)绞謾C端。硬件架構(gòu)如圖2所示:
1.2 系統(tǒng)軟件架構(gòu)
系統(tǒng)軟件主要涉及到動態(tài)內(nèi)存管理、FatFS文件系統(tǒng)移植、AT24C02掉電保護程序、W25Q64 SPI Flash驅(qū)動程序、DHT11溫濕度采集驅(qū)動、TFT-LCD觸摸屏驅(qū)動程序及串口WiFi驅(qū)動程序等幾大模塊。這幾大模塊與STM32主控部分構(gòu)成系統(tǒng)的軟件架構(gòu)圖如圖3所示,系統(tǒng)的程序流程圖如圖4。
2 供電與下載電路
本系統(tǒng)配有專門的供電以及下載電路。供電包括一個外部電源輸入口DC_IN和一個USB供電口。DC_IN采用標準的直流電源插座,電路中采用DC-DC降壓芯片,支持DC6-16 V的寬電壓輸入。USB供電口則采用mini USB接口,這種接口,對于無論是養(yǎng)蜂車車體內(nèi)USB電源輸出接口還是車上自帶的太陽能供電系統(tǒng),都能方便地接入,給采集終端供電。
下載也預(yù)留了兩種接口,JTAG下載和USB轉(zhuǎn)串口ISP下載。JTAG是常用的ARM程序下載接口,而能夠供電的USB接口也能夠?qū)崿F(xiàn)程序下載。USB接口連接CH340G芯片,能夠?qū)崿F(xiàn)USB轉(zhuǎn)串口的ISP下載。
3 DHT11溫濕度采集模塊
終端板載了一款單總線的數(shù)字溫濕度傳感器DHT11,它不但能測溫度,還能測濕度。DHT11包括一個電阻式測濕元件和一個NTC測溫元件。DHT11與單片機之間能采用簡單的單總線進行通信,僅僅需要一個I/O口[6]。傳感器內(nèi)部溫度和濕度數(shù)據(jù)以40 B為一幀通過串行方式一次性傳輸給單片機,數(shù)據(jù)采用校驗和方式進行校驗,能夠有效地保證數(shù)據(jù)傳輸?shù)臏蚀_性。DHT11的功耗很低,在5 V的電源電壓下,平均電流0.5mA。硬件電路如圖5。
DHT11的數(shù)據(jù)格式,它采用單總線的數(shù)據(jù)格式,單個數(shù)據(jù)引腳端口完成輸入輸出雙向傳輸。其數(shù)據(jù)包由5個字節(jié) (40B)組成。數(shù)據(jù)分小數(shù)部分和整數(shù)部分,一次完整的數(shù)據(jù)傳輸為40 B,高位先出。DHT11的數(shù)據(jù)格式如下,其中校驗和為前四字節(jié)相加:
8 b濕度整數(shù)數(shù)據(jù)+8 b濕度小數(shù)數(shù)據(jù)+8 b溫度整數(shù)數(shù)據(jù)+8 b溫度小數(shù)數(shù)據(jù)+8 b校驗和
作為一種新型的單總線數(shù)字溫濕度傳感器,DHT11具有體積小、響應(yīng)速度快、抗干擾能力強、接口簡單、功耗低和性價比高等優(yōu)點,能廣泛應(yīng)用于智能監(jiān)控和家電消費品等領(lǐng)域[7]。
4 串口WiFi模塊
本系統(tǒng)選用串口WiFi模塊HLK-RM04作為無線傳輸?shù)慕鉀Q方案。HLK-RM04模塊是Hi-Link公司推出的一款低成本嵌入式WiFi模塊,該模塊是基于串口的符合網(wǎng)絡(luò)標準的嵌入式模塊,內(nèi)置TCP/IP協(xié)議棧和WLAN無線網(wǎng)絡(luò)協(xié)議棧,能夠?qū)崿F(xiàn)用戶串口、以太網(wǎng)、無線網(wǎng)(WiFi)3個接口的數(shù)據(jù)轉(zhuǎn)換。本系統(tǒng)只需使用HLK-RM04的串口轉(zhuǎn)WiFi功能,完成串口數(shù)據(jù)的無線傳輸。
HLK-RM04有3種工作模式:串口以太網(wǎng)(ETH-COM)、串口無線網(wǎng)卡(COM-WiFi STA)和串口無線接入點(COM-WiFi AP),每個模式又包含:TCP服務(wù)器、TCP客戶端、UDP服務(wù)器、UDP客戶端4個子模式。在本系統(tǒng)中,使用串口無線接入點(COM-WiFi AP)模式。在該模式下,模塊的WLAN和LAN口將關(guān)閉,僅開啟WiFi,作為無線接入點(WiFi AP),允許其他WiFi設(shè)備(智能手機、PAD、筆記本等)連接到本模塊,實現(xiàn)串口與其他設(shè)備之間的無線(WiFi)數(shù)據(jù)轉(zhuǎn)換互傳。
串口無線接入點模式下,模塊通過WiFi連接智能手機。模塊作為WiFi AP,智能手機做WiFi STA,模型如下圖6所示。
我們在手機客服端將手機設(shè)置成TCP Client(客戶端模式),同時通過TFT觸摸屏將各個HLK-RM04 WiFi模塊設(shè)置成為TCP Server(服務(wù)器模式)。WiFi模塊處于TCP模式并處于服務(wù)器模式時,其他TCP客端設(shè)備(手機、PAD等)可以主動的連接模塊。模型如圖7所示。
該WiFi模塊有兩種工作模式,AT指令模式和透明傳輸模式。在無線傳輸數(shù)據(jù)(透明傳輸)之前,必須通過AT指令來設(shè)置網(wǎng)絡(luò)參數(shù)等信息。
在AT指令模式下,可以通過串口的AT指令對系統(tǒng)參數(shù)進行配置。模塊支持的AT指令多達幾十個,在此不一一列舉。指令格式如下:
At+[command]=[value]\r
根據(jù)不同的命令,模塊將返回不同的返回值。
例如:”at+remoteip=192.168.11.100\r”表示設(shè)置遠端IP地址為192.168.11.100。
例如:”at+remoteip=?\r”表示查詢遠端IP地址。
在透明傳輸模式下,HLK-RM04模塊可以實現(xiàn)UART接口和WiFi無線網(wǎng)絡(luò)接口中數(shù)據(jù)的透明傳輸。模塊可以自動地將串口數(shù)據(jù)封裝成TCP/IP數(shù)據(jù)包,也可以將網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)換成串口可識別的數(shù)據(jù)。模塊完成這種串口數(shù)據(jù)包與網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)發(fā)功能的流程圖如圖8所示。
5 FatFS文件系統(tǒng)移植
為了方便外部Flash中字庫文件的讀取和寫入,引入了FatFS文件系統(tǒng)。FatFS是一個完全免費開源的FAT文件系統(tǒng)模塊,專門為小型嵌入式系統(tǒng)而設(shè)計[7]。它完全用標準C語言編寫,因此具有良好的硬件平臺獨立性,可以移植到8051、PIC、AVR、ARM等系列單片機上而只需做簡單的修改。它支持FAT12、FAT16和FAT32,支持多個存儲媒介;有獨立的緩沖區(qū),可以對多個文件進行讀和寫,并且特別對8位單片機和16位單片機做了優(yōu)化。
FatFS模塊的層次結(jié)構(gòu)圖如圖9所示。最頂層是應(yīng)用層,使用者無需理會FatFS的內(nèi)部結(jié)構(gòu)和復(fù)雜的FAT協(xié)議,只需要調(diào)用FatFS模塊提供給用戶的一系列應(yīng)用接口函數(shù),如f_open,f_read,f_write和f_close等,就可以像在PC上讀/寫文件那樣簡單。中間層FatFS模塊,實現(xiàn)了FAT文件讀/寫協(xié)議。FatFS模塊提供的是ff.c和ff.h。除非有必要,使用者一般不用修改,使用時將頭文件直接包含進去即可。
需要編寫移植代碼的是FatFS模塊提供的底層接口,包括存儲媒介讀/寫接口和供給文件創(chuàng)建修改時間的實時時鐘。
FatFS源碼可以在官方網(wǎng)站下載到。下載到FatFS軟件包后,解壓可得到兩個文件:doc和src。doc里面是對FatFS的介紹,src里面才是我們需要的源碼,F(xiàn)atFS源碼的文件組成見表2。
移植FatFS的時候,只需要修改2個文件,ffconf.h和diskio.c。FatFS模塊的所有配置項都在ffconf.h里面,通過配置里面的一些選項來滿足自己的需求。FatFS的移植大致分為如下3步:根據(jù)具體編譯器,在interger.h里面定義好數(shù)據(jù)的類型;通過ffconf.h配置FatFS的相關(guān)功能,滿足系統(tǒng)需要;在diskio.c里面編寫底層驅(qū)動函數(shù),實現(xiàn)物理磁盤的讀寫等。
6 測試
系統(tǒng)接上電源后,會逐步配置WiFi網(wǎng)絡(luò)各項參數(shù),我們通過觸摸屏將采集終端設(shè)置成TCP服務(wù)器模式,IP地址設(shè)為192.168.16.254,通信端口號為8086,建立好WiFi網(wǎng)絡(luò)(網(wǎng)絡(luò)名稱為“HLK-RM04養(yǎng)蜂車”)。手機連接HLK-RM04無線網(wǎng)絡(luò)后,打開通信客戶端軟件,選擇TCP客戶端模式,按照以上IP地址和端口號連接到采集終端。接下來就可以用進行溫濕度的采集了。下面圖10與圖11就是TFT-LCD的實時顯示界面和手機上采集軟件的界面截圖:
7 結(jié) 語
近年來,物聯(lián)網(wǎng)在人們生活中的應(yīng)用越來越廣泛。WiFi技術(shù)作為物聯(lián)網(wǎng)的一項關(guān)鍵技術(shù),因其快捷方便、無需布線等特點越來越受到人們的青睞。本文順應(yīng)這種趨勢,介紹了一種基于WiFi組網(wǎng)技術(shù)的溫濕度采集終端的設(shè)計和實現(xiàn)方法。系統(tǒng)經(jīng)測試后,運行效果良好,具有一定的應(yīng)用價值。當然,該設(shè)計方案還有很多可以改進的地方,比如通過WiFi自組網(wǎng)實現(xiàn)多個采集終端的數(shù)據(jù)轉(zhuǎn)發(fā)實現(xiàn)中長距離的WiFi數(shù)據(jù)傳輸以解決WiFi傳輸距離短的問題等??傊?,該設(shè)計方案很好地體現(xiàn)和深化了“物聯(lián)網(wǎng)”的含義,優(yōu)化后可用于智能家居、遠程監(jiān)控等諸多領(lǐng)域。
參考文獻
[1]王朝煒,王衛(wèi)東.物聯(lián)網(wǎng)無線傳輸技術(shù)與應(yīng)用[M].北京:北京郵電大學(xué)出版社,2012.
[2]汪濤.無線網(wǎng)絡(luò)技術(shù)導(dǎo)論[M].北京:清華大學(xué)出版社,2012.
[3]董健.物聯(lián)網(wǎng)與短距離無線通信技術(shù)[M].北京:電子工業(yè)出版社,2012.
[4]姚文詳.ARM Cortex-M3權(quán)威指南[M].北京:北京航空航天大學(xué)出版社,2009.
[5]劉軍,張洋.STM32開發(fā)之南-庫函數(shù)開發(fā)版本[M].北京:北京航空航天大學(xué)出版社,2012.
[6]韓英梅,趙建平.基于DHT11的無線溫濕度傳感器網(wǎng)絡(luò)節(jié)點的設(shè)計[J].井岡山大學(xué)學(xué)報,2010,31(5):67-70.
[7]李世奇,董浩斌.基于FatFs文件系統(tǒng)的SD卡存儲器設(shè)計[J].測控技術(shù),2011,30(12):79-81.
[8]倪天龍.單總線傳感器DHT11在溫濕度測控中的應(yīng)用[J].單片機與嵌入式系統(tǒng)應(yīng)用,2010(6):60-62.