1 系統內容要求
(1)測量實(shí)驗室內的溫濕度、煙霧濃度、丙烷濃度;
(2)檢測地面漏水情況,若漏水則開(kāi)啟水泵排水;
(3)檢測門(mén)窗入侵情況;
(4)具有多種報警方式;
(5)手機APP遠程操控。
2 元器件選擇
3 系統硬件設計
3.1 硬件部分組成框圖
3.1.1主控硬件部分組成
主控電路如圖3.1所示,由以下幾部分組成:以STM32作為處理中心,煙霧傳感器測量煙霧濃度,丙烷傳感器測量丙烷濃度,溫濕度傳感器測量空氣中的溫度、濕度,藍牙主機接收副控發(fā)送的數據,風(fēng)扇1電路、風(fēng)扇2電路、聲光報警電路在滿(mǎn)足條件下觸發(fā),4G模塊則將測量到的數據傳輸至云服務(wù)器,同時(shí)接收手機APP的下行指令。
圖3.1 主控硬件組成
3.1.2副控硬件部分組成
副控電路如圖3.2所示,由以下幾部分組成:以STM32作為處理中心,水浸傳感器檢測地面是否存在漏水情況,人體感應傳感器感應是否有人經(jīng)過(guò),藍牙從機將副控收集到的信息發(fā)送給主控,聲光報警電路、水泵電路在滿(mǎn)足條件下觸發(fā)。
圖3.2 副控硬件組成
3.2 人體感應傳感器
選用人體感應傳感器HCSR505來(lái)感應是否有人經(jīng)過(guò),從而判斷門(mén)窗入侵情況[2]。該傳感器基于紅外線(xiàn),當有人在感應角度內移動(dòng),就會(huì )輸出高電平,延時(shí)時(shí)間為8秒,否則為低電平。如表3.1可以對于人體感應傳感器的一些參數有所了解,其工作狀態(tài)也可以選擇,適用于不同的場(chǎng)合。
如表3.2所示,可以知道應該給VCC接5V電壓供電,然后GND接地共地,OUT引腳接到單片機引腳上,接線(xiàn)電路如圖3.3所示。當有人在感應范圍內移動(dòng),就會(huì )改變紅外光譜的檢測距離,信號引腳就輸出高電平,反之低電平。通過(guò)讀取所連接的單片機引腳狀態(tài),就可以了解有沒(méi)有人經(jīng)過(guò),從而得知實(shí)驗室的門(mén)窗入侵情況。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
圖3.3 HCSR505接線(xiàn)圖
3.3 電極式水浸探頭
選取水浸探頭來(lái)探測重點(diǎn)地面是否漏水,使用的是電極式水浸探頭,該探頭是接觸式的,意味著(zhù)它要與水接觸才可以感應到。如表3.3所示,對于電極式水浸探頭的工作狀態(tài)以及材質(zhì)可以有所了解。
表3.3 水浸傳感器產(chǎn)品參數
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif
圖3.4 水浸傳感器接線(xiàn)圖
由圖3.4可以看出,水浸傳感器的工作原理,當水浸傳感器的探頭探測到水時(shí),信號經(jīng)過(guò)轉換電路,三極管的集電極的電壓為低電平,如果沒(méi)有水則輸出高電平。將該輸出端連接到單片機的引腳上,通過(guò)讀取該引腳的狀態(tài),則可以知道地面有沒(méi)有漏水,如果漏水了就開(kāi)啟水泵,沒(méi)有則不開(kāi)啟。
3.4 藍牙無(wú)線(xiàn)模塊
選取藍牙模塊HC05來(lái)給主控和副控通信,通過(guò)藍牙的連接,可以彼此互發(fā)數據,進(jìn)行數據的傳輸[12]。通過(guò)參數的設置可以發(fā)現藍牙模塊的工作狀態(tài)以及工作原理,其基本參數如表3.4所示。
表3.4 藍牙模塊HC05的參數說(shuō)明
表3.5 HC05引腳說(shuō)明
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif
圖3.5 HC05接線(xiàn)圖
由表3.5可以知道藍牙模塊HC05的接線(xiàn)方法。從目前來(lái)說(shuō),藍牙與單片機的連接只需要連接4線(xiàn),VCC連接5V,GND接地,藍牙的接收端連接單片機的串口1的發(fā)送端,發(fā)送端連接單片機的串口1的接收端,如圖3.5所示。
3.5 聲光報警電路
利用NPN型晶體三極管S9012作為控制核心,當單片機給予指令為低電平0V時(shí),三極管的****極E為5V,基極B為0V,而三極管導通的條件則是基極B和****極E之間的電壓差超過(guò)0.7V即可,因此給予0V低電平滿(mǎn)足了該條件,三極管導通,發(fā)光二極管滿(mǎn)足導通條件亮起。三極管導通之后,蜂鳴器正負極的電壓差約足夠,滿(mǎn)足運行所需要的電壓差3V,發(fā)出報警聲。如果單片機給的是高電平,就不滿(mǎn)足三極管導通的條件,發(fā)光二極管不亮,蜂鳴正負極之間因為沒(méi)有電壓差而啞巴。其聲光報警電路如圖3.6所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif
圖3.6 聲光報警電路
3.6 繼電器電路
繼電器使用的型號是SRD-05V-DC-SL-C,它有5個(gè)引腳:輸入引腳1、輸入引腳2、公共端3、常開(kāi)端4、常閉端5。1、2引腳連接控制電壓5V,當單片機給高電平3.3V的時(shí)候,三極管基極B和****極E之間滿(mǎn)足導通電壓0.7V,發(fā)光二極管滿(mǎn)足導通條件發(fā)光。常開(kāi)端4和公共端3導通,而風(fēng)扇的正極連接繼電器的常開(kāi)端4,負極接地,在常開(kāi)端4和公共端3導通之后,有足夠的電壓驅動(dòng)風(fēng)扇工作,否則常閉端5和公共端3導通,風(fēng)扇沒(méi)有足夠的電壓驅動(dòng)。二極管IN4148的作用就是在單片機給高電平指令的那一瞬間,避免因電壓突然變高而燒壞三極管。其繼電器電路如圖3.7所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image010.gif
圖3.7 繼電器電路
3.7 指示燈電路
對于實(shí)驗室安全監控系統來(lái)說(shuō),指示燈電路是不可缺少的,如圖3.8所示。當單片機給高電平的時(shí)候,發(fā)光二極管導通亮起;給低電平的時(shí)候,發(fā)光二極管不導通[5]。單片機給定的高低電平由測量到的數據決定。而發(fā)光二極管沒(méi)有辦法直接承受3.3V的電壓,所以需要電阻進(jìn)行分壓。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif
圖3.8 指示燈電路
3.8 氣敏傳感器
很多人都知道大部分金屬都有導電率,而氣敏傳感器就是利用該原理對氣體濃度進(jìn)行測量的,不同的傳感器對不同的氣體產(chǎn)生變化的電導率不同[7]。比如MQ2煙霧傳感器對空氣中的煙霧濃度就比較敏感,因此適合用來(lái)測量煙霧濃度。首先要認識氣敏傳感器的引腳以及產(chǎn)品參數,如表3.6和表3.7所示。
表3.6 MQ2/MQ6的產(chǎn)品參9數
產(chǎn)品參數 | |
| |
| | | |
| | |
| | |
| | | |
| | |
| | Rs (in air)/Rs (2000ppm C3H8) |
| | 2.5V~4.0V(in 2000ppmC3H8) |
| | ≤0.6(R3000ppm/R1000ppm C3H8) |
| | |
| Dc:5.0V±0.1V; VH:5.0V±0.1V |
| |
表3.7 MQ2/MQ6引腳說(shuō)明
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif
圖3.9 MQ2接線(xiàn)圖
由表3.7可知,需要讀取實(shí)驗室的氣體濃度,所以需要連接的是模擬信號輸出引腳AO,再通過(guò)單片機內部的AD轉換成數字顯示出來(lái)[9],GND接地,VCC連接5V給它供電[1],如圖3.9所示,使它工作。而另一個(gè)氣敏傳感器MQ6的工作原理、接線(xiàn)圖也是如此。
3.9 溫濕度傳感器
其引腳說(shuō)明如表3.8所示,因此只需要連接好正負極,然后連接好模擬量輸出的引腳即可。接線(xiàn)電路如圖3.10所示。
表3.8 DHT11引腳說(shuō)明
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif
圖3.10 DHT11電路圖
3.10 電源接入電路
對于所有產(chǎn)品來(lái)說(shuō),供電是必不可少的。因此我們需要接入穩定電壓的電源,如圖3.11所示,可以看見(jiàn)接入的電源底座是P2,可以通過(guò)USB電源轉DC直流數據線(xiàn)直接連接到平時(shí)所用的家庭電源,給系統供到5V電。當6腳自鎖開(kāi)關(guān)SW1按下時(shí),引腳2、3導通,接入的電源就可以驅動(dòng)實(shí)驗室安全監控系統工作。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif
圖3.11 電源接入電路
3.11 4G模塊接入電路
對于4G模塊來(lái)說(shuō),它以Cat模組ML302為核心,支持的頻段有LTE-TDDB34/B38/BB39/B40/B41、LTE-FDD B1/B3/B5/B8,其平均功耗為1W。它定期向監控平臺發(fā)送數據,實(shí)時(shí)監視[11]。引腳說(shuō)明如表3.9所示。
表3.9 4G模塊引腳說(shuō)明
引腳 | | |
| | |
| |
|
| | |
| | |
| | 本引腳拉低1秒后重啟模組,正常運行時(shí)拉高 |
因此,將4G模塊連接到STM32最小系統板時(shí),將TXD、RXD連接到串口3的接收、發(fā)送引腳,GND連接的單片機的GND。同時(shí)要將鋰電池的正極接入4G模塊的VCC,給其供電,負極接入單片機的GND,其接線(xiàn)如圖3.12所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image020.gif
圖3.12 4G模塊接入電路
4 系統軟件設計
4.1 單片機程序設計
4.1.1單片機程序開(kāi)發(fā)環(huán)境
單片機的主要開(kāi)發(fā)環(huán)境是Keil5,KeilC51是51系列兼容單片機C語(yǔ)言軟件開(kāi)發(fā)系統。實(shí)驗室安全監控系統使用的芯片是STM32,使用的語(yǔ)言是C語(yǔ)言,因此Keil5剛剛好可以使用。同時(shí)它還有很多優(yōu)點(diǎn),比如有著(zhù)很強大的系統,可讀性比較強,調試時(shí)很方便……
Keil5是一個(gè)很好的開(kāi)發(fā)平臺,它可以通過(guò)C語(yǔ)言、匯編語(yǔ)言等編寫(xiě)程序,還可以通過(guò)設置斷點(diǎn)等對程序進(jìn)行調試,在編譯時(shí)可以提醒編寫(xiě)錯誤、編寫(xiě)不規范等行為,而且對于不同的語(yǔ)言來(lái)說(shuō),它是兼容的,很多人可以通過(guò)Keil5這個(gè)平臺使用不同的語(yǔ)言開(kāi)發(fā)軟件。
4.1.2單片機程序總體流程圖
單片機的數據上行流程圖如圖4.1所示。先將需要用到的函數初始化,再將需要的引腳初始化。通過(guò)調用各種函數測量溫濕度、煙霧濃度、丙烷濃度,再判斷測量到的數據是否超過(guò)閾值,如果超過(guò)了蜂鳴器就報警。再將藍牙主機接收到的數據和測量到的數據發(fā)送至服務(wù)器上。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif
圖4.1 數據上行流程圖
當手機APP有執行的指令時(shí),比如打開(kāi)風(fēng)扇指令,該指令被發(fā)送給服務(wù)器,服務(wù)器將該指令發(fā)送給下位機。當下位機接收到指令時(shí),就將相應引腳置高或置低,其流程圖如圖4.2所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image024.gif
圖4.2 指令下行流程圖
4.1.3溫濕度采集程序設計
當需要采集溫濕度的時(shí)候,就調用該程序。如果說(shuō)單片機檢測到DHT11的存在,就返回0給予單片機判斷的條件,否則不進(jìn)行下一步,當檢測到DHT11的存在后,就開(kāi)始讀取DHT11上傳的溫濕度,通過(guò)校驗、解碼,最終獲得正確的溫濕度。一次數據的讀取為5字節,前2字節為濕度的整數和、小數和,再2字節是溫度的整數和、小數和,最后的1字節是校驗和。其流程圖如圖4.3所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image026.gif
圖4.3 溫濕度采集程序流程圖
4.1.4氣體濃度采集程序
首先要先對煙霧傳感器的電壓值即煙霧傳感器的模擬輸出引腳進(jìn)行測量,并且為了減小誤差,采取多次測量取平均值的方法獲取煙霧傳感器的電壓。再將該電壓轉換成3.3V下的4096份,即12位精度的ADC,最后通過(guò)公式計算煙霧傳感器的體電阻Rs、電阻R0。最后對系統執行的時(shí)間進(jìn)行校準,利用公式計算出實(shí)驗室內的煙霧濃度。而丙烷氣體濃度也是同樣的原理進(jìn)行采集的。其流程圖如圖4.4所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image028.gif
圖4.4 煙霧濃度采集程序流程圖
MQ6的原理也是如此,其流程圖如圖4.5所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image030.gif
圖4.5 丙烷濃度采集程序流程圖
4.1.5人體感應模塊采集程序
當人體感應模塊在感應范圍內感應到人的活動(dòng)跡象,就會(huì )輸出高電平。因此需要讀取與單片機相連接的人體感應模塊的輸入引腳的電平,若該引腳為高電平,則證明有人存在,若是低電平,則證明無(wú)人存在。其流程圖如圖4.6所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image032.gif
圖4.6 人體感應傳感器采集程序流程圖
4.1.6水浸傳感器采集程序
當水浸傳感器的探頭檢測到水的存在,即存在漏水情況,經(jīng)過(guò)轉換電路,讀取電壓。因此只需要讀取與單片機相連接的水浸傳感器轉換電路的輸出引腳即可。其流程圖如圖4.7所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image034.gif
圖4.7 水浸傳感器采集程序流程圖
4.1.7藍牙從機發(fā)送程序
藍牙從機需要將副控系統采集到的門(mén)窗入侵、地面漏水情況報告給主控系統。利用不同的數據代表不同的情況發(fā)送給主控系統,當有人的時(shí)候,就發(fā)送數字1;當沒(méi)人的時(shí)候,就發(fā)生數字2;當地面沒(méi)漏水的時(shí)候,就發(fā)送字母C;當地面漏水的時(shí)候,就發(fā)送字母D。其流程圖如圖4.8所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image036.gif
圖4.8 藍牙從機發(fā)送程序流程圖
4.1.8藍牙主機接收程序
當藍牙主機和從機順利配對后,從機將采集到的數據發(fā)送給主機進(jìn)行處理。單片機將接收到的數據存儲起來(lái),然后再一一讀取,利用不同的數字和字母,判斷門(mén)窗入侵、地面漏水情況。其流程圖如圖4.9所示。
圖4.9 藍牙主機接收程序流程圖file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image038.gif
4.2 手機APP程序設計4.2.1定時(shí)器定時(shí)程序
發(fā)送至服務(wù)器的數據要定時(shí)發(fā)送,否則會(huì )因為數據發(fā)送太快服務(wù)器沒(méi)辦法正常接收,新的數據太快會(huì )覆蓋了舊數據。如果數據發(fā)送得太慢則不利于手機APP對數據的讀取。因此選擇定時(shí)時(shí)間為6秒,每6秒上傳一次數據至服務(wù)器。其流程圖如圖4.10所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image040.gif
圖4.10 定時(shí)器定時(shí)程序流程圖
4.2.2數據上傳程序
發(fā)送至服務(wù)器的數據不單單是主控系統采集到的信息,還有副控系統采集到的信息。當串口1接收到副控系統發(fā)送過(guò)來(lái)的信息,就對此進(jìn)行判斷并發(fā)送給服務(wù)器,不同的數字、字母代表不同的含義,比如藍牙從機發(fā)送了數字1,就表明門(mén)窗存在入侵情況。然后調用各種函數,讀取溫濕度、煙霧濃度、丙烷濃度,將這些信息發(fā)送至服務(wù)器。其流程圖如圖4.11所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image042.gif
圖4.11 數據上傳程序流程圖
4.2.3數據下行程序
當手機APP接收到指令時(shí),該指令被發(fā)送至服務(wù)器,服務(wù)器再將該指令發(fā)送給主控系統,主控系統則做出判斷,是否操作該指令。例如想遠程打開(kāi)排煙風(fēng)扇,只需要在手機APP上點(diǎn)擊開(kāi)啟風(fēng)扇,該指令就會(huì )被發(fā)送到服務(wù)器,服務(wù)器就把這個(gè)信息發(fā)送給單片機,單片機就執行該指令,開(kāi)啟風(fēng)扇。其流程圖如圖4.12所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image044.gif
圖4.12 數據下行程序流程圖
5 手機APP的設計5.1 機智云AIoT的接入流程
對于機智云來(lái)說(shuō),下位機接入機智云需要開(kāi)發(fā)者進(jìn)行一些功能的開(kāi)發(fā)。首先是在開(kāi)發(fā)者中心注冊,選擇成為個(gè)人開(kāi)發(fā)者或者企業(yè)開(kāi)發(fā)者,然后根據需求比如接入機智云的方式等創(chuàng )建產(chǎn)品、開(kāi)發(fā)設備、開(kāi)發(fā)應用,最終進(jìn)入產(chǎn)品調試。一個(gè)流程之后,APP就可以調試使用了。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image046.gif
圖5.1 機智云接入流程
5.2 產(chǎn)品的創(chuàng )建
對于手機APP的設計來(lái)說(shuō),首先要設置的是顯示在APP上的界面,即上傳到服務(wù)器的數據。據實(shí)驗室安全監控系統來(lái)說(shuō),需要設置多個(gè)數據點(diǎn)。
先要在機智云的開(kāi)發(fā)者中心創(chuàng )建新產(chǎn)品。先將“產(chǎn)品分類(lèi)”選擇為其他中的自定義,填好產(chǎn)品的名稱(chēng),“技術(shù)方案”選擇的是Wi-Fi/移動(dòng)網(wǎng)絡(luò )方案,選擇“通訊方式”為移動(dòng)網(wǎng)絡(luò ),“數據傳輸方式”為變長(cháng),“功耗類(lèi)型”為正常,最后保存即可。這樣,一個(gè)新的產(chǎn)品就創(chuàng )建好了。當新建好產(chǎn)品之后,機智云會(huì )分配兩個(gè)密鑰,這兩個(gè)密鑰一個(gè)連接下位機的4G模塊,一個(gè)連接手機APP。它們是獨一無(wú)二的,在連接時(shí),機智云會(huì )自動(dòng)分辨、連接。如圖5.2所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image048.gif
圖 5.2 產(chǎn)品的基本信息
創(chuàng )建好產(chǎn)品后,需要對產(chǎn)品中的數據進(jìn)行設置。在創(chuàng )建好的產(chǎn)品中,選擇新建數據點(diǎn),如圖5.3所示。什么是數據點(diǎn)?數據點(diǎn)就是產(chǎn)品中的數據,想上傳至服務(wù)器的數據,這些數據在服務(wù)器與在代碼中是一一對應的,因此避免出現數據錯誤的現象。這些數據的定義包括了標識名,就是在產(chǎn)品中要顯示的名字,包括了讀寫(xiě)類(lèi)型、數據類(lèi)型,包括了備注。這些數據可以更改,在更改之后,也需要更改代碼中的內容,否則數據格式會(huì )不正確,云平臺與下位機之間的通訊就會(huì )出現問(wèn)題。具體描述如表5.1所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image050.gif
圖5.3 新建數據點(diǎn)界面
表5.1 數據點(diǎn)基本內容
內容 | | |
|
| |
|
| 用于應用層傳輸,客戶(hù)端或業(yè)務(wù)云開(kāi)發(fā)時(shí)需要使用 |
| | |
| 設備端可上報該數據點(diǎn)數據;云端/客戶(hù)端可對該數據點(diǎn)數據做出下發(fā)控制 |
| 數據只支持從設備上報,數據類(lèi)型需為布爾值 |
| 數據只支持從設備上報,數據類(lèi)型需為布爾值 |
| | |
| |
| |
| 填寫(xiě)數據長(cháng)度,數據內容由用戶(hù)自定義 |
|
| 用一段文本描述當前數據點(diǎn)的功能及定義方法 |
|
| 用戶(hù)輸入的分辨率一值,確定了每個(gè)取值的步進(jìn) |
因此,根據實(shí)驗室安全監控系統的需求,分析硬件開(kāi)發(fā)的需求,將數據點(diǎn)設置好,數據點(diǎn)的配置是APP設計的重中之重,如表5.2所示。
表5.2 實(shí)驗室安全監控系統數據點(diǎn)
5.3 MCU開(kāi)發(fā)
對于機智云來(lái)說(shuō),它的優(yōu)勢就是不需要開(kāi)發(fā)者之間寫(xiě)APP的代碼,就不會(huì )存在很多錯誤問(wèn)題的發(fā)生,可以使用他的自動(dòng)生成代碼服務(wù),方便快捷。這些生成的代碼通常包括了通訊協(xié)議、通訊數據的轉換邏輯等。在代碼中添加相應的開(kāi)發(fā)措施,在手機APP發(fā)送指令之后,指令就會(huì )變成事件發(fā)送到服務(wù)器中,服務(wù)器發(fā)生給下位機,驅動(dòng)下位機實(shí)現相應的功能。這里選擇“硬件方案”的是獨立MUC方案,“硬件平臺”選擇的是其他平臺,然后將產(chǎn)品的Product Secret參數填入相應位置,然后生成代碼包,如圖5.4所示。最后將生成的代碼包移植接入下位機的代碼中。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image052.gif
圖5.4 MCU SDK開(kāi)發(fā)
5.4 移動(dòng)應用的設置
首先要在機智云的開(kāi)發(fā)者中心創(chuàng )建一個(gè)新的移動(dòng)應用,填入應用名稱(chēng),即APP的名字,“應用包名”要選擇一個(gè)唯一的名字,不該和其他產(chǎn)品的名字一樣?!邦?lèi)型”選擇智能家居即可,“平臺”就選擇ios和android,如圖5.5所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image054.gif
圖5.5 新建移動(dòng)應用界面
新建好移動(dòng)應用之后,點(diǎn)擊進(jìn)入該移動(dòng)應用。在其個(gè)性化選項中,選擇關(guān)聯(lián)產(chǎn)品,點(diǎn)擊“+”號,把先前創(chuàng )建的產(chǎn)品與現在創(chuàng )建的移動(dòng)應用關(guān)聯(lián)起來(lái),也可以選擇自己喜歡的主題,更改圖標等。
關(guān)聯(lián)號產(chǎn)品之后,要對產(chǎn)品的應用證書(shū)進(jìn)行配置。在構建應用的選項下,選擇應用證書(shū),然后就可以配置證書(shū)了。這里只配置了Android證書(shū),如圖5.6所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image056.gif
圖5.6 Android證書(shū)的配置
在同樣的選項下,選擇應用構建,點(diǎn)擊構建測試版,等待APP的構建即可。當APP構建好之后,會(huì )生成一個(gè)二維碼,利用手機自帶的游覽器掃描,就可以下載構建好的APP,正常安裝即可。
5.5 上下位機的連接
當下載好APP后,我們需要將APP與下位機聯(lián)系起來(lái)。使用軟件GAgent_Debugger配置手機APP與下位機的聯(lián)系。在該設備中,選擇“新增”,我們選擇“服務(wù)器平臺”為國內服務(wù)器,將產(chǎn)品的Product Key和Product Secret參數填入,選擇“設備類(lèi)型”為單品,選擇“通信方式”為移動(dòng)網(wǎng)絡(luò )。成功配置好服務(wù)器之后,就如圖5.7所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image058.gif
5.7 配置成功界面
在工具選項中,選擇設備二維碼,將Product Key參數填入,以及4G模塊的IMEI號也填入,選擇“服務(wù)器域名”為國內服務(wù)器,然后點(diǎn)擊“二維碼生成”,就會(huì )生成一個(gè)二維碼,如圖5.8所示。將手機APP打開(kāi),點(diǎn)擊掃描設備二維碼,掃描設備二維碼,即可將手機APP與下位機綁定。在這里要注意的是,APP在綁定時(shí)下位機必須連接到機智云。在下位機正常工作時(shí),APP則可以查看各種信息。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image060.gif
圖5.8生成設備二維碼
5.6 手機APP的推送
首先使用的推送功能基于機智云平臺,因此先向機智云申請開(kāi)通。首先申請的是規則引擎這個(gè)功能。當提交申請之后,等待機智云平臺開(kāi)通,之后就可以使用其功能。
成功開(kāi)通規則引擎之后,在創(chuàng )建好的產(chǎn)品內,服務(wù)選項下,多了D3 Engine選擇。
點(diǎn)擊D3 Engine,進(jìn)入配置界面,點(diǎn)擊編輯推送的平臺,如圖5.9所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image062.gif
圖5.9 編輯推送平臺
在這里選擇的推送平臺是百度,應用平臺選擇的是安卓,將在百度平臺申請到的API Key和Secret Key填入相應的位置,如圖5.10所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image064.gif
圖5.10推送平臺的綁定
同樣是在D3 Engine功能下,選擇項目列表,新建項目。在新建的項目?jì)?,構建自己需要的功能,其中左邊的框圖就是選擇的數據、觸發(fā)動(dòng)作等,右邊是建立的編輯區域。如圖5.11所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image066.gif
圖5.11 編輯推送功能
首先將設備數據拖到編輯區域,編輯其觸發(fā)方式為設備上報狀態(tài),如圖5.12所示。然后選擇邏輯規則的編寫(xiě),比較參數1就是想報警的數據,比較參數2就是設定的閾值,比較符號則是這兩個(gè)參數之間的關(guān)系,如圖5.13所示。最后編輯郵件的推送,填寫(xiě)好郵件的標題、內容以及推送的郵箱即可,如圖5.14所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image068.gif
圖5.12 設備數據的編輯
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image070.gif
圖5.13 邏輯規則的編輯
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image072.gif
圖5.14郵件推送功能的編輯
6 系統調試6.1 主從機藍牙的配置與通信
對于藍牙來(lái)說(shuō),其設置是通過(guò)AT指令來(lái)配置藍牙的名稱(chēng)、波特率、綁定地址等。因此要先了解藍牙常用的AT指令,如表6.1所示。
表6.1藍牙常用AT指令
在正式配置藍牙的主從機之前,我們要先做好準備,將藍牙與USB轉TTL連接,將藍牙的使能端置高電平,再給模塊上電,這樣藍牙就進(jìn)入了AT模式,波特率固定為38400,可以直接發(fā)送AT指令,不需要發(fā)送一次指令就將使能端置高一次。進(jìn)入AT指令模式后,先將兩個(gè)藍牙恢復到默認出廠(chǎng)設置,同時(shí)獲取他們的藍牙地址,即本機MAC地址。在發(fā)送每一條AT指令的時(shí)候,要記住在指令后加一個(gè)回車(chē),如果沒(méi)有回車(chē),AT指令就會(huì )發(fā)送失敗。當成功發(fā)送一條AT指令的時(shí)候,藍牙測試軟件就會(huì )回復OK,如果沒(méi)有回復OK,則表明該指令沒(méi)有成功發(fā)送。
設置主機時(shí),先將主機的名字設置為Y1(藍牙的名字可以隨便),再將它設置為主機模式,配置配對密碼7890(配對密碼可以隨便),綁定藍牙從機的地址,設置其波特率為9600,將藍牙的連接模式改為0,即指定藍牙地址連接模式。最終結果如圖6.1所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image074.gif
圖6.1 主機設置配置
設置從機,先將從機的名字設置為Y1,再將它設置為從機模式,配置配對密碼7890,綁定藍牙主機的地址,設置其波特率為9600,將藍牙的連接模式改為0,即指定藍牙地址連接模式。最終結果如圖6.2所示。在這里要注意的是,藍牙主機、從機的名字、配對密碼、波特率必須一致,否則就會(huì )設置不成功。如果不將藍牙的連接模式設定為指定,而是設置為其他模式,但是只有藍牙之間就不是一對一發(fā)送了,因此最好設置為指定模式。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image076.gif
圖6.2 從機設置配置
當藍牙成功配置之后,在工作之前,他們會(huì )自動(dòng)配對,觀(guān)察藍牙的指示燈從快閃變?yōu)槁W時(shí)就代表以及成功配對。當成功配對之后,從機從串口1發(fā)送數據,主機從串口1接收數據并打印出來(lái),利用串口調試助手查看從機發(fā)送的數據即可,如果打印的數據和發(fā)送的數據一致則證明藍牙的通信正常。在發(fā)送數據時(shí),盡量不使用漢字,防止亂碼現象發(fā)生。
6.2 云端數據的接收與發(fā)送
如何確定服務(wù)器與下位機成功連接上?將給4G模塊供電,不要與主控系統的5V電壓相連接,而是單獨給4G模塊供電,因為主控系統的5V無(wú)法驅動(dòng)4G模塊運行。將4G模塊與串口3連接,TXD連接串口3的RXD,RXD連接串口3的TXD。同時(shí)不要忘記將鋰電池的地、4G模塊的地與單片機的地連接起來(lái),否則4G模塊無(wú)法正常工作。當4G模塊成功工作時(shí),其電源指示燈亮起,連接云端指示燈閃爍。與此同時(shí),可以通過(guò)云端查看4G模塊是否成功連接上云端,如果在機智云的設備日志中,可以發(fā)現設備的IMEI號、設備ID以及是否在線(xiàn)的狀態(tài),如圖6.3所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image078.gif
圖6.3 連接云端界面
當主控系統與服務(wù)器連接成功之后,對于上傳的數據是否成功,就可以通過(guò)服務(wù)器的設備日志來(lái)觀(guān)察。服務(wù)器會(huì )主動(dòng)記錄通過(guò)下位機上傳的數據,在上傳數據的同時(shí)將這些數據通過(guò)串口1打印出來(lái),將云端接收到的數據與串口1打印出來(lái)的數據進(jìn)行對比,如果數據正常就表明通訊成功。
當數據成功上傳到云端時(shí),如何表明云端數據的成功發(fā)送。利用機智云的DEMO軟件與自己創(chuàng )建的手機APP同時(shí)打開(kāi),也同時(shí)打開(kāi)串口調試助手查看串口1的數據,將這三者一起對比,如果說(shuō)數據一致則表明云端數據的發(fā)送正常,沒(méi)有丟包現象發(fā)生。當上傳數據時(shí),一定要記住定時(shí)發(fā)送,這個(gè)時(shí)間不可以太快,快了后面的數據會(huì )把前面的數據覆蓋住,太慢導致數據的更新不正常,容易空包。因此最好定時(shí)6秒,每6秒給云端發(fā)送一次數據,云端接收的數據如圖6.4所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image080.gif
圖6.4 云端接收的數據
7 參數測量7.1 氣體濃度測量
如圖7.1所示,該電路為氣敏傳感器的基本電路,該電路只需要施加VH和VC。由該電路可知
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image082.gif (7-1)
其中RL取4.7K歐姆,VC為回路電壓,VRL為AO口輸出電壓,RS為傳感器在氣體中的電阻值。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image084.gif
圖7.1 基本電路
如圖7.2所示,該特性曲線(xiàn)的橫坐標為氣體濃度,單位為ppm,即1立方厘米/1立方米,縱坐標為RS/R0。由該曲線(xiàn)可知這兩者之間的關(guān)系,列出表7.1,并畫(huà)出散點(diǎn)圖,模擬散點(diǎn)圖之間點(diǎn)與點(diǎn)之間的關(guān)系,得到公式y=33607x^(-2.998),其中y為ppm,x為RS/R0。利用該公式計算出ppm,理論ppm與計算ppm之間的誤差就可以計算。如表7.1和圖7.3所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image086.jpg
圖7.2 MQ2靈敏度特性曲線(xiàn)
表7.1 RS/R0與煙霧濃度的關(guān)系
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image088.gif
圖7.3 煙霧濃度散點(diǎn)圖與計算公式
丙烷濃度的計算同理可得,如圖7.4、表7.2和圖7.5所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image090.jpg
圖7.4 MQ6靈敏度特性曲線(xiàn)
表7.2 RS/R0與丙烷濃度的關(guān)系
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image092.gif
圖7.5 丙烷濃度散點(diǎn)圖與計算公式