999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VC6.0的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集

2012-02-28 05:10:38陳良洲熊宗接

陳良洲,熊宗接

(華中科技大學(xué) 機(jī)械學(xué)院儀器系,湖北 武漢 430074)

無線傳感器網(wǎng)絡(luò)是由部署在監(jiān)測區(qū)域內(nèi)部或附近的大量廉價、具有通信、感測及計算能力的微型器節(jié)點(diǎn)通過自組織構(gòu)成的“智能”測控網(wǎng)絡(luò)[1]。本系統(tǒng)下位機(jī)利用SHT11溫濕度傳感和美國TI公司的無線片上系統(tǒng)CC2530單片機(jī)構(gòu)成終端傳感器節(jié)點(diǎn),對溫室內(nèi)的溫度和相對濕度及終端傳感器片上電壓三個參數(shù)進(jìn)行實(shí)時測量,通過在環(huán)境內(nèi)布置多個測量節(jié)點(diǎn)來獲取現(xiàn)場信息。在眾多集成可視化開發(fā)環(huán)境中,VisualC6.0是底層編程環(huán)境的最佳選擇,它提供了相當(dāng)齊備的類和各種控件,編程界面友好。

1 系統(tǒng)下位機(jī)硬件組成

系統(tǒng)下位機(jī)硬件組成如圖1示,由I2C總線的SHT11數(shù)字溫濕度傳感器連接CC2530芯片的VDD/3的ADC通道,經(jīng)CC2530單片機(jī)采集處理后打包數(shù)據(jù)無線發(fā)送到與PC機(jī)連接的協(xié)調(diào)器節(jié)點(diǎn)。其中協(xié)調(diào)器節(jié)點(diǎn)與PC機(jī)通過串口轉(zhuǎn)USB線連接。

下位機(jī)使用TI公司SensorDemo例程在IAR7.5集成開發(fā)環(huán)境下進(jìn)行二次開發(fā),在應(yīng)用層對傳感器節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)分別編寫程序,協(xié)調(diào)器節(jié)點(diǎn)接收傳感器節(jié)點(diǎn)的數(shù)據(jù)以數(shù)據(jù)幀格式串行發(fā)送到PC機(jī)[2]。

圖1 下位機(jī)硬件組成原理圖

2 下位機(jī)數(shù)據(jù)幀設(shè)計

下位機(jī)數(shù)據(jù)幀編程固定長度為20 B的數(shù)據(jù),有些字節(jié)可變,有些字節(jié)是固定的。比如一個數(shù)據(jù)幀用十六進(jìn)制表示為:FE 0F 46 87 DE 65 02 00 09 00 1B 20 00 00 38 33 00 00 00 9E。其中:FE是幀頭字節(jié),46 87是雙字節(jié)數(shù)據(jù),低字節(jié)在前,標(biāo)識為8746為接收標(biāo)志;9E是前面19個字節(jié)的“異或”運(yùn)算值,為整個數(shù)據(jù)幀的CRC校驗位,可變;0F是固定值,表示除了幀開始和 0F、46、87、9E 5個字節(jié)外的 15個字節(jié)數(shù);DE65是傳感器節(jié)點(diǎn)16 bit地址號65DE,是隨著數(shù)據(jù)來自不同節(jié)點(diǎn)變化;0002、0009也是固定的字節(jié),表示數(shù)據(jù)包和有效數(shù)據(jù)位;1 B是節(jié)點(diǎn)溫度的整數(shù)部分,換算為十進(jìn)制值為26℃,可變;20是節(jié)點(diǎn)片上電壓值(乘10倍值),換算為十進(jìn)制值為 3.2 V,可變;0000為父節(jié)點(diǎn)地址;38是節(jié)點(diǎn)相對濕度值,換算為十進(jìn)制值為56%,可變;33是節(jié)點(diǎn)溫度的小數(shù)部分,換算為十進(jìn)制值為 (3×16+3)/256=0.199 2℃,可變;00 00 00是預(yù)留下來的 3個字節(jié)給節(jié)點(diǎn)其他傳感器數(shù)據(jù)的傳送。

3 采集控制命令兩種模式實(shí)現(xiàn)

在傳感器節(jié)點(diǎn)C文件中添加命令輸入集合COLLECTOR_CMD_ID,協(xié)調(diào)器節(jié)點(diǎn)C添加同樣的命令輸出集。為協(xié)調(diào)器節(jié)點(diǎn)設(shè)計3 B的串口數(shù)據(jù),前2個字節(jié)為目標(biāo)地址,第3個字節(jié)為采集控制命令,如設(shè)置80為停止采集,40為開始采集命令。因為協(xié)調(diào)器地址是固定的0x0000十六進(jìn)制數(shù),其他傳感節(jié)點(diǎn)地址不可能是這個數(shù),所以當(dāng)發(fā)送前2個字節(jié)為0000時,可將此作為向全體傳感器節(jié)點(diǎn)廣播的命令的判斷,如果是具體單個節(jié)點(diǎn)地址,則只有相應(yīng)節(jié)點(diǎn)接收控制命令,其中廣播命令發(fā)送的地址模式為0xFFFF。

4 上位機(jī)程序設(shè)計

4.1 CSerialPort類加入程序

CSerialPort類是remon spekreijse寫的一個免費(fèi)的串口類,可在互聯(lián)網(wǎng)下載到其頭文件(h文件)和源程序(cpp文件),它可直接用于串口的讀寫操作。首先建立一個基于窗口的MFC應(yīng)用程序,再將CSerialPort.h和CSerialPort.cpp兩個類文件復(fù)制到工程文件夾中,并用project-add to project-files命令將上述兩個文件加入工程[3]。

因為CSerialPort類是第三方類,所以其串口消息響應(yīng)函數(shù)不能由VC的classwizd自動生成,需通過手動增加消息響應(yīng)函數(shù)的消息映射。在建立的窗口類頭文件下添加以下代碼:

afx_msg LONG OnComm(WPARAM ch,LPARAM port);

在窗口類ccp文件下進(jìn)行串口接收一個字符的響息映射,只要串口中有一個字節(jié)就觸發(fā)這個事件,代碼如下:

ON_MESSAGE(WM_COMM_RXCHAR,OnComm)

最初的CSerialPort類的發(fā)送函數(shù)只有一種發(fā)送字符類型WriteToPort(char*string)。而考慮到上位機(jī)對下位機(jī)控制命令都是十六進(jìn)制數(shù)傳送,且傳送數(shù)據(jù)的最終原理都是以二進(jìn)制數(shù)傳遞的,所以增加一種可按字節(jié)數(shù)發(fā)送的函數(shù)類型 WriteToPort (unsigned char*string,int n)。其中,string是發(fā)送的一個字節(jié)數(shù)據(jù),n是要發(fā)送的字節(jié)數(shù)。代碼如下:

上位機(jī)軟件設(shè)計流程如圖2所示。

圖2 上位機(jī)軟件流程

4.2 串口數(shù)據(jù)接收

對接收的數(shù)據(jù)進(jìn)行幀頭判斷,如果接收字節(jié)為FE則繼續(xù)接收,保存在無符號字符數(shù)組buf中,接收后面的字節(jié)保存在數(shù)組中,并對連續(xù)的18個字節(jié)進(jìn)行 “異或”運(yùn)算。如果這個“異或”運(yùn)算值與第20個字節(jié)的值相等,表示這20個字節(jié)為一個有效數(shù)據(jù)串,然后再將其中的源節(jié)點(diǎn)地址提取出來并保存,再分別對其中的參數(shù)值進(jìn)行處理,根據(jù)節(jié)點(diǎn)地址寫入VC表格控件中的相應(yīng)行。串口數(shù)據(jù)幀選擇性接收和多節(jié)點(diǎn)地址保存函數(shù)片段如下:

4.3 串口命令的發(fā)送

在應(yīng)用程序的發(fā)送數(shù)據(jù)編輯框中輸入3 B的十六進(jìn)制數(shù)據(jù),而且要讓發(fā)送函數(shù)明白這是3 B的數(shù)據(jù),而不是默認(rèn)地把這些十六進(jìn)制數(shù)當(dāng)作6個單獨(dú)的字符來處理。在窗口CPP文件中加入 “字符轉(zhuǎn)十六進(jìn)制數(shù)”的函數(shù) String2Hex(m_strSend,hexdata),其返回值為轉(zhuǎn)化后的十六進(jìn)制數(shù)的個數(shù),在此即是要發(fā)送的命令字節(jié)數(shù)(該函數(shù)原型來自參考文獻(xiàn)[4])。發(fā)送命令函數(shù)如下:

程序運(yùn)行結(jié)果如圖3示。本文設(shè)計的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)能夠?qū)崿F(xiàn)多節(jié)點(diǎn)多參數(shù)的數(shù)據(jù)實(shí)時采集,并對測量的數(shù)據(jù)進(jìn)行波形和表格顯示及存儲。設(shè)計的串口接收中斷程序可應(yīng)用到其他串口數(shù)據(jù)采集系統(tǒng)中,發(fā)送命令實(shí)現(xiàn)了對所有節(jié)點(diǎn)和個別節(jié)點(diǎn)采集過程的控制,在后期還運(yùn)用了計數(shù)求模的方法,可通過上位機(jī)發(fā)送改變除數(shù)來改變節(jié)點(diǎn)的采集時間間隔,整個程序可移植性強(qiáng)。

[1]孫利民,李建中,陳渝,等.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.

[2]深圳飛比電子科技公司.Z-STACK SensorDemo實(shí)驗.[EB/OL].[2011-10-13].http://wenku.baidu.com/view/dfe9d82ee2bd960590c6770c.html.

[3]潘石柱,于仲安.VC實(shí)現(xiàn)串行通信的三種途徑[J].電子工程師.2002,28(9).

[4]龔建偉.串口調(diào)試助手源程序及編程詳細(xì)過程.[EB/OL].(2001-06-20)[2010-12-21].http://hi.baidu.com/laoyang1018/blog/item/641491ef565756fece1b3ecc.html.

主站蜘蛛池模板: 波多野结衣久久高清免费| 国产尤物在线播放| 国产福利2021最新在线观看| 国产手机在线小视频免费观看 | 波多野结衣国产精品| 一本色道久久88| 成人中文字幕在线| 国产视频大全| 中文字幕波多野不卡一区| 精品欧美日韩国产日漫一区不卡| 国产一区二区三区精品久久呦| 亚洲中文精品久久久久久不卡| 欧美成人影院亚洲综合图| 日韩免费毛片视频| 四虎永久在线视频| 亚洲—日韩aV在线| 色婷婷电影网| 亚洲欧洲国产成人综合不卡| 色婷婷电影网| 强奷白丝美女在线观看 | 99久久精品国产精品亚洲| 伊人国产无码高清视频| 伊人激情久久综合中文字幕| 精品一区二区三区水蜜桃| 99久久国产精品无码| av色爱 天堂网| 2021最新国产精品网站| a在线亚洲男人的天堂试看| 国产精品成人免费视频99| 精品国产一二三区| 婷婷综合色| 免费一级无码在线网站| 欧美国产精品不卡在线观看| 久久精品嫩草研究院| 91蝌蚪视频在线观看| 永久免费无码日韩视频| 亚洲日本一本dvd高清| 日韩精品中文字幕一区三区| 亚洲成人播放| 久久不卡国产精品无码| 亚洲一区二区黄色| 久久久久亚洲AV成人网站软件| 亚洲成人一区二区| 2022国产91精品久久久久久| 青青操国产| 高清色本在线www| 国产欧美日韩另类| 欧美一级在线看| 亚洲精品无码抽插日韩| 在线无码私拍| 婷婷亚洲视频| 日韩天堂在线观看| 99精品在线看| 国产精品无码在线看| 亚洲V日韩V无码一区二区| 中文字幕欧美成人免费| 精品伊人久久久香线蕉 | 伊人色天堂| 国产区免费精品视频| 国产免费黄| 国产永久在线视频| 精品综合久久久久久97| 美女免费黄网站| 久久精品日日躁夜夜躁欧美| 久久久久人妻一区精品色奶水| 色婷婷国产精品视频| 精品视频91| 久久精品嫩草研究院| 亚洲成人一区在线| 日本成人精品视频| 久久无码av三级| 亚洲永久免费网站| 国产精品第一区| 国产成人精品2021欧美日韩| 欧美中文字幕无线码视频| 日韩精品成人在线| 日韩精品亚洲人旧成在线| 亚洲一道AV无码午夜福利| 97国产在线视频| 精品一区二区三区中文字幕| 精品少妇人妻一区二区| 一本综合久久|