《物聯(lián)網(wǎng)編程與應(yīng)用》課件-項(xiàng)目6 災(zāi)情信息檢測(cè)模塊_第1頁(yè)
《物聯(lián)網(wǎng)編程與應(yīng)用》課件-項(xiàng)目6 災(zāi)情信息檢測(cè)模塊_第2頁(yè)
《物聯(lián)網(wǎng)編程與應(yīng)用》課件-項(xiàng)目6 災(zāi)情信息檢測(cè)模塊_第3頁(yè)
《物聯(lián)網(wǎng)編程與應(yīng)用》課件-項(xiàng)目6 災(zāi)情信息檢測(cè)模塊_第4頁(yè)
《物聯(lián)網(wǎng)編程與應(yīng)用》課件-項(xiàng)目6 災(zāi)情信息檢測(cè)模塊_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目6災(zāi)情信息檢測(cè)模塊智慧校園系統(tǒng)項(xiàng)目概述實(shí)時(shí)安防系統(tǒng)的災(zāi)情信息監(jiān)測(cè)是借助物聯(lián)網(wǎng)技術(shù),把火焰、煙霧傳感器嵌入到各種安防監(jiān)控設(shè)備中,通過(guò)計(jì)算機(jī)將災(zāi)情監(jiān)測(cè)的數(shù)據(jù)進(jìn)行采集并實(shí)現(xiàn)推送與報(bào)警。本項(xiàng)目將實(shí)現(xiàn)火焰?zhèn)鞲衅髋c煙霧傳感器的數(shù)據(jù)采集,通過(guò)數(shù)字量ADAM4150傳輸?shù)接?jì)算機(jī)并顯示在程序窗體中;利用程序推送災(zāi)情信息至LED屏。該項(xiàng)目的實(shí)施為后續(xù)項(xiàng)目中智慧校園管理相關(guān)系統(tǒng)的整合做好準(zhǔn)備。IOTPart火焰?zhèn)鞲衅鲾?shù)據(jù)采集任務(wù)01【任務(wù)描述】火焰?zhèn)鞲衅骼眉t外線對(duì)火焰非常敏感的特點(diǎn),使用特制的紅外線接受管來(lái)檢測(cè)火焰。本任務(wù)模擬校園安防之災(zāi)情監(jiān)測(cè)系統(tǒng),用C#編寫(xiě)程序?qū)⒒鹧鎮(zhèn)鞲衅鞑杉臄?shù)據(jù),通過(guò)窗體實(shí)時(shí)顯示出來(lái)。通過(guò)本任務(wù)的實(shí)施,使學(xué)生掌握f(shuō)or語(yǔ)句、return的使用,了解DateTime類常見(jiàn)屬性和常見(jiàn)方法。6.1火焰?zhèn)鞲衅鲾?shù)據(jù)采集程序運(yùn)行界面

控件名稱控件類型屬性名屬性值控件功能Form1窗體Text火焰

com_port下拉框

輸入/顯示串口btn_open按鈕Text開(kāi)啟

txt_time文本框

顯示時(shí)間txt_even文本框

顯示入侵信息timer1定時(shí)器Interval2000

lbl_port標(biāo)簽Text環(huán)境串口

lbl_time標(biāo)簽Text時(shí)間

lbl_even標(biāo)簽Text入侵

6.1火焰?zhèn)鞲衅鲾?shù)據(jù)采集界面控件設(shè)置【任務(wù)實(shí)施】

創(chuàng)建新項(xiàng)目,添加DeviceCtrlLibrary.dll引用;創(chuàng)建創(chuàng)建界面,參照教材圖6-1與表6-1;引用DeviceCtrlLibrary與System.IO.Ports命名空間;聲明boolIsOpen全局變量,用于判斷是否打開(kāi)串口,默認(rèn)為關(guān)閉;參照教材代碼,添加Form1窗體Load事件,實(shí)現(xiàn)讀取系統(tǒng)串口;參照教材代碼,添加btn_open開(kāi)啟按鈕單擊事件,實(shí)現(xiàn)串口設(shè)置,開(kāi)關(guān)定時(shí)器;在程序中自定義一個(gè)方法,命名為GetFireInfo,判斷火焰?zhèn)鞲衅鞣祷豣ool值是否為true若為true,返回火情信息;參照教材代碼,添加

timer1定時(shí)器Tick事件,調(diào)用GetFireInfo方法,獲取實(shí)時(shí)數(shù)據(jù)?!拘≠N士】DeviceCtrlHelper.adam4150Helper.SetData().fireValue用于獲取火焰?zhèn)鞲衅鞯臄?shù)據(jù),返回類型為bool類型,True代表有火情,False代表正常。6.1火焰?zhèn)鞲衅鲾?shù)據(jù)采集【知識(shí)提煉】

for循環(huán)循環(huán)就是重復(fù)執(zhí)行語(yǔ)句,for循環(huán)適用于限定次數(shù)的循環(huán)。格式如下:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){語(yǔ)句;}表達(dá)式1:一般為賦值語(yǔ)句,給循環(huán)控制變量賦初值。表達(dá)式2:邏輯表達(dá)式,控制循環(huán)條件;為真時(shí),執(zhí)行循環(huán)體語(yǔ)句,直至為假時(shí)退出循環(huán)。表達(dá)式3:一般為循環(huán)控制變量自增或自減。6.1火焰?zhèn)鞲衅鲾?shù)據(jù)采集以下示例代碼顯示1至100的和。6.1火焰?zhèn)鞲衅鲾?shù)據(jù)采集intsum=0;for(inti=1;i<=100;i++){sum=sum+i;}MessageBox.Show("1+2+3...+100="+sum.ToString());【知識(shí)提煉】

return語(yǔ)句return語(yǔ)句出現(xiàn)在方法中,用來(lái)結(jié)束當(dāng)前方法并返回return后的值;它還可以返回一個(gè)可選值。如果方法為void類型,則可以省略return語(yǔ)句。在示例下面的示例中,方法Area()以double類型值的形式返回矩形的面積。6.1火焰?zhèn)鞲衅鲾?shù)據(jù)采集privatevoidForm1_Load(objectsender,EventArgse){MessageBox.Show(Area(3.1,2.5).ToString());}privatedoubleArea(doublex,doubley){returnx*y;}【知識(shí)提煉】

DateTime類“DateTime”類是用于處理時(shí)間類型數(shù)據(jù),通常以日期和時(shí)間表示。6.1火焰?zhèn)鞲衅鲾?shù)據(jù)采集名稱說(shuō)明Now獲取一個(gè)DateTime對(duì)象,該對(duì)象設(shè)置為此計(jì)算機(jī)上的當(dāng)前日期和時(shí)間。Today獲取當(dāng)前日期。Date獲取此實(shí)例的日期部分。Day獲取此實(shí)例日期為該月中的第幾天。Month獲取此實(shí)例日期的月份部分。Year獲取此實(shí)例日期的年份部分。DayOfWeek獲取此實(shí)例日期是星期幾。DayOfYear獲取此實(shí)例日期是該年中的第幾天。Hour獲取此實(shí)例日期的小時(shí)部分。Minute獲取此實(shí)例日期的分鐘部分。Second獲取此實(shí)例日期的秒部分。常見(jiàn)屬性6.1火焰?zhèn)鞲衅鲾?shù)據(jù)采集常見(jiàn)方法名稱說(shuō)明AddDays將指定的天數(shù)加到此實(shí)例的值上。AddMonths將指定的月份數(shù)加到此實(shí)例的值上。AddYears將指定的年份數(shù)加到此實(shí)例的值上。AddHours將指定的小時(shí)數(shù)加到此實(shí)例的值上。AddMinutes將指定的分鐘數(shù)加到此實(shí)例的值上。AddSeconds將指定的秒數(shù)加到此實(shí)例的值上。IsLeapYear返回指定的年份是否為閏年。Parse將日期和時(shí)間的字符串類型轉(zhuǎn)換成其DateTime類型。ToLongDateString將此實(shí)例的值轉(zhuǎn)換為長(zhǎng)日期字符串表示形式。ToLongTimeString將此實(shí)例的值轉(zhuǎn)換為長(zhǎng)時(shí)間字符串表示形式。ToShortDateString將此實(shí)例的值轉(zhuǎn)換為短日期字符串表示形式。ToShortTimeString將此實(shí)例的值轉(zhuǎn)換為短時(shí)間字符串表示形式。ToString將此實(shí)例的值轉(zhuǎn)換為字符串表示。【能力拓展】

通過(guò)“任務(wù)實(shí)施”的操作步驟,已經(jīng)實(shí)現(xiàn)了實(shí)時(shí)獲取火焰?zhèn)鞲衅鲾?shù)據(jù)的功能。本環(huán)節(jié)將使用多線程機(jī)制來(lái)實(shí)現(xiàn)該功能,為任務(wù)二做好準(zhǔn)備。請(qǐng)根據(jù)教材流程圖以及下列方法提示,完善書(shū)本代碼,實(shí)現(xiàn)上述功能。6.1火焰?zhèn)鞲衅鲾?shù)據(jù)采集名稱說(shuō)明Start()開(kāi)啟線程。Resume()繼續(xù)已掛起的線程。Suspend()掛起線程。Sleep(int32)休眠線程,Thread.Sleep(2000)為休眠2秒。Abort()終止線程。線程方法【自主探究】分別在教室A、B安裝火焰?zhèn)鞲衅髂M智慧教室火焰檢測(cè)系統(tǒng),,運(yùn)行效果如下圖所示,具有如下功能。【注:本題使用DI1與DI2接口,接入火焰?zhèn)鞲衅鳌浚河腥肭衷诮缑嫔祥W爍顯示。將入侵信息推送至LED屏上顯示。6.1火焰?zhèn)鞲衅鲾?shù)據(jù)采集運(yùn)行效果IOTPart煙霧傳感器數(shù)據(jù)采集任務(wù)02【任務(wù)描述】煙霧傳感器就是通過(guò)監(jiān)測(cè)煙霧的濃度來(lái)實(shí)現(xiàn)火災(zāi)報(bào)警提示。本任務(wù)模擬校園安防之災(zāi)情監(jiān)測(cè)系統(tǒng),實(shí)現(xiàn)用線程將煙霧傳感器采集的數(shù)據(jù),在窗體中實(shí)時(shí)顯示。通過(guò)本任務(wù)的實(shí)施,使學(xué)生掌握while語(yǔ)句的使用,理解while循環(huán)與for循環(huán)各自的特點(diǎn),初步了解線程Thread的概念以及線程的使用。6.2煙霧傳感器數(shù)據(jù)采集程序運(yùn)行界面

控件名稱控件類型屬性名屬性值控件功能Form1窗體Text煙霧

com_port下拉框

輸入/顯示串口btn_open按鈕Text開(kāi)啟

txt_time文本框

顯示時(shí)間txt_even文本框

顯示入侵信息lbl_port標(biāo)簽Text環(huán)境串口

lbl_time標(biāo)簽Text時(shí)間

lbl_even標(biāo)簽Text入侵

6.2煙霧傳感器數(shù)據(jù)采集界面控件設(shè)置【任務(wù)實(shí)施】

創(chuàng)建新項(xiàng)目,添加DeviceCtrlLibrary.dll引用;創(chuàng)建創(chuàng)建界面,參照教材圖6-1與表6-1;引用DeviceCtrlLibrary、System.IO.Ports與System.Threading命名空間;聲明boolIsOpen、boolIsFirst、Threadthd全局變量,分別用于判斷是否打開(kāi)串口,用于記錄線程是否第一次打開(kāi),定義Thread線程;在程序中自定義一個(gè)方法,命名為GetData,利用線程實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)讀?。粎⒄战滩拇a,添加Form1窗體Load事件,實(shí)現(xiàn)讀取系統(tǒng)串口,并添加Control.CheckForIllegalCrossThreadCalls=false代碼,設(shè)置允許跨線程調(diào)用;參照教材代碼,添加btn_open開(kāi)啟按鈕單擊事件,實(shí)現(xiàn)串口設(shè)置,并開(kāi)啟、暫停線程;參照教材代碼,添加

Form1窗體FormClosing事件,實(shí)現(xiàn)線程的終止。6.2煙霧傳感器數(shù)據(jù)采集【知識(shí)提煉】

while循環(huán)While循環(huán)如果條件為真,則循環(huán)語(yǔ)句會(huì)重復(fù)執(zhí)行,直至條件為假才結(jié)束循環(huán)。格式如下:while(條件){

語(yǔ)句;}在下面的示例中,計(jì)算1至10的和,當(dāng)i大于10時(shí)結(jié)束while循環(huán)。6.2煙霧傳感器數(shù)據(jù)采集inti=1,sum=0;while(i<11){sum=sum+i;i=i+1;}MessageBox.Show(sum.ToString());【知識(shí)提煉】

Thread線程.NET是一個(gè)多線程的環(huán)境,一個(gè)C#程序開(kāi)始于一個(gè)單線程,這個(gè)單線程由主線程自動(dòng)創(chuàng)建的,可具有多線程創(chuàng)建額外的線程。6.2煙霧傳感器數(shù)據(jù)采集staticvoidMain(string[]args){Threadthd=newThread(PrintB);thd.Start();while(true)Console.Write("A");}staticvoidPrintB(){while(true)Console.Write("B");}【能力拓展】

通過(guò)“任務(wù)實(shí)施”的操作步驟,已經(jīng)實(shí)現(xiàn)了獲取煙霧傳感器數(shù)據(jù)的功能。本環(huán)節(jié)將實(shí)現(xiàn):在有煙霧報(bào)警時(shí),使用多線程在程序界面閃爍紅色文字。請(qǐng)根據(jù)下列方法提示,完善書(shū)本代碼,實(shí)現(xiàn)上述功能。6.2煙霧傳感器數(shù)據(jù)采集名稱說(shuō)明Start()開(kāi)啟線程。Resume()繼續(xù)已掛起的線程。Suspend()掛起線程。Sleep(int32)休眠線程,Thread.Sleep(2000)為休眠2秒。Abort()終止線程。線程方法【自主探究】分別在教室A、B安裝煙霧傳感器模擬智慧教室煙霧檢測(cè)系統(tǒng),運(yùn)行效果如圖6-8所示,具有如下功能:有煙霧災(zāi)情時(shí)開(kāi)啟報(bào)警燈。推送災(zāi)情位置和發(fā)現(xiàn)時(shí)間至LED屏。6.2煙霧傳感器數(shù)據(jù)采集運(yùn)行效果IOTPart推送實(shí)時(shí)災(zāi)情信息任務(wù)03【任務(wù)描述】本任務(wù)模擬校園安防之災(zāi)情監(jiān)測(cè)系統(tǒng),結(jié)合任務(wù)一與任務(wù)二,用C#編寫(xiě)程序?qū)熿F傳感器與火焰?zhèn)鞲衅鞑杉臄?shù)據(jù),通過(guò)窗體顯示出來(lái),并將災(zāi)情信息推送至LED屏。通過(guò)本任務(wù)的實(shí)施,使學(xué)生理解continue的作用,理解continue與break的區(qū)別。6.3推送實(shí)時(shí)災(zāi)情信息程序運(yùn)行界面

6.3推送實(shí)時(shí)災(zāi)情信息界面控件設(shè)置控件名稱控件類型屬性名屬性值控件功能Form1窗體Text火焰煙霧

com_ledPort下拉框

輸入/顯示LED串口com_environmentPort下拉框

輸入/顯示4150串口btn_Open按鈕Text開(kāi)啟

txt_time文本框

顯示時(shí)間txt_fire文本框

顯示火焰信息txt_smoke文本框

顯示煙霧信息groupBox1組合框Text配置

lbl_Ledport標(biāo)簽TextLED

lbl_4150port標(biāo)簽Text環(huán)境采集

lbl_time標(biāo)簽Text時(shí)間

lbl_fire標(biāo)簽Text火焰

lbl_smoke標(biāo)簽Text煙霧

【任務(wù)實(shí)施】

創(chuàng)建新項(xiàng)目,添加DeviceCtrlLibrary.dll引用;創(chuàng)建創(chuàng)建界面,參照教材圖6-1與表6-1;引用DeviceCtrlLibrary、System.IO.Ports與DeviceCtrlLibrary.Model命名空間;聲明ADAM4150ResModelResModel、boolIsOpen、boolIsFire、boolIsSmoke、stringLED_MSG全局變量,分別用于ADAM4150ResModel對(duì)象、用于存儲(chǔ)串口狀態(tài)、用于存儲(chǔ)火焰?zhèn)鞲衅鳡顟B(tài)、用于存儲(chǔ)煙霧傳感器狀態(tài)、用于存儲(chǔ)LED顯示屏需發(fā)送文字信息;參照教材代碼,添加Form1窗體Load事件,實(shí)現(xiàn)讀取系統(tǒng)串口(排除默認(rèn)串口COM1);參照教材代碼,添加btn_open開(kāi)啟按鈕單擊事件,實(shí)現(xiàn)串口設(shè)置,并開(kāi)啟、暫停定時(shí)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論