《物聯(lián)網(wǎng)編程與應(yīng)用》課件-項(xiàng)目4 智慧路燈控制模塊_第1頁(yè)
《物聯(lián)網(wǎng)編程與應(yīng)用》課件-項(xiàng)目4 智慧路燈控制模塊_第2頁(yè)
《物聯(lián)網(wǎng)編程與應(yīng)用》課件-項(xiàng)目4 智慧路燈控制模塊_第3頁(yè)
《物聯(lián)網(wǎng)編程與應(yīng)用》課件-項(xiàng)目4 智慧路燈控制模塊_第4頁(yè)
《物聯(lián)網(wǎng)編程與應(yīng)用》課件-項(xiàng)目4 智慧路燈控制模塊_第5頁(yè)
已閱讀5頁(yè),還剩19頁(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)目4智慧路燈控制模塊智慧校園系統(tǒng)項(xiàng)目概述ZigBee技術(shù)是一種近距離、低復(fù)雜度、低功耗、低速率、低成本的雙向無(wú)線通訊技術(shù)。主要用于距離短、功耗低且傳輸速率不高的各種電子設(shè)備之間進(jìn)行數(shù)據(jù)傳輸以及典型的有周期性數(shù)據(jù)、間歇性數(shù)據(jù)和低反應(yīng)時(shí)間數(shù)據(jù)傳輸?shù)膽?yīng)用。智慧路燈控制是借助Zigbee技術(shù),實(shí)現(xiàn)遠(yuǎn)程控制路燈開(kāi)關(guān),并為后續(xù)項(xiàng)目中將校園管理與路燈控制的整合做好準(zhǔn)備。IOTPart實(shí)現(xiàn)ZigBee控制路燈開(kāi)關(guān)任務(wù)01【任務(wù)描述】ZigBee就是一種便宜的,低功耗的近距離無(wú)線組網(wǎng)通訊技術(shù)。在校園生活中,我們離不開(kāi)路燈,本任務(wù)將通過(guò)C#編寫(xiě)程序,使用ZigBee無(wú)線技術(shù),實(shí)現(xiàn)對(duì)路燈的無(wú)線開(kāi)關(guān)控制。通過(guò)本任務(wù)的實(shí)施,使學(xué)生了解zigbee、學(xué)會(huì)if語(yǔ)句的使用。4.1實(shí)現(xiàn)ZigBee控制路燈開(kāi)關(guān)程序運(yùn)行界面

4.1實(shí)現(xiàn)ZigBee控制路燈開(kāi)關(guān)界面控件設(shè)置控件名稱控件類型屬性名屬性值控件功能Form1窗體TextZigBee路燈

groupBox1框架容器Text配置

lamp1自定義控件路燈

rb_Open單選按鈕text開(kāi)開(kāi)燈rb_Close單選按鈕text關(guān)關(guān)燈com_port下拉列表框

獲取PC串口btn_Open命令按鈕Text打開(kāi)打開(kāi)串口lbl_Lamp標(biāo)簽Text路燈

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

創(chuàng)建新項(xiàng)目,添加DeviceCtrlLibrary.dll引用;添加自定義控件“WinFormsDeviceControlLibrary.dll”到工具箱中;創(chuàng)建創(chuàng)建界面,參照教材圖4-1與表4-1;引用DeviceCtrlLibrary、System.IO.Ports命名空間;參照教材代碼,在程序中定義一個(gè)路燈開(kāi)關(guān)的LampOnOff方法;參照教材代碼,添加Form1窗體Load事件,實(shí)現(xiàn)讀取系統(tǒng)串口;參照教材代碼,添加btn_open開(kāi)啟按鈕單擊事件,實(shí)現(xiàn)串口設(shè)置,打開(kāi)關(guān)閉串口;參照教材代碼,添加rb_Open單選按鈕CheckedChanged事件,實(shí)現(xiàn)開(kāi)燈操作;參照教材代碼,添加rb_Close單選按鈕CheckedChanged事件,實(shí)現(xiàn)關(guān)燈操作。4.1實(shí)現(xiàn)ZigBee控制路燈開(kāi)關(guān)【知識(shí)提煉】

IF語(yǔ)句if語(yǔ)句控制條件分支。如果表達(dá)式的值不為零,則執(zhí)行if語(yǔ)句體。if語(yǔ)句的語(yǔ)法有兩種形式。語(yǔ)法selection-statement:(1)if(expression)statement(2)if(expression)statementelsestatement在第一種形式的語(yǔ)法中,如果expression為true(非零),則執(zhí)行statement。如果expression為false,則忽略statement。在第二種形式的語(yǔ)法(使用了else)中,如果expression為false,則執(zhí)行第二個(gè)statement。對(duì)于這兩種形式,除非其中一個(gè)語(yǔ)句包含break、continue或goto,否則控制隨后會(huì)從程序中的if語(yǔ)句傳遞到的下一語(yǔ)句。4.1實(shí)現(xiàn)ZigBee控制路燈開(kāi)關(guān)【能力拓展】

1.閏年判斷,在文本框中輸入年份,按下“判斷”按鈕,是閏年則在右邊標(biāo)簽上顯示“是閏年”,否則顯示“不是閏年”。什么是閏年:閏年判斷條件是能被4整除但不能被100整除,或者能被400整除的是閏年。2.通過(guò)“任務(wù)實(shí)施”的操作步驟,已經(jīng)實(shí)現(xiàn)路燈的控制,如果讓路燈根據(jù)時(shí)間自動(dòng)開(kāi)關(guān)(晚上18點(diǎn)到凌晨7點(diǎn)開(kāi)燈,其余時(shí)間關(guān)燈)則需要使用時(shí)間控件(時(shí)間控件Timer從工具箱中選擇)來(lái)完成,每分鐘判斷一次,程序運(yùn)行后打開(kāi)串口后開(kāi)啟時(shí)間空間功能。4.1實(shí)現(xiàn)ZigBee控制路燈開(kāi)關(guān)【自主探究】修改任務(wù)實(shí)施程序,請(qǐng)為該模塊增加下列功能:實(shí)時(shí)采集大氣壓的數(shù)值。根據(jù)大氣壓來(lái)控制路燈開(kāi)關(guān)。4.1實(shí)現(xiàn)ZigBee控制路燈開(kāi)關(guān)IOTPart實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)任務(wù)02【任務(wù)描述】人體傳感器基于多普勒技術(shù)原理,當(dāng)人體接近傳感器的感應(yīng)區(qū)域時(shí),開(kāi)關(guān)就能無(wú)接觸,無(wú)壓力、無(wú)火花、迅速發(fā)出電氣指令進(jìn)行提示。本任務(wù)模擬樓梯燈設(shè)計(jì),當(dāng)有人經(jīng)過(guò)時(shí),樓道燈就亮起,無(wú)人時(shí)自動(dòng)熄滅。通過(guò)本任務(wù)的實(shí)施,使學(xué)生學(xué)會(huì)單選按鈕、復(fù)選框的使用,理解數(shù)組的作用。4.2實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)程序運(yùn)行界面

4.2實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)界面控件設(shè)置控件名稱控件類型屬性名屬性值控件功能Form1窗體Text人體紅外ZigBee聯(lián)動(dòng)

groupBox1框架容器Text配置

lbl_lamp標(biāo)簽Text路燈

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

com_lamp下拉列表框

顯示路燈串口com_environment下拉列表框

顯示環(huán)境串口ch_bodyInfrared復(fù)選按鈕Text人體開(kāi)關(guān)控制人體紅外是否啟動(dòng)btn_Open命令按鈕Text打開(kāi)打開(kāi)串口lamp1自定義路燈控件

btn_lampOpen命令按鈕Text開(kāi)手動(dòng)控制開(kāi)燈btn_lampClose命令按鈕Text關(guān)手動(dòng)控制關(guān)燈timer1時(shí)間控件Interval5000

EnabledFalse

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

創(chuàng)建新項(xiàng)目,添加DeviceCtrlLibrary.dll引用;添加自定義控件“WinFormsDeviceControlLibrary.dll”到工具箱中;創(chuàng)建創(chuàng)建界面,參照教材圖4-5與表4-3;引用DeviceCtrlLibrary、System.IO.Ports命名空間;參照教材代碼,添加Form1窗體Load事件,讀取系統(tǒng)串口至com_lamp、com_environment控件中;參照教材代碼,在程序中定義一個(gè)路燈開(kāi)關(guān)的LampOnOff方法;參照教材代碼,添加btn_open打開(kāi)按鈕單擊事件,實(shí)現(xiàn)Zigbee串口開(kāi)啟與關(guān)閉;參照教材代碼,添加ch_bodyInfrared按鈕單擊事件,通過(guò)判斷人體按鈕狀態(tài),打開(kāi)關(guān)閉adam4150的開(kāi)啟關(guān)閉;參照教材代碼,添加btn_lampOpen單選按鈕單擊事件,調(diào)用LampOnOff(1,true)開(kāi)啟路燈;參照教材代碼,添加btn_lampClose單選按鈕單擊事件,調(diào)用LampOnOff(1,false)關(guān)閉路燈;參照教材代碼,添加timer1定時(shí)器的tick事件,實(shí)時(shí)判斷是否感應(yīng)到人,如果感應(yīng)到人則開(kāi)路燈否則關(guān)閉。4.2實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)【知識(shí)提煉】

控件:RadioButton單選按鈕RadioButton控件可以顯示文本、Image或同時(shí)顯示兩者。當(dāng)用戶選擇一個(gè)組內(nèi)的一個(gè)選項(xiàng)按鈕(也稱作單選按鈕)時(shí),其他選項(xiàng)按鈕自動(dòng)清除。給定容器(如Form)中的所有RadioButton控件構(gòu)成一個(gè)組。若要在一個(gè)窗體上創(chuàng)建多個(gè)組,請(qǐng)將每個(gè)組放在它自己的容器(例如GroupBox或Panel控件)中。RadioButton和CheckBox控件的功能相似:它們提供用戶可以選擇或清除的選項(xiàng)。不同之處在于,可以同時(shí)選定多個(gè)CheckBox控件,而選項(xiàng)按鈕卻是互相排斥的。使用Checked屬性可以獲取或設(shè)置RadioButton的狀態(tài),通過(guò)設(shè)置Appearance屬性,可以將選項(xiàng)按鈕的外觀顯示為切換式按鈕或標(biāo)準(zhǔn)選項(xiàng)按鈕。4.2實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)【知識(shí)提煉】

控件:CheckBox復(fù)選框使用CheckBox為用戶提供一個(gè)選項(xiàng),如true/false或是/否。CheckBox控件可以顯示圖像或文本。CheckBox和RadioButton控件具有相似的功能︰它們向用戶提供選擇的選項(xiàng)列表。CheckBox控件能讓用戶可以從中選取選項(xiàng)的組合。與此相反,RadioButton控件允許用戶從相互排斥的選項(xiàng)中進(jìn)行選擇,只能選一個(gè)。CheckBox控件可以通過(guò)Appearance屬性確定是否顯示為常見(jiàn)CheckBox典型的外觀或者按鈕形式。還可以通過(guò)IsThreeState屬性來(lái)獲取或設(shè)置指示控件是支持兩種狀態(tài)還是三種狀態(tài)的值并通過(guò)IsChecked屬性獲取或設(shè)置是否選中了復(fù)選框控件。4.2實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)【知識(shí)提煉】

數(shù)組數(shù)組定義:所謂數(shù)組,就是相同數(shù)據(jù)類型的元素按一定順序排列的集合,就是把有限個(gè)類型相同的變量用一個(gè)名字命名,然后用編號(hào)區(qū)分他們的變量的集合,這個(gè)名字稱為數(shù)組名,編號(hào)稱為下標(biāo)。組成數(shù)組的各個(gè)變量稱為數(shù)組的分量,也稱為數(shù)組的元素,有時(shí)也稱為下標(biāo)變量。數(shù)組是在程序設(shè)計(jì)中,為了處理方便,把具有相同類型的若干變量按有序的形式組織起來(lái)的一種形式。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。C#數(shù)組從零開(kāi)始建立索引,即數(shù)組索引從零開(kāi)始。C#中數(shù)組的工作方式與在大多數(shù)其他流行語(yǔ)言中的工作方式類似。但還有一些差異應(yīng)引起注意。聲明數(shù)組時(shí),方括號(hào)([])必須跟在類型后面,而不是標(biāo)識(shí)符后面。在C#中,將方括號(hào)放在標(biāo)識(shí)符后是不合法的語(yǔ)法。在C#中,將方括號(hào)放在標(biāo)識(shí)符后是不合法的語(yǔ)法。如:int[]table;//不能是inttable[];4.2實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)【知識(shí)提煉】

數(shù)組另一細(xì)節(jié)是,數(shù)組的大小不是其類型的一部分,而在C語(yǔ)言中它卻是數(shù)組類型的一部分。這使您可以聲明一個(gè)數(shù)組并向它分配int對(duì)象的任意數(shù)組,而不管數(shù)組長(zhǎng)度如何。如:int[]numbers;//申明numbers為可以任意整數(shù)個(gè)的整形數(shù)組numbers=newint[10];//生成numbers為10個(gè)元素的數(shù)組numbers=newint[20];//重新生成numbers為20個(gè)元素的數(shù)組4.2實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)【知識(shí)提煉】

數(shù)組數(shù)組聲明:C#支持一維數(shù)組、多維數(shù)組(矩形數(shù)組)和數(shù)組的數(shù)組(交錯(cuò)的數(shù)組)。下面的示例展示如何聲明不同類型的數(shù)組:一維數(shù)組:int[]numbers;多維數(shù)組:string[,]names;數(shù)組的數(shù)組(交錯(cuò)的):string[][]scores;聲明數(shù)組(如上所示)并不實(shí)際創(chuàng)建它們。在C#中,數(shù)組是對(duì)象,必須進(jìn)行實(shí)例化。4.2實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)【知識(shí)提煉】

數(shù)組數(shù)組創(chuàng)建:C#支持一維數(shù)組、多維數(shù)組(矩形數(shù)組)和數(shù)組的數(shù)組(交錯(cuò)的數(shù)組)。下面的示例展示如何聲明不同類型的數(shù)組:一維數(shù)組:int[]numbers=newint[5];多維數(shù)組:string[,]names=newstring[5,4];數(shù)組的數(shù)組(交錯(cuò)的):

byte[][]scores=newbyte[5][];for(intx=0;x<scores.Length;x++){ scores[x]=newbyte[4];}還可以有更大的數(shù)組。例如,可以有三維的矩形數(shù)組:int[,,]buttons=newint[4,5,3];甚至可以將矩形數(shù)組和交錯(cuò)數(shù)組混合使用。int[][,,][,]numbers;4.2實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)【知識(shí)提煉】

數(shù)組初始化數(shù)組:C#通過(guò)將初始值括在大括號(hào)({})內(nèi)為在聲明時(shí)初始化數(shù)組提供了簡(jiǎn)單而直接了當(dāng)?shù)姆椒?。下面的示例展示初始化不同類型的?shù)組的各種方法。注意如果在聲明時(shí)沒(méi)有初始化數(shù)組,則數(shù)組成員將自動(dòng)初始化為該數(shù)組類型的默認(rèn)初始值。另外,如果將數(shù)組聲明為某類型的字段,則當(dāng)實(shí)例化該類型時(shí)它將被設(shè)置為默認(rèn)值null。4.2實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)【知識(shí)提煉】

數(shù)組訪問(wèn)數(shù)組成員:訪問(wèn)數(shù)組成員可以直接進(jìn)行,類似于在C/C++中訪問(wèn)數(shù)組成員。創(chuàng)建一個(gè)名為numbers的數(shù)組,然后向該數(shù)組的第五個(gè)元素賦以5:int[]numbers={10,9,8,7,6,5,4,3,2,1,0};numbers[4]=5;最后該數(shù)組的元素為:{10,9,8,7,5,5,4,3,2,1,0};4.2實(shí)現(xiàn)人體紅外和路燈聯(lián)動(dòng)【知識(shí)提煉】

數(shù)組數(shù)組是對(duì)象:在C#中,數(shù)組實(shí)際上是對(duì)象。System.Array是所有數(shù)組類型的抽象基類型??梢允褂肧ystem.Array具有的屬性以及其他類成員。這種用法的一個(gè)示例是使用“長(zhǎng)度”(Length)屬性獲取數(shù)組的長(zhǎng)度。下面的代碼將numbers數(shù)組的長(zhǎng)度(為5)賦給名為L(zhǎng)engt

溫馨提示

  • 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)論