摘要:基于esp8266與機(jī)智云Aiot開發(fā)平臺(tái)的家庭監(jiān)測(cè)和控制系統(tǒng)是基于大數(shù)據(jù)和物聯(lián)網(wǎng)技術(shù)的家庭設(shè)備控制系統(tǒng)。利用機(jī)智云物聯(lián)網(wǎng)平臺(tái)和ESP8266WiFi模塊、STM32核心板、電機(jī)驅(qū)動(dòng)、繼電器、溫濕度傳感器模塊等,實(shí)現(xiàn)與手機(jī)終端的數(shù)據(jù)交互和數(shù)據(jù)監(jiān)測(cè)。
通過移動(dòng)手機(jī)終端APP的開關(guān)按鍵,可以控制系統(tǒng)電機(jī)的正轉(zhuǎn)與反轉(zhuǎn);通過APP的開關(guān)按鍵,模擬窗戶的開合,并控制舵機(jī)的正轉(zhuǎn)和反轉(zhuǎn),模擬門的開關(guān);通過APP的開關(guān)按鍵控制系統(tǒng)LED的亮滅,模擬家中對(duì)燈的控制;
通過APP的開關(guān)控制按鍵模擬家庭風(fēng)扇的控制。系統(tǒng)采集MQ135煙霧傳感器的數(shù)值,經(jīng)單片機(jī)進(jìn)行ADC轉(zhuǎn)換后,通過OLED顯示ADC采集轉(zhuǎn)換后的數(shù)值。單片機(jī)將通過DHT11采集的數(shù)值顯示在OLED上,還可通過APP和OLED顯示模塊查看單片機(jī)系統(tǒng)外設(shè)的運(yùn)行狀態(tài)。
引言
火災(zāi),是人類重大的災(zāi)難之一。每一次的火情都牽動(dòng)無數(shù)人的心,而火情最容易帶來人員的傷亡和財(cái)產(chǎn)的損失。據(jù)統(tǒng)計(jì),全世界每天發(fā)生大大小小的火災(zāi)約一萬起,而我國(guó)在消防體系十分健全的情況下,每年火災(zāi)發(fā)生的數(shù)量達(dá)到十五萬起,家庭起火導(dǎo)致的火災(zāi)約五萬起,占三分之一。每年因火災(zāi)而失去生命的人約800人,每年因火災(zāi)造成的經(jīng)濟(jì)損失超10億元。家庭防火刻不容緩,特別是因缺乏安全意識(shí)玩火、家庭線路老化、天然氣泄漏等需要引起注意。如今,很多重要的公共場(chǎng)合已在關(guān)鍵地方安裝了煙霧報(bào)警器,能在第一時(shí)間發(fā)現(xiàn)可能存在的火情威脅。但家庭是我們極度容易忽視的地方[1]。
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,智能家居作為物聯(lián)網(wǎng)最典型的應(yīng)用之一,越來越多的設(shè)備接入物聯(lián)網(wǎng)中,給人們的生活帶來了很多便利[2]。本系統(tǒng)利用物聯(lián)網(wǎng)技術(shù)完成了簡(jiǎn)易的智能家庭監(jiān)測(cè)和控制系統(tǒng)。利用開源的機(jī)智云物聯(lián)網(wǎng)平臺(tái)實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)交互,通過智能云平臺(tái)對(duì)家庭傳感器實(shí)現(xiàn)遠(yuǎn)程控制,對(duì)家庭中潛在的火源威脅進(jìn)行監(jiān)控。采用煙霧傳感器、溫濕度傳感器、人體光學(xué)傳感器等,對(duì)嵌入式系統(tǒng)在中間層進(jìn)行深度開發(fā),實(shí)現(xiàn)基本的功能原理,完成原理圖、PCB的設(shè)計(jì),以及嵌入式系統(tǒng)軟件實(shí)現(xiàn)課題的目標(biāo)功能[3-7]。
1總體設(shè)計(jì)方案
本系統(tǒng)基于ARMM3系列控制器,考慮外設(shè)中需要較大的驅(qū)動(dòng)能力和較大的內(nèi)存存儲(chǔ)空間才能實(shí)現(xiàn)系統(tǒng)運(yùn)算,故結(jié)合本設(shè)計(jì)的需求,使用WiFi模塊作為單片機(jī)與上位機(jī)系統(tǒng)間的通信模塊。單片機(jī)采集外部的溫濕度信息、空氣中煙霧的濃度信息等,通過WiFi模塊連接云平臺(tái),借助云平臺(tái)與手機(jī)終端APP將信息傳遞給用戶。用戶通過手機(jī)終端APP按鍵,向云平臺(tái)傳輸字符信號(hào),云平臺(tái)通過WiFi模塊向單片機(jī)系統(tǒng)傳遞控制指令,單片機(jī)接收到指令后,執(zhí)行相應(yīng)的操作。系統(tǒng)框架如圖1所示[2-4]。
圖1系統(tǒng)框架
2硬件設(shè)計(jì)
本系統(tǒng)的硬件模塊主要包括:嵌入式微控制器STM32F103C8模塊、GPS/北斗模塊、OV7670攝像頭模塊和GPRS模塊。其中,STM32F103C8為主控制器,負(fù)責(zé)信息的處理與控制;GPS/北斗模塊和OV7670攝像頭模塊負(fù)責(zé)采集環(huán)境圖片信息和當(dāng)前的位置信息;GPRS模塊負(fù)責(zé)嵌入組建網(wǎng)絡(luò)并與Internet服務(wù)器通信[3]。
2.1系統(tǒng)電源設(shè)計(jì)
本系統(tǒng)采用12V的DC作為供電電源,用線性穩(wěn)壓芯片和DC調(diào)壓芯片作為嵌入式系統(tǒng)為各外設(shè)供電。由于本系統(tǒng)中有較多的應(yīng)用外設(shè),因此需要多個(gè)穩(wěn)壓芯片穩(wěn)定系統(tǒng)的電壓,以確保外設(shè)和CPU不受電壓影響,正常工作。有些負(fù)載比較大的外設(shè),如電機(jī)和舵機(jī)等,在使用時(shí)需要較大電流,如果共用同一個(gè)電源系統(tǒng),在外設(shè)驅(qū)動(dòng)時(shí),電壓和電流波動(dòng)較大,會(huì)影響其他外設(shè)的正常使用,而嵌入式系統(tǒng)也可能會(huì)因?yàn)殡妷汉碗娏鞯牟环€(wěn)定造成復(fù)位現(xiàn)象,極大影響系統(tǒng)的穩(wěn)定運(yùn)行。因此在選擇系統(tǒng)電源時(shí),選擇多電源分開供電的方案,如圖2所示。
圖2系統(tǒng)電源分配方案
2.2嵌入式系統(tǒng)硬件
嵌入式開發(fā)系統(tǒng)采用STM32F103RCT6核心板模塊。模塊資源包括STM32RCT6集成的32位SOC、SWD程序調(diào)試接口、復(fù)位按鍵電路、通用I/O口、時(shí)鐘振蕩電路、FLASH存儲(chǔ)電路、OLED接口、按鍵電路以及LED電路。
2.3ESP8266硬件設(shè)計(jì)
ESP8266作為一款性能強(qiáng)大的無線射頻模塊,內(nèi)部定義了豐富的管腳。ESP8266通過串口與單片機(jī)相連,根據(jù)數(shù)據(jù)手冊(cè)可知,單片機(jī)的USART1在PA9和PA10引腳上,其中,ESP8266的RX與單片機(jī)的TX相連,ESP8266的TX與單片機(jī)的RX相連。ESP826作為本系統(tǒng)的主要通信載體,連接了MCU和云服務(wù)平臺(tái),通過串口1的串口協(xié)議與MCU實(shí)現(xiàn)數(shù)據(jù)交互,通過與局域網(wǎng)的連接,把串口協(xié)議傳輸?shù)男畔⑸蟼鞯皆品?wù)平臺(tái)。同樣,用戶操作上位機(jī)平臺(tái),經(jīng)云平臺(tái)和ESP8266將控制信號(hào)通過串口協(xié)議傳輸給MCU,MCU在接收到串口數(shù)據(jù)后,執(zhí)行相應(yīng)的指令。
2.4L298N電機(jī)驅(qū)動(dòng)電路
L298N模塊是一款集成的驅(qū)動(dòng)電路,其具有驅(qū)動(dòng)能力強(qiáng)、發(fā)熱量低、抗干擾能力強(qiáng)等特性。L298N可輸出電流為2A,最大可輸出4A電流,最高可驅(qū)動(dòng)50V工作電壓,可用于中小型直流電機(jī)的控制。L298N使用單片機(jī)的TTL邏輯電平控制電機(jī)的正反轉(zhuǎn),軟件上只需改變輸入端邏輯電平的脈沖寬度即可控制電機(jī)的轉(zhuǎn)速。通過控制輸入端邏輯電平的輸入端正轉(zhuǎn)或反轉(zhuǎn),就能相應(yīng)控制電機(jī)的正反轉(zhuǎn)。L298N的正常工作電壓為5V。L298N內(nèi)部集成了L298N驅(qū)動(dòng)和8個(gè)續(xù)流二極管,構(gòu)成H橋驅(qū)動(dòng)電路。
2.5SG90舵機(jī)模塊
SG90使用5V直流電壓,控制信號(hào)接單片機(jī)的PA11。PA11為定時(shí)器的通道4,通過PWM信號(hào)控制舵機(jī)的正反轉(zhuǎn),通過PWM輸出的脈沖寬度來控制舵機(jī)的轉(zhuǎn)速和角度。
2.6MQ135煙霧傳感器
MQ135煙霧傳感器為5V供電,通過PA1的ADC引腳采集MQ135信號(hào)。MQ135煙霧傳感器可以輸出數(shù)字信號(hào)和模擬信號(hào),本系統(tǒng)采集模擬信號(hào)。
2.7OLED顯示電路
本系統(tǒng)使用OLED顯示電路顯示本系統(tǒng)的外設(shè)狀態(tài),如煙霧傳感器ADC采集的值,溫濕度的值,以及電機(jī)、舵機(jī)、LED、風(fēng)扇的狀態(tài)。OLED顯示電路采用3.3V電壓供電,使用I2C協(xié)議通信。
3系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)的軟件設(shè)計(jì)模塊主要包含ESP8266固件燒錄、云平臺(tái)接入、云平臺(tái)創(chuàng)建節(jié)點(diǎn)、STM32固件開發(fā)四部分。借助ESP8266與SOC的云平臺(tái)開發(fā)需要完成以下4步:
(1)ESP8266模塊燒錄GAgent開發(fā)固件;
(2)機(jī)智云開發(fā)中心創(chuàng)建產(chǎn)品以及定義數(shù)據(jù)點(diǎn);
(3)下載機(jī)智云開發(fā)平臺(tái)生成的通信協(xié)議并對(duì)協(xié)議進(jìn)行移植;
(4)使用機(jī)智云APP對(duì)設(shè)備進(jìn)行遠(yuǎn)程測(cè)試。
初始化各模塊的函數(shù)后,在軟件的主函數(shù)中寫入系統(tǒng)的總體服務(wù)函數(shù),系統(tǒng)在OLED顯示屏上顯示溫濕度、煙霧、門、窗以及人體紅外等傳感器狀態(tài)。當(dāng)按鍵按下時(shí),OLED顯示為安防狀態(tài),然后系統(tǒng)掃描MQ135煙霧傳感器及溫濕度傳感器,當(dāng)傳感器的數(shù)值大于閾值時(shí),系統(tǒng)報(bào)警。當(dāng)上位機(jī)執(zhí)行控制指令時(shí),觸發(fā)串口中斷,接收來自上位機(jī)的字符指令,把相應(yīng)的標(biāo)志置位后,執(zhí)行控制指令??刂浦髁鞒倘鐖D3所示。
3.1STM32固件開發(fā)編程
本系統(tǒng)基于STM32固件庫(kù)開發(fā),在軟件開發(fā)之前,需要對(duì)硬件系統(tǒng)的固件庫(kù)進(jìn)行初始化(GPIO初始化、串口初始化、I2C協(xié)議初始化、定時(shí)器初始化[5-6]),方便以后使用。
3.2WiFi傳輸函數(shù)
ESP8266模塊作為本系統(tǒng)的傳輸媒介,使用串口通信,初始化串口代碼后,需要撰寫WiFi模塊的接收代碼和發(fā)送代碼。上位機(jī)APP按鈕按下后,通過WiFi模塊給單片機(jī)傳輸一個(gè)字符指令,單片機(jī)程序中設(shè)定接收相應(yīng)的字符后,將系統(tǒng)中標(biāo)志位的布爾值賦值,系統(tǒng)在運(yùn)行中不斷掃描標(biāo)志位布爾值的狀態(tài),執(zhí)行相應(yīng)的指令。
3.3OLED顯示函數(shù)
初始化完成后,通過OLED顯示函數(shù)向OLED顯示屏不斷傳送信息,通過sprintf()函數(shù)把字符和模塊采集的數(shù)據(jù)格式化并送入oled_buffer字符數(shù)組,通過判斷狀態(tài)標(biāo)志位的布爾值,不斷更新字符數(shù)組內(nèi)存放的值,然后通過OLED_ShowStr()函數(shù)向OLED傳送信息。OLED_ShowStr()包含4個(gè)入口參數(shù),分別為OLED的x坐標(biāo),y坐標(biāo),字符串和字符大小。
圖3控制主流程
3.4PWM輸出函數(shù)
本系統(tǒng)中的門和窗使用舵機(jī)和電機(jī)控制,舵機(jī)和電機(jī)均依靠單片機(jī)的脈沖寬度調(diào)制來控制轉(zhuǎn)速和轉(zhuǎn)動(dòng)角度,電機(jī)和舵機(jī)分別使用系統(tǒng)的定時(shí)器3和定時(shí)器1。以電機(jī)控制為例,初始化結(jié)束后,系統(tǒng)WINDOW_TIM3_PWM_INIT(799,0)定時(shí)器設(shè)定一個(gè)時(shí)鐘周期為800ms,在上位機(jī)執(zhí)行開窗或者關(guān)窗指令時(shí),設(shè)定25%的脈沖寬度,延時(shí)1s后停止。電機(jī)的控制引腳分別懸掛在定時(shí)器3的通道3和通道4上,通過控制不同通道上的脈沖寬度可以控制電機(jī)的正轉(zhuǎn)和反轉(zhuǎn),以實(shí)現(xiàn)開窗和關(guān)窗的目的。
3.5ESP8266固件燒錄
ESP8266接入機(jī)智云平臺(tái)需要將機(jī)智云開發(fā)的固件燒錄至WiFi模塊的SOC中,在機(jī)智云官網(wǎng)上有已經(jīng)集成的固件包,以及燒錄的SDK軟件。固件燒錄時(shí),需要將ESP8266的串口和USB-TTL的串口下載工具對(duì)應(yīng)連接,在下載固件時(shí),需注意把ESP8266的GPIO0連接到地線上,使模塊進(jìn)入寫入模式。燒錄完成后將GPIO0連接到VCC中,設(shè)置為工作模式[8]。
3.6接入機(jī)智云平臺(tái)
本系統(tǒng)需要使用云服務(wù)平臺(tái)對(duì)系統(tǒng)進(jìn)行實(shí)時(shí)監(jiān)控,如果自主搭建云服務(wù)器的難度和成本太大,可以考慮接入機(jī)智云AIoT開發(fā)平臺(tái)。接入機(jī)智云流程如圖4所示。
圖4接入機(jī)智云流程
注冊(cè)開發(fā)者賬號(hào)后,用戶賬號(hào)可以通過用戶的相關(guān)產(chǎn)品相互關(guān)聯(lián)。創(chuàng)建產(chǎn)品,根據(jù)用戶產(chǎn)品的類型創(chuàng)建對(duì)應(yīng)的產(chǎn)品分類以及產(chǎn)品名稱。機(jī)智云平臺(tái)每個(gè)賬號(hào)可以接入10個(gè)開發(fā)產(chǎn)品。創(chuàng)建產(chǎn)品之后,在產(chǎn)品中創(chuàng)建數(shù)據(jù)點(diǎn)。數(shù)據(jù)點(diǎn)即為系統(tǒng)的功能及參數(shù)。在云平臺(tái)創(chuàng)建數(shù)據(jù)節(jié)點(diǎn),本系統(tǒng)中,移動(dòng)終端和SOC模塊以控制和顯示為主,數(shù)據(jù)類型分為可寫和只讀兩種??蓪戭愋停河脩艨刂萍彝サ脑O(shè)備數(shù)據(jù)類型,如,LED、門、窗、空調(diào)等;只讀類型:溫濕度模塊、煙霧傳感器、人體紅外傳感器通過SOC上傳的數(shù)據(jù)。創(chuàng)建節(jié)點(diǎn)后生成可移植的平臺(tái),將其移植到SOC后,設(shè)備能與云端實(shí)時(shí)通信,進(jìn)行數(shù)據(jù)交互[9]。
4實(shí)驗(yàn)驗(yàn)證
搭建系統(tǒng)后,對(duì)系統(tǒng)的穩(wěn)定性進(jìn)行測(cè)試,對(duì)系統(tǒng)的功能進(jìn)行必要性測(cè)試。系統(tǒng)上電自動(dòng)復(fù)位時(shí),各模塊正常運(yùn)行,LED、電機(jī)、舵機(jī)、風(fēng)扇均處于停止?fàn)顟B(tài),OLED顯示屏循環(huán)顯示模塊狀態(tài),紅外檢測(cè)狀態(tài)為無人狀態(tài),溫濕度檢測(cè)正常顯示,煙霧傳感器數(shù)據(jù)正常顯示。
5結(jié)語(yǔ)
本設(shè)計(jì)以STM32F103RCT6為核心,通過串口協(xié)議與本系統(tǒng)的主要通信模塊ESP8266相連,單片機(jī)可通過串口協(xié)議完成對(duì)模塊數(shù)據(jù)和ESP8266的WiFi模塊通信,ESP8266在燒錄機(jī)智云提供的固件后可連接到局域網(wǎng),與機(jī)智云云平臺(tái)的服務(wù)進(jìn)行實(shí)時(shí)數(shù)據(jù)交互[10]。
云平臺(tái)可以在線調(diào)試系統(tǒng)的外設(shè)虛擬狀態(tài),在云平臺(tái)的在線虛擬設(shè)備狀態(tài)下,系統(tǒng)外設(shè)控制狀態(tài)為布爾值,可以通過布爾值控制設(shè)備的狀態(tài)標(biāo)志位。系統(tǒng)在服務(wù)器的虛擬狀態(tài)位如圖5所示。
系統(tǒng)通過ESP8266與云平臺(tái)上傳系統(tǒng)狀態(tài)標(biāo)志以及溫濕度和煙霧傳感器采集的數(shù)據(jù)。系統(tǒng)向上位機(jī)上傳數(shù)據(jù)示意圖如圖6所示。
圖5云平臺(tái)控制界面
圖6系統(tǒng)向上位機(jī)上傳數(shù)據(jù)
當(dāng)溫濕度和煙霧的值大于STM32F103RCT6單片機(jī)設(shè)定的閾值時(shí),單片機(jī)發(fā)出警報(bào),并通過串口將預(yù)警信號(hào)發(fā)送給上位機(jī)APP。人體光學(xué)傳感器HCSR-501采集人員闖入信息。可以在外出時(shí)通過按鍵將單片機(jī)設(shè)定為安防模式,單片機(jī)通過不斷掃描人體光學(xué)傳感器HCSR-501的電平判斷是否有人闖入。
-
STM32單片機(jī)
+關(guān)注
關(guān)注
58文章
548瀏覽量
58395 -
機(jī)智云
+關(guān)注
關(guān)注
2文章
556瀏覽量
26301 -
AIoT
+關(guān)注
關(guān)注
8文章
1337瀏覽量
30322
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論