博客專欄

EEPW首頁 > 博客 > 【IoT畢設(shè)】STM32+機智云AIoT+實驗室安全監(jiān)控系統(tǒng)

【IoT畢設(shè)】STM32+機智云AIoT+實驗室安全監(jiān)控系統(tǒng)

發(fā)布人:Gizwits 時間:2022-06-29 來源:工程師 發(fā)布文章

1  系統(tǒng)內(nèi)容要求

(1)測量實驗室內(nèi)的溫濕度、煙霧濃度、丙烷濃度;
(2)檢測地面漏水情況,若漏水則開啟水泵排水;
(3)檢測門窗入侵情況;
(4)具有多種報警方式;
(5)手機APP遠程操控。

2  元器件選擇  3 系統(tǒng)硬件設(shè)計
3.1 硬件部分組成框圖
3.1.1主控硬件部分組成

主控電路如圖3.1所示,由以下幾部分組成:以STM32作為處理中心,煙霧傳感器測量煙霧濃度,丙烷傳感器測量丙烷濃度,溫濕度傳感器測量空氣中的溫度、濕度,藍牙主機接收副控發(fā)送的數(shù)據(jù),風扇1電路、風扇2電路、聲光報警電路在滿足條件下觸發(fā),4G模塊則將測量到的數(shù)據(jù)傳輸至云服務器,同時接收手機APP的下行指令。


3.1 主控硬件組成

3.1.2副控硬件部分組成

副控電路如圖3.2所示,由以下幾部分組成:以STM32作為處理中心,水浸傳感器檢測地面是否存在漏水情況,人體感應傳感器感應是否有人經(jīng)過,藍牙從機將副控收集到的信息發(fā)送給主控,聲光報警電路、水泵電路在滿足條件下觸發(fā)。

3.2 副控硬件組成




3.2 人體感應傳感器

選用人體感應傳感器HCSR505來感應是否有人經(jīng)過,從而判斷門窗入侵情況[2]。該傳感器基于紅外線,當有人在感應角度內(nèi)移動,就會輸出高電平,延時時間為8秒,否則為低電平。如表3.1可以對于人體感應傳感器的一些參數(shù)有所了解,其工作狀態(tài)也可以選擇,適用于不同的場合。



如表3.2所示,可以知道應該給VCC5V電壓供電,然后GND接地共地,OUT引腳接到單片機引腳上,接線電路如圖3.3所示。當有人在感應范圍內(nèi)移動,就會改變紅外光譜的檢測距離,信號引腳就輸出高電平,反之低電平。通過讀取所連接的單片機引腳狀態(tài),就可以了解有沒有人經(jīng)過,從而得知實驗室的門窗入侵情況。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
3.3 HCSR505接線圖

3.3 電極式水浸探頭

選取水浸探頭來探測重點地面是否漏水,使用的是電極式水浸探頭,該探頭是接觸式的,意味著它要與水接觸才可以感應到。如表3.3所示,對于電極式水浸探頭的工作狀態(tài)以及材質(zhì)可以有所了解。

3.3 水浸傳感器產(chǎn)品參數(shù)
  
名稱
  
參數(shù)
工作溫度
-20℃~60℃
工作濕度
0%RH~100%RH
材質(zhì)
ABS
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif

圖3.4 水浸傳感器接線圖


由圖3.4可以看出,水浸傳感器的工作原理,當水浸傳感器的探頭探測到水時,信號經(jīng)過轉(zhuǎn)換電路,三極管的集電極的電壓為低電平,如果沒有水則輸出高電平。將該輸出端連接到單片機的引腳上,通過讀取該引腳的狀態(tài),則可以知道地面有沒有漏水,如果漏水了就開啟水泵,沒有則不開啟。

3.4 藍牙無線模塊

選取藍牙模塊HC05來給主控和副控通信,通過藍牙的連接,可以彼此互發(fā)數(shù)據(jù),進行數(shù)據(jù)的傳輸[12]。通過參數(shù)的設(shè)置可以發(fā)現(xiàn)藍牙模塊的工作狀態(tài)以及工作原理,其基本參數(shù)如表3.4所示。

3.4 藍牙模塊HC05的參數(shù)說明

  
參數(shù)名稱
  
描述
工作頻段
2.4G
空中速率
2Mbps
工作電壓
3.0~3.6V
通信電流
40mA
通信電平
3.3V
****功率
4dBm(最大)
參考距離
10m
接受靈敏度
-85dBm@2Mbps
工作溫度
-25℃~75℃
工作濕度
10%~90%
存儲溫度
-40℃~+85℃
天線接口
內(nèi)置PCB天線
3.5 HC05引腳說明
  
引腳
  
說明
STATE
藍牙狀態(tài)引出腳
RXD
串口輸入腳
TXD
串口輸出腳
GND
接地
VCC
電源(3.3V~5.0V)
EN
復位
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif

3.5 HC05接線圖

由表3.5可以知道藍牙模塊HC05的接線方法。從目前來說,藍牙與單片機的連接只需要連接4線,VCC連接5V,GND接地,藍牙的接收端連接單片機的串口1的發(fā)送端,發(fā)送端連接單片機的串口1的接收端,如圖3.5所示。

3.5 聲光報警電路

利用NPN型晶體三極管S9012作為控制核心,當單片機給予指令為低電平0V時,三極管的****極E5V,基極B0V,而三極管導通的條件則是基極B和****極E之間的電壓差超過0.7V即可,因此給予0V低電平滿足了該條件,三極管導通,發(fā)光二極管滿足導通條件亮起。三極管導通之后,蜂鳴器正負極的電壓差約足夠,滿足運行所需要的電壓差3V,發(fā)出報警聲。如果單片機給的是高電平,就不滿足三極管導通的條件,發(fā)光二極管不亮,蜂鳴正負極之間因為沒有電壓差而啞巴。其聲光報警電路如圖3.6所示。


file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif

3.6 聲光報警電路

3.6 繼電器電路

繼電器使用的型號是SRD-05V-DC-SL-C,它有5個引腳:輸入引腳1、輸入引腳2、公共端3、常開端4、常閉端5。12引腳連接控制電壓5V,當單片機給高電平3.3V的時候,三極管基極B和****極E之間滿足導通電壓0.7V,發(fā)光二極管滿足導通條件發(fā)光。常開端4和公共端3導通,而風扇的正極連接繼電器的常開端4,負極接地,在常開端4和公共端3導通之后,有足夠的電壓驅(qū)動風扇工作,否則常閉端5和公共端3導通,風扇沒有足夠的電壓驅(qū)動。二極管IN4148的作用就是在單片機給高電平指令的那一瞬間,避免因電壓突然變高而燒壞三極管。其繼電器電路如圖3.7所示。


file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image010.gif
3.7 繼電器電路

3.7 指示燈電路

對于實驗室安全監(jiān)控系統(tǒng)來說,指示燈電路是不可缺少的,如圖3.8所示。當單片機給高電平的時候,發(fā)光二極管導通亮起;給低電平的時候,發(fā)光二極管不導通[5]。單片機給定的高低電平由測量到的數(shù)據(jù)決定。而發(fā)光二極管沒有辦法直接承受3.3V的電壓,所以需要電阻進行分壓。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif
3.8 指示燈電路

3.8 氣敏傳感器

很多人都知道大部分金屬都有導電率,而氣敏傳感器就是利用該原理對氣體濃度進行測量的,不同的傳感器對不同的氣體產(chǎn)生變化的電導率不同[7]。比如MQ2煙霧傳感器對空氣中的煙霧濃度就比較敏感,因此適合用來測量煙霧濃度。首先要認識氣敏傳感器的引腳以及產(chǎn)品參數(shù),如表3.6和表3.7所示。
3.6 MQ2/MQ6的產(chǎn)品參9數(shù)

  
產(chǎn)品參數(shù)
  
描述
檢測濃度
300~10000ppm(可燃氣體)

  
標準電路條件
回路電壓
VC
≤24V DC
加熱電壓
VH
5.0V±0.1V AC or DC
負載電阻
RL
可調(diào)

  
標準測試條件下氣敏元件特性
加熱電阻
RH
29Ω±3Ω(室溫)
加熱功耗
PH
≤950mW
靈敏度
S
Rs (in air)/Rs (2000ppm C3H8)
輸出電壓
VS
2.5V~4.0V(in  2000ppmC3H8)
濃度斜率
α
≤0.6(R3000ppm/R1000ppm C3H8)

  
標準測試條件
溫度、濕度
20℃±2℃;55%±5%RH
標準測試電路
Dc:5.0V±0.1V;
  
VH:5.0V±0.1V
預熱時間
不少于48 小時
3.7 MQ2/MQ6引腳說明
  
引腳
  
說明
AO
模擬信號輸出
DO
開關(guān)信號輸出
GND
接地
VCC
電源
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif

圖3.9 MQ2接線圖

由表3.7可知,需要讀取實驗室的氣體濃度,所以需要連接的是模擬信號輸出引腳AO,再通過單片機內(nèi)部的AD轉(zhuǎn)換成數(shù)字顯示出來[9]GND接地,VCC連接5V給它供電[1],如圖3.9所示,使它工作。而另一個氣敏傳感器MQ6的工作原理、接線圖也是如此。

3.9 溫濕度傳感器

其引腳說明如表3.8所示,因此只需要連接好正負極,然后連接好模擬量輸出的引腳即可。接線電路如圖3.10所示。

3.8 DHT11引腳說明
  
引腳
  
說明
VCC
電源(3.3V~5.5V)
DATA
串行數(shù)據(jù),雙向口
GND
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif

3.10 DHT11電路圖


3.10 電源接入電路

對于所有產(chǎn)品來說,供電是必不可少的。因此我們需要接入穩(wěn)定電壓的電源,如圖3.11所示,可以看見接入的電源底座是P2,可以通過USB電源轉(zhuǎn)DC直流數(shù)據(jù)線直接連接到平時所用的家庭電源,給系統(tǒng)供到5V電。當6腳自鎖開關(guān)SW1按下時,引腳2、3導通,接入的電源就可以驅(qū)動實驗室安全監(jiān)控系統(tǒng)工作。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif
圖3.11 電源接入電路

3.11 4G模塊接入電路

對于4G模塊來說,它以Cat模組ML302為核心,支持的頻段有LTE-TDDB34/B38/BB39/B40/B41LTE-FDD B1/B3/B5/B8,其平均功耗為1W。它定期向監(jiān)控平臺發(fā)送數(shù)據(jù),實時監(jiān)視[11]。引腳說明如表3.9所示。

3.9 4G模塊引腳說明

  
引腳
  
說明
備注
VCC
電源接入
5~24V
GND
地線

RXD
模組的接收引腳
3.3V
TXD
模組的發(fā)送引腳
3.3V
RST
重啟引腳
本引腳拉低1秒后重啟模組,正常運行時拉高

因此,將4G模塊連接到STM32最小系統(tǒng)板時,將TXD、RXD連接到串口3的接收、發(fā)送引腳,GND連接的單片機的GND。同時要將鋰電池的正極接入4G模塊的VCC,給其供電,負極接入單片機的GND,其接線如圖3.12所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image020.gif


3.12 4G模塊接入電路

4 系統(tǒng)軟件設(shè)計
4.1 單片機程序設(shè)計
4.1.1單片機程序開發(fā)環(huán)境

單片機的主要開發(fā)環(huán)境是Keil5,KeilC51是51系列兼容單片機C語言軟件開發(fā)系統(tǒng)。實驗室安全監(jiān)控系統(tǒng)使用的芯片是STM32,使用的語言是C語言,因此Keil5剛剛好可以使用。同時它還有很多優(yōu)點,比如有著很強大的系統(tǒng),可讀性比較強,調(diào)試時很方便……

Keil5是一個很好的開發(fā)平臺,它可以通過C語言、匯編語言等編寫程序,還可以通過設(shè)置斷點等對程序進行調(diào)試,在編譯時可以提醒編寫錯誤、編寫不規(guī)范等行為,而且對于不同的語言來說,它是兼容的,很多人可以通過Keil5這個平臺使用不同的語言開發(fā)軟件。

4.1.2單片機程序總體流程圖

單片機的數(shù)據(jù)上行流程圖如圖4.1所示。先將需要用到的函數(shù)初始化,再將需要的引腳初始化。通過調(diào)用各種函數(shù)測量溫濕度、煙霧濃度、丙烷濃度,再判斷測量到的數(shù)據(jù)是否超過閾值,如果超過了蜂鳴器就報警。再將藍牙主機接收到的數(shù)據(jù)和測量到的數(shù)據(jù)發(fā)送至服務器上。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif
4.1 數(shù)據(jù)上行流程圖

當手機APP有執(zhí)行的指令時,比如打開風扇指令,該指令被發(fā)送給服務器,服務器將該指令發(fā)送給下位機。當下位機接收到指令時,就將相應引腳置高或置低,其流程圖如圖4.2所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image024.gif
4.2 指令下行流程圖

4.1.3溫濕度采集程序設(shè)計

當需要采集溫濕度的時候,就調(diào)用該程序。如果說單片機檢測到DHT11的存在,就返回0給予單片機判斷的條件,否則不進行下一步,當檢測到DHT11的存在后,就開始讀取DHT11上傳的溫濕度,通過校驗、解碼,最終獲得正確的溫濕度。一次數(shù)據(jù)的讀取為5字節(jié),前2字節(jié)為濕度的整數(shù)和、小數(shù)和,再2字節(jié)是溫度的整數(shù)和、小數(shù)和,最后的1字節(jié)是校驗和。其流程圖如圖4.3所示。


file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image026.gif
圖4.3 溫濕度采集程序流程圖

4.1.4氣體濃度采集程序

首先要先對煙霧傳感器的電壓值即煙霧傳感器的模擬輸出引腳進行測量,并且為了減小誤差,采取多次測量取平均值的方法獲取煙霧傳感器的電壓。再將該電壓轉(zhuǎn)換成3.3V下的4096份,即12位精度的ADC,最后通過公式計算煙霧傳感器的體電阻Rs、電阻R0。最后對系統(tǒng)執(zhí)行的時間進行校準,利用公式計算出實驗室內(nèi)的煙霧濃度。而丙烷氣體濃度也是同樣的原理進行采集的。其流程圖如圖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人體感應模塊采集程序

當人體感應模塊在感應范圍內(nèi)感應到人的活動跡象,就會輸出高電平。因此需要讀取與單片機相連接的人體感應模塊的輸入引腳的電平,若該引腳為高電平,則證明有人存在,若是低電平,則證明無人存在。其流程圖如圖4.6所示。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image032.gif
4.6 人體感應傳感器采集程序流程圖

4.1.6水浸傳感器采集程序

當水浸傳感器的探頭檢測到水的存在,即存在漏水情況,經(jīng)過轉(zhuǎn)換電路,讀取電壓。因此只需要讀取與單片機相連接的水浸傳感器轉(zhuǎn)換電路的輸出引腳即可。其流程圖如圖4.7所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image034.gif
圖4.7 水浸傳感器采集程序流程圖

4.1.7藍牙從機發(fā)送程序

藍牙從機需要將副控系統(tǒng)采集到的門窗入侵、地面漏水情況報告給主控系統(tǒng)。利用不同的數(shù)據(jù)代表不同的情況發(fā)送給主控系統(tǒng),當有人的時候,就發(fā)送數(shù)字1;當沒人的時候,就發(fā)生數(shù)字2;當?shù)孛鏇]漏水的時候,就發(fā)送字母C;當?shù)孛媛┧臅r候,就發(fā)送字母D。其流程圖如圖4.8所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image036.gif
4.8 藍牙從機發(fā)送程序流程圖


4.1.8藍牙主機接收程序

當藍牙主機和從機順利配對后,從機將采集到的數(shù)據(jù)發(fā)送給主機進行處理。單片機將接收到的數(shù)據(jù)存儲起來,然后再一一讀取,利用不同的數(shù)字和字母,判斷門窗入侵、地面漏水情況。其流程圖如圖4.9所示。

4.9 藍牙主機接收程序流程圖file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image038.gif


4.2 手機APP程序設(shè)計
4.2.1定時器定時程序

發(fā)送至服務器的數(shù)據(jù)要定時發(fā)送,否則會因為數(shù)據(jù)發(fā)送太快服務器沒辦法正常接收,新的數(shù)據(jù)太快會覆蓋了舊數(shù)據(jù)。如果數(shù)據(jù)發(fā)送得太慢則不利于手機APP對數(shù)據(jù)的讀取。因此選擇定時時間為6秒,每6秒上傳一次數(shù)據(jù)至服務器。其流程圖如圖4.10所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image040.gif


4.10 定時器定時程序流程圖

4.2.2數(shù)據(jù)上傳程序

發(fā)送至服務器的數(shù)據(jù)不單單是主控系統(tǒng)采集到的信息,還有副控系統(tǒng)采集到的信息。當串口1接收到副控系統(tǒng)發(fā)送過來的信息,就對此進行判斷并發(fā)送給服務器,不同的數(shù)字、字母代表不同的含義,比如藍牙從機發(fā)送了數(shù)字1,就表明門窗存在入侵情況。然后調(diào)用各種函數(shù),讀取溫濕度、煙霧濃度、丙烷濃度,將這些信息發(fā)送至服務器。其流程圖如圖4.11所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image042.gif
4.11 數(shù)據(jù)上傳程序流程圖

4.2.3數(shù)據(jù)下行程序

當手機APP接收到指令時,該指令被發(fā)送至服務器,服務器再將該指令發(fā)送給主控系統(tǒng),主控系統(tǒng)則做出判斷,是否操作該指令。例如想遠程打開排煙風扇,只需要在手機APP上點擊開啟風扇,該指令就會被發(fā)送到服務器,服務器就把這個信息發(fā)送給單片機,單片機就執(zhí)行該指令,開啟風扇。其流程圖如圖4.12所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image044.gif
4.12 數(shù)據(jù)下行程序流程圖


5 手機APP的設(shè)計
5.1 機智云AIoT的接入流程

對于機智云來說,下位機接入機智云需要開發(fā)者進行一些功能的開發(fā)。首先是在開發(fā)者中心注冊,選擇成為個人開發(fā)者或者企業(yè)開發(fā)者,然后根據(jù)需求比如接入機智云的方式等創(chuàng)建產(chǎn)品、開發(fā)設(shè)備、開發(fā)應用,最終進入產(chǎn)品調(diào)試。一個流程之后,APP就可以調(diào)試使用了。


file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image046.gif
5.1 機智云接入流程


5.2 產(chǎn)品的創(chuàng)建

對于手機APP的設(shè)計來說,首先要設(shè)置的是顯示在APP上的界面,即上傳到服務器的數(shù)據(jù)。據(jù)實驗室安全監(jiān)控系統(tǒng)來說,需要設(shè)置多個數(shù)據(jù)點。

先要在機智云的開發(fā)者中心創(chuàng)建新產(chǎn)品。先將“產(chǎn)品分類”選擇為其他中的自定義,填好產(chǎn)品的名稱,“技術(shù)方案”選擇的是Wi-Fi/移動網(wǎng)絡方案,選擇“通訊方式”為移動網(wǎng)絡,“數(shù)據(jù)傳輸方式”為變長,“功耗類型”為正常,最后保存即可。這樣,一個新的產(chǎn)品就創(chuàng)建好了。當新建好產(chǎn)品之后,機智云會分配兩個密鑰,這兩個密鑰一個連接下位機的4G模塊,一個連接手機APP。它們是獨一無二的,在連接時,機智云會自動分辨、連接。如圖5.2所示。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image048.gif
 5.2 產(chǎn)品的基本信息


創(chuàng)建好產(chǎn)品后,需要對產(chǎn)品中的數(shù)據(jù)進行設(shè)置。在創(chuàng)建好的產(chǎn)品中,選擇新建數(shù)據(jù)點,如圖5.3所示。什么是數(shù)據(jù)點?數(shù)據(jù)點就是產(chǎn)品中的數(shù)據(jù),想上傳至服務器的數(shù)據(jù),這些數(shù)據(jù)在服務器與在代碼中是一一對應的,因此避免出現(xiàn)數(shù)據(jù)錯誤的現(xiàn)象。這些數(shù)據(jù)的定義包括了標識名,就是在產(chǎn)品中要顯示的名字,包括了讀寫類型、數(shù)據(jù)類型,包括了備注。這些數(shù)據(jù)可以更改,在更改之后,也需要更改代碼中的內(nèi)容,否則數(shù)據(jù)格式會不正確,云平臺與下位機之間的通訊就會出現(xiàn)問題。具體描述如表5.1所示。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image050.gif
圖5.3 新建數(shù)據(jù)點界面


表5.1 數(shù)據(jù)點基本內(nèi)容
  
內(nèi)容
  
分類
說明
顯示名稱

自定義功能點名稱
標識名

用于應用層傳輸,客戶端或業(yè)務云開發(fā)時需要使用

  
  
讀寫類型
只讀
數(shù)據(jù)只支持從設(shè)備上報
可寫
設(shè)備端可上報該數(shù)據(jù)點數(shù)據(jù);云端/客戶端可對該數(shù)據(jù)點數(shù)據(jù)做出下發(fā)控制
報警
數(shù)據(jù)只支持從設(shè)備上報,數(shù)據(jù)類型需為布爾值
故障
數(shù)據(jù)只支持從設(shè)備上報,數(shù)據(jù)類型需為布爾值

  
數(shù)據(jù)類型
布爾值
表示兩個狀態(tài):0,或1
枚舉
可定義一個有限的取值集合
數(shù)值
填寫數(shù)值范圍,數(shù)值可為負數(shù)/小數(shù)
擴展
填寫數(shù)據(jù)長度,數(shù)據(jù)內(nèi)容由用戶自定義
備注

用一段文本描述當前數(shù)據(jù)點的功能及定義方法
分辨率

用戶輸入的分辨率一值,確定了每個取值的步進

因此,根據(jù)實驗室安全監(jiān)控系統(tǒng)的需求,分析硬件開發(fā)的需求,將數(shù)據(jù)點設(shè)置好,數(shù)據(jù)點的配置是APP設(shè)計的重中之重,如表5.2所示。
5.2 實驗室安全監(jiān)控系統(tǒng)數(shù)據(jù)點

  
顯示名稱
  
標識名
  
備注
  
讀寫類型
數(shù)據(jù)類型
數(shù)值
  





分辨率
增量
數(shù)據(jù)范圍最小值
數(shù)據(jù)范圍最大值
溫度
temp

只讀
數(shù)值
1
0
0
60
濕度
hum

只讀
數(shù)值
1
0
0
100
煙霧濃度
smoke

只讀
數(shù)值
1
0
0
10000
有害氣體濃度
hazardous

只讀
數(shù)值
1
0
0
10000
入侵情況
invasion_situation

只讀
數(shù)值
1
0
0

地面漏水情況
ground_leakge

只讀
數(shù)值
1
0
0

煙霧風扇
sm_fan
煙霧濃度風扇
可寫
布爾值




有毒風扇
ha_fan
有毒氣體濃度風扇
可寫
布爾值




test
test

可寫
布爾值





5.3 MCU開發(fā)

對于機智云來說,它的優(yōu)勢就是不需要開發(fā)者之間寫APP的代碼,就不會存在很多錯誤問題的發(fā)生,可以使用他的自動生成代碼服務,方便快捷。這些生成的代碼通常包括了通訊協(xié)議、通訊數(shù)據(jù)的轉(zhuǎn)換邏輯等。在代碼中添加相應的開發(fā)措施,在手機APP發(fā)送指令之后,指令就會變成事件發(fā)送到服務器中,服務器發(fā)生給下位機,驅(qū)動下位機實現(xiàn)相應的功能。這里選擇“硬件方案”的是獨立MUC方案,“硬件平臺”選擇的是其他平臺,然后將產(chǎn)品的Product Secret參數(shù)填入相應位置,然后生成代碼包,如圖5.4所示。最后將生成的代碼包移植接入下位機的代碼中。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image052.gif
5.4 MCU SDK開發(fā)

5.4 移動應用的設(shè)置

首先要在機智云的開發(fā)者中心創(chuàng)建一個新的移動應用,填入應用名稱,即APP的名字,“應用包名”要選擇一個唯一的名字,不該和其他產(chǎn)品的名字一樣?!邦愋汀边x擇智能家居即可,“平臺”就選擇iosandroid,如圖5.5所示。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image054.gif
5.5 新建移動應用界面

新建好移動應用之后,點擊進入該移動應用。在其個性化選項中,選擇關(guān)聯(lián)產(chǎn)品,點擊“+”號,把先前創(chuàng)建的產(chǎn)品與現(xiàn)在創(chuàng)建的移動應用關(guān)聯(lián)起來,也可以選擇自己喜歡的主題,更改圖標等。

關(guān)聯(lián)號產(chǎn)品之后,要對產(chǎn)品的應用證書進行配置。在構(gòu)建應用的選項下,選擇應用證書,然后就可以配置證書了。這里只配置了Android證書,如圖5.6所示。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image056.gif
5.6 Android證書的配置

在同樣的選項下,選擇應用構(gòu)建,點擊構(gòu)建測試版,等待APP的構(gòu)建即可。當APP構(gòu)建好之后,會生成一個二維碼,利用手機自帶的游覽器掃描,就可以下載構(gòu)建好的APP,正常安裝即可。

5.5 上下位機的連接

當下載好APP后,我們需要將APP與下位機聯(lián)系起來。使用軟件GAgent_Debugger配置手機APP與下位機的聯(lián)系。在該設(shè)備中,選擇“新增”,我們選擇“服務器平臺”為國內(nèi)服務器,將產(chǎn)品的Product KeyProduct Secret參數(shù)填入,選擇“設(shè)備類型”為單品,選擇“通信方式”為移動網(wǎng)絡。成功配置好服務器之后,就如圖5.7所示。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image058.gif
5.7 配置成功界面

在工具選項中,選擇設(shè)備二維碼,將Product Key參數(shù)填入,以及4G模塊的IMEI號也填入,選擇“服務器域名”為國內(nèi)服務器,然后點擊“二維碼生成”,就會生成一個二維碼,如圖5.8所示。將手機APP打開,點擊掃描設(shè)備二維碼,掃描設(shè)備二維碼,即可將手機APP與下位機綁定。在這里要注意的是,APP在綁定時下位機必須連接到機智云。在下位機正常工作時,APP則可以查看各種信息。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image060.gif
5.8生成設(shè)備二維碼

5.6 手機APP的推送

首先使用的推送功能基于機智云平臺,因此先向機智云申請開通。首先申請的是規(guī)則引擎這個功能。當提交申請之后,等待機智云平臺開通,之后就可以使用其功能。


成功開通規(guī)則引擎之后,在創(chuàng)建好的產(chǎn)品內(nèi),服務選項下,多了D3 Engine選擇。
點擊D3 Engine,進入配置界面,點擊編輯推送的平臺,如圖5.9所示。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image062.gif
5.9 編輯推送平臺

在這里選擇的推送平臺是百度,應用平臺選擇的是安卓,將在百度平臺申請到的API KeySecret Key填入相應的位置,如圖5.10所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image064.gif
5.10推送平臺的綁定

同樣是在D3 Engine功能下,選擇項目列表,新建項目。在新建的項目內(nèi),構(gòu)建自己需要的功能,其中左邊的框圖就是選擇的數(shù)據(jù)、觸發(fā)動作等,右邊是建立的編輯區(qū)域。如圖5.11所示。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image066.gif
5.11 編輯推送功能

首先將設(shè)備數(shù)據(jù)拖到編輯區(qū)域,編輯其觸發(fā)方式為設(shè)備上報狀態(tài),如圖5.12所示。然后選擇邏輯規(guī)則的編寫,比較參數(shù)1就是想報警的數(shù)據(jù),比較參數(shù)2就是設(shè)定的閾值,比較符號則是這兩個參數(shù)之間的關(guān)系,如圖5.13所示。最后編輯郵件的推送,填寫好郵件的標題、內(nèi)容以及推送的郵箱即可,如圖5.14所示。  
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image068.gif
5.12 設(shè)備數(shù)據(jù)的編輯

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image070.gif
5.13 邏輯規(guī)則的編輯


file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image072.gif
5.14郵件推送功能的編輯


6 系統(tǒng)調(diào)試
6.1 主從機藍牙的配置與通信

對于藍牙來說,其設(shè)置是通過AT指令來配置藍牙的名稱、波特率、綁定地址等。因此要先了解藍牙常用的AT指令,如表6.1所示。
6.1藍牙常用AT指令
  
AT指令
  
說明

  
AT+ROLE
=1,主機角色
=0,從機角色
=2,回環(huán)角色
AT+RESET
復位
AT+ORGL
恢復出廠默認設(shè)置
AT+ADDR?
獲取HC-05的藍牙地址碼
AT+NAME
修改模塊的名字
AT+PSWD
配置配對密碼,密碼必須是4位數(shù)字
AT+UART
設(shè)置藍牙波特率

  
AT+CMODE
  
=0,指定藍牙地址連接模式(默認)
=1,任意藍牙地址連接模式
=2,回環(huán)角色
AT+LINK=NAP, UAP, LAP
與遠程設(shè)備建立連接

在正式配置藍牙的主從機之前,我們要先做好準備,將藍牙與USB轉(zhuǎn)TTL連接,將藍牙的使能端置高電平,再給模塊上電,這樣藍牙就進入了AT模式,波特率固定為38400,可以直接發(fā)送AT指令,不需要發(fā)送一次指令就將使能端置高一次。進入AT指令模式后,先將兩個藍牙恢復到默認出廠設(shè)置,同時獲取他們的藍牙地址,即本機MAC地址。在發(fā)送每一條AT指令的時候,要記住在指令后加一個回車,如果沒有回車,AT指令就會發(fā)送失敗。當成功發(fā)送一條AT指令的時候,藍牙測試軟件就會回復OK,如果沒有回復OK,則表明該指令沒有成功發(fā)送。

設(shè)置主機時,先將主機的名字設(shè)置為Y1(藍牙的名字可以隨便),再將它設(shè)置為主機模式,配置配對密碼7890(配對密碼可以隨便),綁定藍牙從機的地址,設(shè)置其波特率為9600,將藍牙的連接模式改為0,即指定藍牙地址連接模式。最終結(jié)果如圖6.1所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image074.gif
6.1 主機設(shè)置配置

設(shè)置從機,先將從機的名字設(shè)置為Y1,再將它設(shè)置為從機模式,配置配對密碼7890,綁定藍牙主機的地址,設(shè)置其波特率為9600,將藍牙的連接模式改為0,即指定藍牙地址連接模式。最終結(jié)果如圖6.2所示。在這里要注意的是,藍牙主機、從機的名字、配對密碼、波特率必須一致,否則就會設(shè)置不成功。如果不將藍牙的連接模式設(shè)定為指定,而是設(shè)置為其他模式,但是只有藍牙之間就不是一對一發(fā)送了,因此最好設(shè)置為指定模式。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image076.gif
6.2 從機設(shè)置配置

當藍牙成功配置之后,在工作之前,他們會自動配對,觀察藍牙的指示燈從快閃變?yōu)槁W時就代表以及成功配對。當成功配對之后,從機從串口1發(fā)送數(shù)據(jù),主機從串口1接收數(shù)據(jù)并打印出來,利用串口調(diào)試助手查看從機發(fā)送的數(shù)據(jù)即可,如果打印的數(shù)據(jù)和發(fā)送的數(shù)據(jù)一致則證明藍牙的通信正常。在發(fā)送數(shù)據(jù)時,盡量不使用漢字,防止亂碼現(xiàn)象發(fā)生。

6.2 云端數(shù)據(jù)的接收與發(fā)送

如何確定服務器與下位機成功連接上?將給4G模塊供電,不要與主控系統(tǒng)的5V電壓相連接,而是單獨給4G模塊供電,因為主控系統(tǒng)的5V無法驅(qū)動4G模塊運行。將4G模塊與串口3連接,TXD連接串口3RXDRXD連接串口3TXD。同時不要忘記將鋰電池的地、4G模塊的地與單片機的地連接起來,否則4G模塊無法正常工作。當4G模塊成功工作時,其電源指示燈亮起,連接云端指示燈閃爍。與此同時,可以通過云端查看4G模塊是否成功連接上云端,如果在機智云的設(shè)備日志中,可以發(fā)現(xiàn)設(shè)備的IMEI號、設(shè)備ID以及是否在線的狀態(tài),如圖6.3所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image078.gif
6.3 連接云端界面

當主控系統(tǒng)與服務器連接成功之后,對于上傳的數(shù)據(jù)是否成功,就可以通過服務器的設(shè)備日志來觀察。服務器會主動記錄通過下位機上傳的數(shù)據(jù),在上傳數(shù)據(jù)的同時將這些數(shù)據(jù)通過串口1打印出來,將云端接收到的數(shù)據(jù)與串口1打印出來的數(shù)據(jù)進行對比,如果數(shù)據(jù)正常就表明通訊成功。

當數(shù)據(jù)成功上傳到云端時,如何表明云端數(shù)據(jù)的成功發(fā)送。利用機智云的DEMO軟件與自己創(chuàng)建的手機APP同時打開,也同時打開串口調(diào)試助手查看串口1的數(shù)據(jù),將這三者一起對比,如果說數(shù)據(jù)一致則表明云端數(shù)據(jù)的發(fā)送正常,沒有丟包現(xiàn)象發(fā)生。當上傳數(shù)據(jù)時,一定要記住定時發(fā)送,這個時間不可以太快,快了后面的數(shù)據(jù)會把前面的數(shù)據(jù)覆蓋住,太慢導致數(shù)據(jù)的更新不正常,容易空包。因此最好定時6秒,每6秒給云端發(fā)送一次數(shù)據(jù),云端接收的數(shù)據(jù)如圖6.4所示。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image080.gif
6.4 云端接收的數(shù)據(jù)


7 參數(shù)測量
7.1 氣體濃度測量

如圖7.1所示,該電路為氣敏傳感器的基本電路,該電路只需要施加VH和VC。由該電路可知
                         file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image082.gif                      (7-1)
其中RL4.7K歐姆,VC為回路電壓,VRLAO口輸出電壓,RS為傳感器在氣體中的電阻值。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image084.gif
7.1 基本電路

如圖7.2所示,該特性曲線的橫坐標為氣體濃度,單位為ppm,即1立方厘米/1立方米,縱坐標為RS/R0。由該曲線可知這兩者之間的關(guān)系,列出表7.1,并畫出散點圖,模擬散點圖之間點與點之間的關(guān)系,得到公式y=33607x^(-2.998),其中yppm,xRS/R0。利用該公式計算出ppm,理論ppm與計算ppm之間的誤差就可以計算。如表7.1和圖7.3所示。

file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image086.jpg
7.2 MQ2靈敏度特性曲線

7.1 RS/R0與煙霧濃度的關(guān)系
  
RS/R0
  
煙霧濃度/ppm
計算煙霧濃度/ppm
差/ppm
4.75
300
314.6
-14.6
4.31
400
420.98
-20.98
4.02
500
518.75
-18.75
3.85
600
590.5
9.5
3.75
700
638.98
61.02
3.53
800
765.95
34.05
3.25
900
981.3
-81.3
3.21
1000
1018.42
-18.42
2.67
2000
1769.09
230.91
2.31
3000
2731
269
2.05
4000
3906.53
93.47
1.83
5000
5490.37
-490.37
1.75
6000
6277.72
-277.72
1.68
7000
7095
-95
1.64
8000
7626.54
373.46
1.52
9000
9577.73
-577.73
1.51
10000
9769.15
230.85
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image088.gif
7.3 煙霧濃度散點圖與計算公式

丙烷濃度的計算同理可得,如圖7.4、表7.2和圖7.5所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image090.jpg
7.4 MQ6靈敏度特性曲線

7.2 RS/R0與丙烷濃度的關(guān)系
  
RS/R0
  
丙烷濃度/ppm
計算丙烷濃度/ppm
差/ppm
1.75
300
337.46
-37.46
1.62
400
400.94
-0.94
1.52
500
462.24
37.76
1.48
600
490.6
109.4
1.27
700
690.45
9.55
1.19
800
798.41
1.59
1.12
900
914.16
-14.16
1.03
1000
1102.2
-102.2
0.75
2000
2238.27
-238.27
0.645
3000
3134.56
-134.56
0.58
4000
3973.65
26.35
0.51
5000
5295.66
-295.66
0.475
6000
6206.79
-206.79
0.46
7000
6667.85
332.15
0.425
8000
7956.67
43.33
0.41
9000
8621.4
378.6
0.398
10000
9212.66
787.34
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image092.gif


7.5 丙烷濃度散點圖與計算公式


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: 實驗室 STM32 app開發(fā)

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉