無線傳感器監(jiān)測數(shù)據(jù)采集試驗(yàn)_第1頁
無線傳感器監(jiān)測數(shù)據(jù)采集試驗(yàn)_第2頁
無線傳感器監(jiān)測數(shù)據(jù)采集試驗(yàn)_第3頁
無線傳感器監(jiān)測數(shù)據(jù)采集試驗(yàn)_第4頁
無線傳感器監(jiān)測數(shù)據(jù)采集試驗(yàn)_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

姓名:譚芳亮班級:通信(1)班學(xué)號:2013329600049

實(shí)驗(yàn)1:無線傳感器監(jiān)測數(shù)據(jù)采集實(shí)驗(yàn)【實(shí)驗(yàn)?zāi)繕?biāo)】在無線傳感器節(jié)點(diǎn)的單片機(jī)驅(qū)動代碼的基礎(chǔ)上,編寫傳感器數(shù)據(jù)采集程序,實(shí)現(xiàn)對溫濕度傳感器的數(shù)據(jù)采集和計(jì)算。【實(shí)驗(yàn)設(shè)備】類別名稱所需數(shù)量(每組)物聯(lián)網(wǎng)設(shè)備ZIGBEE無線空氣溫濕度傳感器1個(gè)【實(shí)驗(yàn)要求】(1)熟悉溫濕度傳感器工作原理;(2)熟悉溫濕度傳感器接口協(xié)議;(3)編寫溫濕度傳感器接口代碼;(4)實(shí)現(xiàn)溫濕度傳感器的數(shù)據(jù)采集和計(jì)算,并驗(yàn)證采集結(jié)果的正確性?!緦?shí)驗(yàn)原理】1、開發(fā)環(huán)境所需軟件JDK,Precision32IDE,MDK,J-link驅(qū)動(見理工學(xué)校實(shí)驗(yàn)/tool).圖1-1所需要的軟件MDKJ.7jf]jdk-S-windowb-x64.exeMDKJ.7jf]jdk-S-windowb-x64.exe量JdnkARM^SOt.sip0’preci寫ionSS-deveiopimi&nt-ervironme.?.2014/1Q/142014/04/1313:3020H/04/2310^8201J/Ofi/D310:55文件矣時(shí)鐘好氏zip砥枝件應(yīng)用徨序工58挑3KB14,215K8417,316KQ2、MDK的安裝與注冊學(xué)過51的同學(xué)對MDK都不是太陌生,sim32也是用MDK編譯代碼。MDK對不同的內(nèi)核有不同的版本,這里用的是keilforARM4.7雙擊MDK進(jìn)行安裝,安裝過程需要填寫一些信息,這些可以隨便填寫,相信學(xué)過51單片機(jī)的同學(xué)都知道。一直點(diǎn)擊next直到安裝完成。MDK沒注冊代碼長度有2K的限制,代碼過大會報(bào)錯(cuò),因此需要注冊。右擊MDK快捷方式圖標(biāo),點(diǎn)擊以管理員身份運(yùn)行。點(diǎn)擊file->licensemanger...,打開注冊機(jī),將CID復(fù)制到注冊機(jī)里,選擇ARM版本,生成注冊碼,將注冊面復(fù)制到licenseManagement中,點(diǎn)擊AddLIC按鈕,完成注冊。具體過程見DOC/MDK的安裝激活與使用。3、將SIM32官方庫復(fù)制到在C盤根目錄下。(工程里的庫文件用的是絕對路徑)。4、MDK的工程管理(向工程里面添加文件)在這里大家也許會有疑問,怎么用MDK建立工程,用MDK建立過程,設(shè)置項(xiàng)比較多。容易出錯(cuò),因此不建議用MDK建立工程,SIM官方提供的有Precision32IDE可以建立MDK工程,IAR工程,不過安裝IDE之前需要安裝JDK,配置環(huán)境變量。IDE安裝之后,需要用郵箱注冊,過程比較繁瑣,因此不建議大家使用。有興趣的同學(xué)可以參考DOC/IDE的安裝。我們使用建立好的工程模版,只用在使用時(shí)向工程里面添加文件即可。添加文件有兩種方法。方法一:點(diǎn)擊工具欄工程管理圖標(biāo)進(jìn)入工程管理如圖

圖1-2MDK工程管理方法二:在MDK主頁面左邊project窗口工程名上右擊,點(diǎn)擊AddGroup,添加組。在組上右擊添加文件。在文件名上右擊選擇刪除問價(jià)。5、MDK的工程設(shè)置在工程模板基本上把工程的常用設(shè)置項(xiàng)已經(jīng)設(shè)置好了。在使用過程中只用改動少許設(shè)置。?Output設(shè)置在CreateHEXFile前面打勾(hex文件是燒寫向單片機(jī)燒寫的文件)圖1-3output設(shè)置?C/C++點(diǎn)擊IncludePath行尾的小按鈕,點(diǎn)擊圖中的新建,點(diǎn)擊行尾的小按鈕,將新加入工程中的文件的頭文件路徑包含里面。(編譯器根據(jù)這個(gè)路徑找到要包含的*.h文件路徑,不加進(jìn)去,不能順利編譯,會報(bào)錯(cuò))。

Ukr "nfmiiflw,Mn.旺|TMj|>,i.|Ukr "nfmiiflw,Mn.旺|TMj|>,i.|Cefikvi|Ishjciim:UisrCCTrtMiO^:|l?yvIDi-O£|HFRa1mMmTthFivtLfi?iE9KrOne-EIF貨Rmxxi圖1-4c/c++設(shè)置Debug設(shè)置(用J-link把節(jié)點(diǎn)和電腦相連,給節(jié)點(diǎn)上電)如圖所示。傳感器和網(wǎng)關(guān)全部用的是J-link轉(zhuǎn)SW)圖1-5Debug設(shè)置i-MMILiSXUtilities設(shè)置如圖。i-MMILiSX圖14Utilities設(shè)置6、J-link轉(zhuǎn)SWD的制作圖1-7是J-Link和SWD的示意圖,用杜邦線把相應(yīng)的引腳連接。ARM20-PinConnecter2VCC(opticnah4GN口6GND8GNO1CGNDL2GNDARM20-PinConnecter2VCC(opticnah4GN口6GND8GNO1CGNDL2GND14GND1GGND1SGND20GNDN/U3N/USSWDIO7SWCLK:$N/Ull□□□□□□□□□□□□□□□□1VCC2SWDED3SWCLK4RESET5SWOSEND圖1-7J-link轉(zhuǎn)SWD7、通用IO□輸入輸出控制通用IO口實(shí)驗(yàn)通常是單片機(jī)的第一個(gè)實(shí)驗(yàn)這里簡單介紹幾個(gè)函數(shù)a)單片機(jī)IO設(shè)置為上拉輸出函數(shù)SI32_PBSTD_A_set_pins_push_pull_output(SI32_PBSTD_1,0x0020)參數(shù)解釋,SI32_PBSTD_1代表的是P1端口0x0020代表的是第5個(gè)引腳。0x0020寫成二進(jìn)制是0000000000100000,第5位是1,因此表示的是第5個(gè)引腳。b)單片機(jī)IO輸出高電平SI32_PBSTD_A_write_pins_high(SI32_PBSTD_1,0x0020)c)單片機(jī)IO輸出低電平SI32_PBSTD_A_write_pins_low(SI32_PBSTD_1,0x0020)d)單片機(jī)IO設(shè)置為輸入SI32_PBSTD_A_set_pins_digital_input(SI32_PBSTD_1,0x0010)e)讀取引腳電平SI32_PBSTD_A_read_pin(SI32_PBSTD_1,2)參數(shù)解釋2表示的是第二個(gè)引腳,這里的定義和上面不一樣,在使用時(shí)要注意。8、溫濕度傳感器和單片機(jī)的接口溫濕度傳感器和單片機(jī)采用的是類似IIC的串行通信,和單片機(jī)相連如圖1-8所示VDD和GND是傳感器供電引腳。SCK是時(shí)鐘引腳,在通信這個(gè)過程中,SCK信號都是有單片機(jī)控制的。DATA是數(shù)據(jù)線,和單片機(jī)IO口相連。用于向傳感器發(fā)送指令和從單片機(jī)讀走數(shù)據(jù)。數(shù)據(jù)在時(shí)鐘的上升沿生效在時(shí)鐘是高電平時(shí)保持不變。在時(shí)鐘是低電平時(shí)準(zhǔn)備數(shù)據(jù)。接口如圖所示。圖1-8圖1-8溫濕度接口圖1-9開始信號單片機(jī)先向傳感器發(fā)送開始命令,然后開始通信,開始命令時(shí)序圖如圖所示。在SCK高電平時(shí),將數(shù)據(jù)線拉低,在下一個(gè)時(shí)鐘高電平期間,將數(shù)據(jù)線拉高。開始信號發(fā)送完畢。再開始信號后是命令信號,命令信號包含3位地址位(只支持000)和5位命令位組成。傳感器在接收到Ibyte數(shù)據(jù)時(shí)(即第八個(gè)時(shí)鐘下降沿)將數(shù)據(jù)線拉低,表示數(shù)據(jù)正確接收。在九個(gè)下降沿被釋放。命令如下表。=======CodeOOOOx000110010100111CodeOOOOx000110010100111001100101x-1110x11110單片機(jī)在發(fā)機(jī)產(chǎn)生時(shí)鐘信號字節(jié)數(shù)據(jù)都要將數(shù)據(jù)線拉低給出應(yīng)答信號等哪據(jù)高位在前,低位在后。傳感器在測量結(jié)束和通信完畢后自動進(jìn)入休眠。具體操作見數(shù)據(jù)手冊。時(shí)序圖如圖1-10所示。圖1-10傳感器工作時(shí)序圖CommandReservedMeasureTemperatureMeasureRelativeHumidityReadStatusRegisterWriteStatusRegisterReservedSoftreset,resetstheinterface,clearsthe送完命令信號后,等待溫濕度傳感器測量完成U惟感器在轉(zhuǎn)換完成后將數(shù)據(jù)線拉低。單片,1從溫濕度傳感器讀數(shù)鯽啜據(jù)包含2bytes的測量結(jié)果和Ibytes的校驗(yàn)。單片機(jī)在收到每8、計(jì)算公式溫度計(jì)算公式:T=d14-d2-SOTVDDdi(ftVDDdi(ftC)di(°F)5V-40.1W0.24V-39.8-39.63.5V-39.7-39.53V-39.6■39.32.5V-39.4-38.9濕度計(jì)算公式:SOtd2("C)出「F)14bit0.010.01812bit0.040.072RH岫的「二c〔+C??$0如+C3,S°rh(%RH)SOrhClC2C312bit-2.04680.0367-1.5955E-68bit-2.04680.5872-4.0845E-4RHm=Ck—25)?也+t2forJ+RH*SOrhtib12bit0.010.000088bit0.010.00128【實(shí)驗(yàn)步驟】1、建立開發(fā)工程;用MDK打開工程模板。2、把similar_i2C.c和similar_i2C.h加入到工程。將similar_i2c文件夾拷貝到工程模板目錄中。添加過程見前面工程管理在工程設(shè)置里面將頭文件路徑加入。3、調(diào)用similar」2c.e中函數(shù),編寫溫度采集和濕度采集代碼在工程模板根目錄下建立sht1xx_sensor,在里面新建shtlxx.c和shtlxx.h空文件,將c加入到工程,將h文件加入到工程設(shè)置中編寫c文件。將c函數(shù)中可以被調(diào)用的函數(shù)在h文件中聲明。代碼見例程。數(shù)據(jù)采集流程圖:溫度采集:floatSHT15_temp_samp(){uint8_ttemp_data[3];floattemp=0;simliar_i2c_transstart(); //開啟傳感器similar_i2c_write_byte(0x06);〃設(shè)置寄存器寫模式similar_i2c_write_byte(0x01); 〃寫寄存器,設(shè)置精度8bitRH/12bitTempsimliar_i2c_transstart();//開啟傳感器similar_i2c_write_byte(0x03); 〃設(shè)置寫寄存器溫度測量模式SIMILAR_I2C_DATA_IN;delay_us(100000); 〃延時(shí)SIMILAR_I2C_DATA_OUT;temp_data[0]=similar_i2c_read_byte(SIMILAR_I2C_ACK);//讀第一個(gè)字節(jié)(高位)temp_data[1]=similar_i2c_read_byte(SIMILAR_I2C_ACK);//讀第二個(gè)字節(jié)(低位)temp_data[2]=similar_i2c_read_byte(SIMILAR_I2C_NOACK);〃讀校驗(yàn)碼temp=temp_data[0]*256+temp_data[1]; //12位溫度測量值returntemp;)濕度測量:floatSHT15_rh_samp(){uint8_tRH_data[3];floatrh=0;simliar_i2c_transstart();//開啟傳感器similar_i2c_write_byte(0x06); 〃設(shè)置寄存器寫模式similar_i2c_write_byte(0x00); 〃寫寄存器,設(shè)置精度I2bitRH/14bitTempsimliar_i2c_transstart();//開啟傳感器similar_i2c_write_byte(0x05); 〃設(shè)置寫寄存器濕度測量模式SIMILAR_I2C_DATA_IN;delay_us(100000); 〃延時(shí)SIMILAR_I2C_DATA_OUT;RH_data[0]=similar_i2c_read_byte(SIMILAR_I2C_ACK);//讀第一個(gè)字節(jié)(高位)RH_data[1]=similar_i2c_read_byte(SIMILAR_I2C_ACK);//讀第二個(gè)字節(jié)(低位)RH_data[2]=similar_i2c_read_byte(SIMILAR_I2C_NOACK);//讀校驗(yàn)碼rh=RH_d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論