實驗14無線采集火焰傳感器_第1頁
實驗14無線采集火焰傳感器_第2頁
實驗14無線采集火焰傳感器_第3頁
實驗14無線采集火焰傳感器_第4頁
實驗14無線采集火焰傳感器_第5頁
已閱讀5頁,還剩10頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 ZigBee實驗十四無線采集火焰傳感器14.1 實驗簡介 火焰傳感器是探測在物質燃燒時,產生煙霧和放出熱量的同時,也產生可見的或大氣中沒有的不可見的光輻射。 火焰傳感器又稱感光式火災傳感器,它是用于響應火災的光特性,即探測火焰燃燒的光照強度和火焰的閃爍頻率的一種火災傳感器。 根據火焰的光特性,目前使用的火焰傳感器有三種:一種是對火焰中波長較短的紫外光輻射敏感的紫外傳感器;另一種是對火焰中波長較長的紅外光輻射敏感的紅外傳感器;第三種是同時探測火焰中波長較短的紫外線和波長較長的紅外線的紫外/紅外混合傳感器。 具體根據探測波段可分為:單紫外、單紅外、雙紅外、三重紅外、紅外紫外、附加視頻等火焰傳感器

2、; 根據防爆類型可分為:隔爆型、本安型 實驗目的14.2 訓練目的 14.2.1 通過本實驗了解Z-STACK中串口傳送火焰傳感器的數據。14.3實驗設備14.3.1 硬件:(1) 智能網關一臺電源及開關USB程序下載接口顯示屏ZigBee模塊圖14-1 智能網關(2) ZIGBEE調試底板一個;指示燈可調電阻ZigBee_DEBUG紅外發射ZigBee復位ZigBee按鍵撥碼開關節點按鍵復位傳感器接口1J-LINK接口傳感器接口3傳感器接口2電源開關電源圖14-2 ZIGBEE調試底板(3) ZIGBEE模塊2個;圖14-3 ZIGBEE模塊(4) 電源2個圖14-4 電源(5) Jlink

3、仿真器圖14-5 JLINK仿真器(6) 轉接板與轉接線圖14-6 轉接板與10PIN轉接線(7) 火焰傳感器圖14-7 火焰傳感器(8) 硬件連接圖傳感器接口電源節點復位按鈕連接電腦USBJLINK仿真轉接口圖14-8 硬件連接圖14.3.1 軟件(1) 智能網關安卓系統;(2) 智能網關傳感器實驗程序;(3) 智能網關傳感器設置程序。(4) KEIL FOR ARM集成開發環境;(5) JLINK仿真器驅動;實驗知識14.414.4.1 火焰傳感器原理圖14.4.2 火焰傳感器原理火焰傳感器主要是靠火焰探頭采集火焰特定的光波長,當火焰探頭采集到特定火焰波長的光時,其內部就相當于處于一個導通

4、狀態。然后通過比較器對一個特定的電壓進行比較,輸出TTL電平。檢測到火焰時,輸出低電平,否則輸出高電平。實驗步驟14.514.5.1 參看“關于無線傳感器及智能網關環境搭建說明”先將實驗環境搭建起來。配置好串口透串模塊。圖14-9 關于無線傳感器及智能網關環境搭建說明14.5.2 打開配套源代碼中的“采集程序”的工程文件圖14-10 采集程序仿真按鈕程序下載按鈕編譯按鈕圖14-11 打開采集程序界面14.5.3 按照硬件連接圖連接好硬件(ZIGBEE模塊,JLINK,ZIGBEE調試底板,傳感器),并上電。先點擊“編譯按鈕(F7)”編譯程序,再點擊“程序下載按鈕”將程序下載到ZIGBEE調試底

5、板中的STM32上去,按一下節點“復位”按鈕對節點進行復位運行起來?;螯c擊“仿真按鈕”進入仿真模式,再點“運行”按鈕運行程序。如果JLINK仿真器的固件與驅動版本對應不上時,會出現提出更新固件的對話框,可以選擇“否”不更新而繼續下載程序。如果不能下載,則檢查硬件連接情況。運行按鈕圖14-12 仿真界面14.5.4 程序運行起來后,按按鍵“KEY2”啟動采集濕度數據。啟動后LED(D5)會常亮,而LED(D7)和LED(D8)會閃爍,智能網關上ZIGBEE模塊對應的LED也會閃爍,查看智能網關顯示屏的顯示數據。實驗結果參看下一小節“實驗驗證”。14.5.5 實驗結束。實驗驗證14.6 14.6.

6、1 用打火機打燃置于火焰傳感器探測頭前,觀察顯示屏上顯示的狀態是否發生變化。圖14-13 傳感器狀態顯示實驗部分參考程序解析(完整程序見源程序文件)14.7代碼解釋:14.7.1 傳感器初始化void Sensor_Exti_init(void) GPIO_InitTypeDef GPIO_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;NVIC_InitTypeDef NVIC_InitStructure; /* GPIOG clock enable */ RCC_APB2PeriphClockCmd(SENSOR_CLOCK, ENABL

7、E); GPIO_InitStructure.GPIO_Pin = Sensor_IO_PIN2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; /上拉輸入 GPIO_Init(Sensor_IO_PORT, &GPIO_InitStructure);/* 連接IO口到中斷線 */GPIO_EXTILineConfig(Sensor_Exti_PORT, Sensor_Exti_NUM);/* 配置中斷線7為邊降沿觸發*/ EXTI_InitStructure.EXTI_Line = Sensor_Exti_Line_NUM;EXTI_In

8、itStructure.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure);/* EXTI7*/NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;N

9、VIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);參考注解:火焰傳感器輸出的是TTL電平,配置PB7為輸入邊降沿觸發的中斷模式。但是,本例子中,并沒有使用中斷采集數據。14.7.2 數據采集函數:void GetSensorData(u8* data) data0 = 0;data1 = 0;/如果是聲音、震動傳感器,則采用中斷方式檢測if(senser_type = SENSOR_S

10、OUND | senser_type = SENSOR_801S) data2 = sensor_exit_flag; sensor_exit_flag = 0;else data2 = SENSOR2_IN();data3 = 0;data4 = 0;/為了統一,數據進行校正,開關型傳感器,0(默認)是正常,1是發生變化/光照、傾斜、凝露、霍爾傳感器if(senser_type = SENSOR_LIGHT5537 | senser_type = SENSOR_TILT | senser_type = SENSOR_HDS10 | senser_type = SENSOR_HALL3144)

11、 data2 = (data2)&0x01;參考注解:當特定的采集時間到時,就會調用數據采集函數,其中調用了SENSOR2_IN()讀取PB7的值,也就是采集了傳感器輸出端的值,保存在相應的緩沖變量中,以偏后面使用這采集到的數據。14.7.3 實現原理 while(1) if(senser_type != GetType()/發現傳感器類型改變,就重新初始化對應的IO口 Delay(50); /senser_type = GetType(); /senser_Init(senser_type); /USART2_Putc(senser_type); /測試使用,用于指示當前是某一類型傳

12、感器 timesend = 300; if(senser_type = SENSOR_ASD) /不同類型的傳感器采集時間設置timesend = 50; /按鍵掃描while(ScanKey() = KEYVAL_1) Delay(20); sendflag= (sendflag) & 0x01 ;/發送標志控制 if(sendflag = 1) Led_Ctr(LED1_ON);/串口發送指示燈 led_ct+; if(led_ct = timesend) if(sensor_get_data(senser_type,&sensordata2) /數據采集 USART2_S

13、enddata(sensordata); /串口發送數據 /-數據發送閃爍LED閃爍 Led_Ctr(LED3_ON);else if(led_ct = timesend*2) Led_Ctr(LED3_OFF); /關閉閃爍LED led_ct = 0; /閃爍重新翻轉 else /關閉所有LED指示燈 led_ct = 0; Led_Ctr(LED1_OFF); Led_Ctr(LED2_OFF); /發生傾斜指示燈滅 Led_Ctr(LED3_OFF); Delay(50);參考注解:在程序剛開始運行的時候,并沒有開始采集數據,而是一直的掃描按鍵ScanKey(),當檢測到按鍵返回值為K

14、EYVAL_1時(即KEY2按下),那么就對發送標志控制信號(sendflag)賦值,下面的代碼就開始進入發送狀態。計數標志(led_ct)達到發送時間的數值(timesend)的時候,就采集傳感器的數據然后通過串口發送給ZIGBEE模塊。當計數標志(led_ct)為兩倍的發送時間(timesend x 2)時,對計數標志清零,重新開始計數。在發送標志信號置位后,程序就開始不停的采集傳感器數據,并發送出去。LED(D7)每一次亮的時候,就采集了數據通過串口往ZIGBEE模塊,ZIGBEE模塊再通過無線發送出去,ZIGBEE模塊每成功發送一次無線數據,LED(D8)的狀態就會改變一次,而在智能網關上的ZIGBEE模塊,每收到一次

溫馨提示

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

最新文檔

評論

0/150

提交評論