国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于CC2538和Contiki的無線傳感器網(wǎng)絡(luò)設(shè)計

2015-03-31 13:13:24孫魯籍芳陳凱楊志豪
物聯(lián)網(wǎng)技術(shù) 2015年3期
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò)

孫魯+籍芳+陳凱+楊志豪

摘 要:無線傳感器網(wǎng)絡(luò)作為物聯(lián)網(wǎng)技術(shù)中非常重要的應(yīng)用領(lǐng)域,目前受到越來越多的關(guān)注。采用TI公司的CC2538芯片和開源物聯(lián)網(wǎng)操作系統(tǒng)Contiki,配合相應(yīng)的傳感器芯片,設(shè)計并實現(xiàn)了可以采集溫度、濕度和照度的無線傳感器網(wǎng)絡(luò),該無線傳感器網(wǎng)絡(luò)的部署為實驗室的檢測環(huán)境提供了更加方便精確的監(jiān)控手段。

關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);CC2538;Contiki;溫濕度采集

中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2015)03-00-03

0 引 言

近年來,隨著物聯(lián)網(wǎng)技術(shù)的逐漸成熟,物聯(lián)網(wǎng)技術(shù)在環(huán)境監(jiān)控、智慧城市、智能家居等領(lǐng)域的應(yīng)用越來越廣泛[1,2]。物聯(lián)網(wǎng)技術(shù)應(yīng)用中一個非常重要領(lǐng)域就是無線傳感器網(wǎng)絡(luò)(WSN) [3,4]。WSN通過部署一定數(shù)量由電池供電的傳感器節(jié)點(diǎn),組成無線通信網(wǎng)絡(luò),可以方便地采集周圍環(huán)境的各種變化情況,例如溫度、濕度、照度等信息,也可以采集人體的各項生理指標(biāo),例如心跳、血壓等信息。WSN技術(shù)可以應(yīng)用于環(huán)境監(jiān)測、老人健康護(hù)理、停車場管理、交通管理、智能家居等很多領(lǐng)域。

本文中采用TI公司的CC2538芯片和開源物聯(lián)網(wǎng)操作系統(tǒng)Contiki[5],設(shè)計了用于實驗室測試環(huán)境的無線傳感器網(wǎng)絡(luò)。該網(wǎng)絡(luò)通過在空間中布置傳感器節(jié)點(diǎn),采集各點(diǎn)的監(jiān)控信息,并通過匯聚節(jié)點(diǎn)將數(shù)據(jù)上傳至計算機(jī),實現(xiàn)了監(jiān)控數(shù)據(jù)的實時顯示和數(shù)據(jù)庫存儲。

1 系統(tǒng)硬件設(shè)計

1.1 傳感器節(jié)點(diǎn)

WSN中各傳感器節(jié)點(diǎn)采用電池供電,為了增加電池壽命,在主芯片的選擇上必須把耗電量作為一個重要的指標(biāo)。傳感器節(jié)點(diǎn)的硬件結(jié)構(gòu)示意圖如圖1所示。傳感器節(jié)點(diǎn)采用兩節(jié)7號干電池作為電源,主芯片選用TI公司的CC2538芯片,該芯片為ARM Cortex-M3內(nèi)核,帶有I2C接口,可以滿足與傳感器通信和無線組網(wǎng)的要求。我們選用的CC2538芯片的片上FLASH為512 KB,RAM為32 KB,其內(nèi)部集成了工作頻率為2.4 GHz并符合IEEE802.15.4標(biāo)準(zhǔn)的RF收發(fā)器。在最省電的外部中斷模式下,該芯片的供電電流僅為0.4 μA,滿足低功耗的設(shè)計要求。

圖1 傳感器節(jié)點(diǎn)硬件結(jié)構(gòu)

傳感器節(jié)點(diǎn)中的溫濕度傳感器選用Sensirion公司的SHT21溫濕度傳感器芯片,該芯片在PCB板上占用的面積非常小,僅為3×3 mm2。缺省設(shè)置下溫度測量分辨率為0.01?C,相對濕度測量分辨率為0.04% RH。該芯片在休眠狀態(tài)下供電電流僅為0.15 μA,在測量狀態(tài)下供電電流為300 μA。該芯片通過I2C總線與CC2538主芯片通信,通過設(shè)置寄存器,可以分別讀取溫度測試值和相對濕度測試值,SHT21芯片提供了通過CRC校驗來進(jìn)行傳輸完整檢查的功能。通過I2C總線讀到的溫度原始值ST利用下面的公式換算為攝氏度值T:

(1)

讀到的相對濕度原始值SRH則通過下列的公式換算為相對濕度RH:

(2)

傳感器節(jié)點(diǎn)中的照度傳感器選用MAXIM公司的MAX44009照度傳感器芯片,該芯片為目前工業(yè)界最低功耗的環(huán)境光傳感器芯片,在正常操作狀態(tài)下供電電流僅為0.65μA。在缺省狀態(tài)下,該芯片每800 ms測量一次環(huán)境照度值,該狀態(tài)下芯片處于最省電的工作模式,我們在設(shè)計中使用了該工作模式。該芯片在PCB板上占用的面積比溫濕度傳感器SHT21芯片更小,僅為2×2 mm2。除此之外,該芯片具有十分寬廣的照度測量范圍(0.045 Lux至188 000 Lux)。該芯片通過I2C總線與CC2538主芯片進(jìn)行通信,通過設(shè)置寄存器可以讀取所測量照度的指數(shù)部分(exponent)和尾數(shù)部分(mantissa),然后通過下列公式換算為照度值(Lux):

Lux=2(exponent)×mantissa×0.045 (3)

1.2 匯聚節(jié)點(diǎn)

匯聚節(jié)點(diǎn)的作用是接收各傳感器節(jié)點(diǎn)發(fā)出的測量數(shù)據(jù),并通過串口發(fā)送給計算機(jī)。匯聚節(jié)點(diǎn)的硬件結(jié)構(gòu)示意如圖2所示。主芯片CC2538通過FTDI公司的FT232R芯片實現(xiàn)UART接口與USB接口之間的轉(zhuǎn)換。

圖2 匯聚節(jié)點(diǎn)硬件結(jié)構(gòu)示意圖

2 系統(tǒng)軟件設(shè)計:

2.1 節(jié)點(diǎn)軟件設(shè)計

本文中的WSN采用開源物聯(lián)網(wǎng)操作系統(tǒng)Contiki作為各節(jié)點(diǎn)的操作系統(tǒng),該操作系統(tǒng)作為輕量級的嵌入式操作系統(tǒng),具有占用硬件資源小的優(yōu)點(diǎn),在典型的配置下,Contiki僅僅占用大約2 KB的RAM以及40 KB的FLASH。除此之外,Contiki提供了非常方便的無線通信協(xié)議。所有節(jié)點(diǎn)的軟件設(shè)計在Ubuntu下完成,編譯鏈接工具為arm-none-eabi-gcc。

一般情況下,WSN網(wǎng)絡(luò)各節(jié)點(diǎn)的RF收發(fā)器都是功耗最高的部分,如何在保證通信暢通的前提下降低RF收發(fā)器的功耗就成了WSN操作系統(tǒng)的關(guān)鍵問題之一。Contiki操作系統(tǒng)中,通過利用稱為ContikiMAC的RDC(radio duty cycling)機(jī)制來減少各節(jié)點(diǎn)RF收發(fā)器的工作時間[6]。在無線信號正常傳輸?shù)那疤嵯?,該機(jī)制做到了讓各節(jié)點(diǎn)RF收發(fā)器在大約99%的時間內(nèi)處于關(guān)閉狀態(tài),從而大大降低各節(jié)點(diǎn)的功耗。

對于各傳感器節(jié)點(diǎn),我們在軟件中首先設(shè)計了溫濕度傳感器和照度傳感器的I2C讀寫功能,并利用了Contiki的RIME協(xié)議將各傳感器收集到數(shù)據(jù)發(fā)送出去。CC2538與SHT21溫濕度傳感器之間進(jìn)行I2C通訊的代碼如下:

i2c_master_set_slave_address(SHT21_SLAVE_ADDRESS, I2C_SEND);

i2c_master_data_put(regist);

i2c_master_command(I2C_MASTER_CMD_BURST_SEND_START);

if(regist == SHT21_TEMP_REGISTER) {

for(temp=0; temp<12; temp++) {

clock_delay_usec(8500);

}

} else if(regist == SHT21_HUMI_REGISTER) {

for(temp=0; temp<12; temp++) {

clock_delay_usec(2900);

}

}

i2c_master_set_slave_address(SHT21_

SLAVE_ADDRESS, I2C_RECEIVE);

i2c_master_command(I2C_MASTER_CMD_BURST_

RECEIVE_START);

*data = i2c_master_data_get() << 8;

i2c_master_command(I2C_MASTER_

CMD_BURST_RECEIVE_CONT);

*data |= i2c_master_data_get();

i2c_master_command(I2C_MASTER_CMD_BURST_

RECEIVE_FINISH);

CC2538和MAX44009照度傳感器之間進(jìn)行I2C通信的代碼如下:

i2c_master_set_slave_address

(MAX44009_ADDRESS, I2C_SEND);

i2c_master_data_put(MAX44009_LUX_HIGH_ADDR);

i2c_master_command(I2C_MASTER_CMD_BURST_SEND_

START);

i2c_master_set_slave_address(MAX44009_ADDRESS, I2C_

RECEIVE);

i2c_master_command(I2C_MASTER_CMD_BURST_

RECEIVE_START);

highbyte = i2c_master_data_get() ;

i2c_master_set_slave_addres

(MAX44009_ADDRESS, I2C_SEND);

i2c_master_data_put(MAX44009_LUX_LOW_ADDR);

i2c_master_command(I2C_MASTER_

CMD_BURST_SEND_CONT);

i2c_master_set_slave_address(MAX44009_

ADDRESS, I2C_RECEIVE);

i2c_master_command(I2C_MASTER_CMD_BURST_

RECEIVE_CONT);

lowbyte = i2c_master_data_get() ;

i2c_master_command(I2C_MASTER_

CMD_BURST_SEND_FINISH);

i2c_master_command(I2C_MASTER_CMD_BURST_

RECEIVE_FINISH);

RIME協(xié)議是Contiki自帶的無線局域網(wǎng)通信協(xié)議[7],通過分層化的協(xié)議結(jié)構(gòu),可以實現(xiàn)廣播、單播、可靠單播等傳輸方式,并可以實現(xiàn)多跳傳輸。在考慮到使用環(huán)境后,我們通過現(xiàn)場試驗對比了幾種傳輸方式的可靠性,最后決定采用單跳的RIME可靠單播方式來發(fā)送傳感器數(shù)據(jù)。各傳感器節(jié)點(diǎn)每十分鐘采集一次數(shù)據(jù)并發(fā)送出去,由匯聚節(jié)點(diǎn)接收到后發(fā)送給上位計算機(jī),整個無線采集系統(tǒng)的示意圖如圖3所示。

圖3 無線采集系統(tǒng)結(jié)構(gòu)示意圖

2.2 上位機(jī)軟件設(shè)計

上位機(jī)軟件采用C#語言進(jìn)行設(shè)計,在功能上主要包括了顯示各傳感器節(jié)點(diǎn)回傳數(shù)據(jù)和數(shù)據(jù)庫保存。上位機(jī)通過USB轉(zhuǎn)串口的方式實現(xiàn)與匯聚節(jié)點(diǎn)的串口通訊,為了提高串口數(shù)據(jù)讀取的可靠性,在程序設(shè)計中沒有使用串口控件,而是使用了下面的接收函數(shù)來接收串口數(shù)據(jù):

private void DoReceive()

{

Byte[] buffer = new Byte[1024];

while (receiving)

{

if (comport.BytesToRead > 0)

{

Int32 length = comport.Read(buffer, 0, buffer.Length);

Array.Resize(ref buffer, length);

Display d = new Display(DisplayText);

this.Invoke(d, new Object[] { buffer });

Array.Resize(ref buffer, 1024);

}

Thread.Sleep(16);

}

}

數(shù)據(jù)庫部分采用SQL Server 2008作為數(shù)據(jù)源,記錄所采集的溫濕度、照度數(shù)據(jù),數(shù)據(jù)表的第一列為各傳感器節(jié)點(diǎn)中CC2538芯片RF MAC的IEEE地址,以區(qū)分各傳感器,最后一列為數(shù)據(jù)存儲時間,以備以后查詢。

3 結(jié) 語

本文中設(shè)計了基于CC2538和Contiki的無線傳感器網(wǎng)絡(luò),該無線傳感器網(wǎng)絡(luò)可以采集空間各點(diǎn)的溫濕度、照度數(shù)據(jù),并通過上位機(jī)進(jìn)行顯示和數(shù)據(jù)存儲。經(jīng)過現(xiàn)場試驗發(fā)現(xiàn),該系統(tǒng)數(shù)據(jù)傳輸可靠性高,測試過程中沒有發(fā)現(xiàn)丟包現(xiàn)象。由于各芯片選用上突出了低功耗的要求,使得WSN中各傳感器節(jié)點(diǎn)的電池壽命大大增加。本文中所設(shè)計的WSN提供了更加方便精確地進(jìn)行測試環(huán)境監(jiān)控的手段,可以用于大型分布式光度計光學(xué)暗室的三維空間中溫濕度、照度的測量。

參考文獻(xiàn)

[1] 錢志鴻,王義君.面向物聯(lián)網(wǎng)的無線傳感器網(wǎng)絡(luò)綜述[J]. 電子與信息學(xué)報,2013,35(1):215-227.

[2] Atzori L., Iera A., Morabito G..From “Smart Objects” to “Social Objects”: The Next Evolutionary Step of the Internet of Things[J] IEEE Communications Magazine, 2014(1):22-24.

[3] Andrea Castagnetti, Alain Pegatoquet, Trong Nhan Le.A Joint Duty-Cycle and Transmission Power Management for Energy Harvesting WSN [J] IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS,2014,10(2):38-39.

[4] Tevfik Yücek,Hüseyin Arslan.A Survey of Spectrum Sensing Algorithms for Cognitive Radio Applications[J].IEEE COMMUNICATIONS SURVEYS & TUTORIALS, 2009,11(1):18-21.

[5] Adam Dunkels, Bj?rn Gr?nvall, Thiemo Voigt. Contiki-a lightweight and flexible operating system for tiny networked sensors[C].Proceedings of the First IEEE Workshop on Embedded Networked Sensors (Emnets-I), Tampa, Florida, USA, 2004.

[6] Adam Dunkels. The ContikiMAC Radio Duty Cycling Protocol. [R] Technical Report T2011:13, Swedish Institute of Computer Science,2011.

[7] Adam Dunkels. Rime - a lightweight layered communication stack for sensor networks. [C] Proceedings of the European Conference on Wireless Sensor Networks (EWSN), Poster/Demo session, Delft, The Netherlands,2007.

猜你喜歡
無線傳感器網(wǎng)絡(luò)
基于STC單片機(jī)及SI4432的無線傳感網(wǎng)的設(shè)計與實現(xiàn)
無線傳感器網(wǎng)絡(luò)在農(nóng)田數(shù)據(jù)監(jiān)測中的應(yīng)用研究
基于層次和節(jié)點(diǎn)功率控制的源位置隱私保護(hù)策略研究
基于無線傳感器網(wǎng)絡(luò)的綠色蔬菜生長環(huán)境監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)
基于混沌加密的無線傳感器網(wǎng)絡(luò)安全技術(shù)
基于無線傳感器網(wǎng)絡(luò)的葡萄生長環(huán)境測控系統(tǒng)設(shè)計與應(yīng)用
一種改進(jìn)的基于RSSI最小二乘法和擬牛頓法的WSN節(jié)點(diǎn)定位算法
無線傳感器網(wǎng)絡(luò)定位技術(shù)可靠性分析
對無線傳感器網(wǎng)絡(luò)MAC層協(xié)議優(yōu)化的研究與設(shè)計
科技視界(2016年22期)2016-10-18 15:25:08
無線傳感器網(wǎng)絡(luò)技術(shù)綜述
乌拉特后旗| 咸丰县| 孟州市| 禹城市| 肥东县| 沿河| 百色市| 耒阳市| 白城市| 腾冲县| 海原县| 淄博市| 临洮县| 五家渠市| 淳安县| 长寿区| 佛坪县| 榆社县| 安达市| 汶川县| 临桂县| 平南县| 安阳县| 忻州市| 阿拉善盟| 方山县| 同仁县| 麻城市| 呼伦贝尔市| 清水县| 清流县| 类乌齐县| 修武县| 石屏县| 马公市| 南通市| 琼海市| 贡觉县| 荥经县| 定安县| 怀化市|