摘要:基于esp8266與機智云Aiot開發(fā)平臺的家庭監(jiān)測和控制系統(tǒng)是基于大數(shù)據(jù)和物聯(lián)網(wǎng)技術(shù)的家庭設(shè)備控制系統(tǒng)。利用機智云物聯(lián)網(wǎng)平臺和ESP8266WiFi模塊、STM32核心板、電機驅(qū)動、繼電器、溫濕度傳感器模塊等,實現(xiàn)與手機終端的數(shù)據(jù)交互和數(shù)據(jù)監(jiān)測。
通過移動手機終端APP的開關(guān)按鍵,可以控制系統(tǒng)電機的正轉(zhuǎn)與反轉(zhuǎn);通過APP的開關(guān)按鍵,模擬窗戶的開合,并控制舵機的正轉(zhuǎn)和反轉(zhuǎn),模擬門的開關(guān);通過APP的開關(guān)按鍵控制系統(tǒng)LED的亮滅,模擬家中對燈的控制;
通過APP的開關(guān)控制按鍵模擬家庭風(fēng)扇的控制。系統(tǒng)采集MQ135煙霧傳感器的數(shù)值,經(jīng)單片機進(jìn)行ADC轉(zhuǎn)換后,通過OLED顯示ADC采集轉(zhuǎn)換后的數(shù)值。單片機將通過DHT11采集的數(shù)值顯示在OLED上,還可通過APP和OLED顯示模塊查看單片機系統(tǒng)外設(shè)的運行狀態(tài)。
引言
火災(zāi),是人類重大的災(zāi)難之一。每一次的火情都牽動無數(shù)人的心,而火情最容易帶來人員的傷亡和財產(chǎn)的損失。據(jù)統(tǒng)計,全世界每天發(fā)生大大小小的火災(zāi)約一萬起,而我國在消防體系十分健全的情況下,每年火災(zāi)發(fā)生的數(shù)量達(dá)到十五萬起,家庭起火導(dǎo)致的火災(zāi)約五萬起,占三分之一。每年因火災(zāi)而失去生命的人約800人,每年因火災(zāi)造成的經(jīng)濟損失超10億元。家庭防火刻不容緩,特別是因缺乏安全意識玩火、家庭線路老化、天然氣泄漏等需要引起注意。如今,很多重要的公共場合已在關(guān)鍵地方安裝了煙霧報警器,能在第一時間發(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)測和控制系統(tǒng)。利用開源的機智云物聯(lián)網(wǎng)平臺實現(xiàn)遠(yuǎn)程數(shù)據(jù)交互,通過智能云平臺對家庭傳感器實現(xiàn)遠(yuǎn)程控制,對家庭中潛在的火源威脅進(jìn)行監(jiān)控。采用煙霧傳感器、溫濕度傳感器、人體光學(xué)傳感器等,對嵌入式系統(tǒng)在中間層進(jìn)行深度開發(fā),實現(xiàn)基本的功能原理,完成原理圖、PCB的設(shè)計,以及嵌入式系統(tǒng)軟件實現(xiàn)課題的目標(biāo)功能[3-7]。
1總體設(shè)計方案
本系統(tǒng)基于ARMM3系列控制器,考慮外設(shè)中需要較大的驅(qū)動能力和較大的內(nèi)存存儲空間才能實現(xiàn)系統(tǒng)運算,故結(jié)合本設(shè)計的需求,使用WiFi模塊作為單片機與上位機系統(tǒng)間的通信模塊。單片機采集外部的溫濕度信息、空氣中煙霧的濃度信息等,通過WiFi模塊連接云平臺,借助云平臺與手機終端APP將信息傳遞給用戶。用戶通過手機終端APP按鍵,向云平臺傳輸字符信號,云平臺通過WiFi模塊向單片機系統(tǒng)傳遞控制指令,單片機接收到指令后,執(zhí)行相應(yīng)的操作。系統(tǒng)框架如圖1所示[2-4]。

圖1系統(tǒng)框架
2硬件設(shè)計
本系統(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è)計
本系統(tǒng)采用12V的DC作為供電電源,用線性穩(wěn)壓芯片和DC調(diào)壓芯片作為嵌入式系統(tǒng)為各外設(shè)供電。由于本系統(tǒng)中有較多的應(yīng)用外設(shè),因此需要多個穩(wěn)壓芯片穩(wěn)定系統(tǒng)的電壓,以確保外設(shè)和CPU不受電壓影響,正常工作。有些負(fù)載比較大的外設(shè),如電機和舵機等,在使用時需要較大電流,如果共用同一個電源系統(tǒng),在外設(shè)驅(qū)動時,電壓和電流波動較大,會影響其他外設(shè)的正常使用,而嵌入式系統(tǒng)也可能會因為電壓和電流的不穩(wěn)定造成復(fù)位現(xiàn)象,極大影響系統(tǒng)的穩(wěn)定運行。因此在選擇系統(tǒng)電源時,選擇多電源分開供電的方案,如圖2所示。

圖2系統(tǒng)電源分配方案
2.2嵌入式系統(tǒng)硬件
嵌入式開發(fā)系統(tǒng)采用STM32F103RCT6核心板模塊。模塊資源包括STM32RCT6集成的32位SOC、SWD程序調(diào)試接口、復(fù)位按鍵電路、通用I/O口、時鐘振蕩電路、FLASH存儲電路、OLED接口、按鍵電路以及LED電路。
2.3ESP8266硬件設(shè)計
ESP8266作為一款性能強大的無線射頻模塊,內(nèi)部定義了豐富的管腳。ESP8266通過串口與單片機相連,根據(jù)數(shù)據(jù)手冊可知,單片機的USART1在PA9和PA10引腳上,其中,ESP8266的RX與單片機的TX相連,ESP8266的TX與單片機的RX相連。ESP826作為本系統(tǒng)的主要通信載體,連接了MCU和云服務(wù)平臺,通過串口1的串口協(xié)議與MCU實現(xiàn)數(shù)據(jù)交互,通過與局域網(wǎng)的連接,把串口協(xié)議傳輸?shù)男畔⑸蟼鞯皆品?wù)平臺。同樣,用戶操作上位機平臺,經(jīng)云平臺和ESP8266將控制信號通過串口協(xié)議傳輸給MCU,MCU在接收到串口數(shù)據(jù)后,執(zhí)行相應(yīng)的指令。
2.4L298N電機驅(qū)動電路
L298N模塊是一款集成的驅(qū)動電路,其具有驅(qū)動能力強、發(fā)熱量低、抗干擾能力強等特性。L298N可輸出電流為2A,最大可輸出4A電流,最高可驅(qū)動50V工作電壓,可用于中小型直流電機的控制。L298N使用單片機的TTL邏輯電平控制電機的正反轉(zhuǎn),軟件上只需改變輸入端邏輯電平的脈沖寬度即可控制電機的轉(zhuǎn)速。通過控制輸入端邏輯電平的輸入端正轉(zhuǎn)或反轉(zhuǎn),就能相應(yīng)控制電機的正反轉(zhuǎn)。L298N的正常工作電壓為5V。L298N內(nèi)部集成了L298N驅(qū)動和8個續(xù)流二極管,構(gòu)成H橋驅(qū)動電路。
2.5SG90舵機模塊
SG90使用5V直流電壓,控制信號接單片機的PA11。PA11為定時器的通道4,通過PWM信號控制舵機的正反轉(zhuǎn),通過PWM輸出的脈沖寬度來控制舵機的轉(zhuǎn)速和角度。
2.6MQ135煙霧傳感器
MQ135煙霧傳感器為5V供電,通過PA1的ADC引腳采集MQ135信號。MQ135煙霧傳感器可以輸出數(shù)字信號和模擬信號,本系統(tǒng)采集模擬信號。
2.7OLED顯示電路
本系統(tǒng)使用OLED顯示電路顯示本系統(tǒng)的外設(shè)狀態(tài),如煙霧傳感器ADC采集的值,溫濕度的值,以及電機、舵機、LED、風(fēng)扇的狀態(tài)。OLED顯示電路采用3.3V電壓供電,使用I2C協(xié)議通信。
3系統(tǒng)軟件設(shè)計
本系統(tǒng)的軟件設(shè)計模塊主要包含ESP8266固件燒錄、云平臺接入、云平臺創(chuàng)建節(jié)點、STM32固件開發(fā)四部分。借助ESP8266與SOC的云平臺開發(fā)需要完成以下4步:
(1)ESP8266模塊燒錄GAgent開發(fā)固件;
(2)機智云開發(fā)中心創(chuàng)建產(chǎn)品以及定義數(shù)據(jù)點;
(3)下載機智云開發(fā)平臺生成的通信協(xié)議并對協(xié)議進(jìn)行移植;
(4)使用機智云APP對設(shè)備進(jìn)行遠(yuǎn)程測試。
初始化各模塊的函數(shù)后,在軟件的主函數(shù)中寫入系統(tǒng)的總體服務(wù)函數(shù),系統(tǒng)在OLED顯示屏上顯示溫濕度、煙霧、門、窗以及人體紅外等傳感器狀態(tài)。當(dāng)按鍵按下時,OLED顯示為安防狀態(tài),然后系統(tǒng)掃描MQ135煙霧傳感器及溫濕度傳感器,當(dāng)傳感器的數(shù)值大于閾值時,系統(tǒng)報警。當(dāng)上位機執(zhí)行控制指令時,觸發(fā)串口中斷,接收來自上位機的字符指令,把相應(yīng)的標(biāo)志置位后,執(zhí)行控制指令。控制主流程如圖3所示。
3.1STM32固件開發(fā)編程
本系統(tǒng)基于STM32固件庫開發(fā),在軟件開發(fā)之前,需要對硬件系統(tǒng)的固件庫進(jìn)行初始化(GPIO初始化、串口初始化、I2C協(xié)議初始化、定時器初始化[5-6]),方便以后使用。
3.2WiFi傳輸函數(shù)
ESP8266模塊作為本系統(tǒng)的傳輸媒介,使用串口通信,初始化串口代碼后,需要撰寫WiFi模塊的接收代碼和發(fā)送代碼。上位機APP按鈕按下后,通過WiFi模塊給單片機傳輸一個字符指令,單片機程序中設(shè)定接收相應(yīng)的字符后,將系統(tǒng)中標(biāo)志位的布爾值賦值,系統(tǒng)在運行中不斷掃描標(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個入口參數(shù),分別為OLED的x坐標(biāo),y坐標(biāo),字符串和字符大小。

圖3控制主流程
3.4PWM輸出函數(shù)
本系統(tǒng)中的門和窗使用舵機和電機控制,舵機和電機均依靠單片機的脈沖寬度調(diào)制來控制轉(zhuǎn)速和轉(zhuǎn)動角度,電機和舵機分別使用系統(tǒng)的定時器3和定時器1。以電機控制為例,初始化結(jié)束后,系統(tǒng)WINDOW_TIM3_PWM_INIT(799,0)定時器設(shè)定一個時鐘周期為800ms,在上位機執(zhí)行開窗或者關(guān)窗指令時,設(shè)定25%的脈沖寬度,延時1s后停止。電機的控制引腳分別懸掛在定時器3的通道3和通道4上,通過控制不同通道上的脈沖寬度可以控制電機的正轉(zhuǎn)和反轉(zhuǎn),以實現(xiàn)開窗和關(guān)窗的目的。
3.5ESP8266固件燒錄
ESP8266接入機智云平臺需要將機智云開發(fā)的固件燒錄至WiFi模塊的SOC中,在機智云官網(wǎng)上有已經(jīng)集成的固件包,以及燒錄的SDK軟件。固件燒錄時,需要將ESP8266的串口和USB-TTL的串口下載工具對應(yīng)連接,在下載固件時,需注意把ESP8266的GPIO0連接到地線上,使模塊進(jìn)入寫入模式。燒錄完成后將GPIO0連接到VCC中,設(shè)置為工作模式[8]。
3.6接入機智云平臺
本系統(tǒng)需要使用云服務(wù)平臺對系統(tǒng)進(jìn)行實時監(jiān)控,如果自主搭建云服務(wù)器的難度和成本太大,可以考慮接入機智云AIoT開發(fā)平臺。接入機智云流程如圖4所示。

圖4接入機智云流程
注冊開發(fā)者賬號后,用戶賬號可以通過用戶的相關(guān)產(chǎn)品相互關(guān)聯(lián)。創(chuàng)建產(chǎn)品,根據(jù)用戶產(chǎn)品的類型創(chuàng)建對應(yīng)的產(chǎn)品分類以及產(chǎn)品名稱。機智云平臺每個賬號可以接入10個開發(fā)產(chǎn)品。創(chuàng)建產(chǎn)品之后,在產(chǎn)品中創(chuàng)建數(shù)據(jù)點。數(shù)據(jù)點即為系統(tǒng)的功能及參數(shù)。在云平臺創(chuàng)建數(shù)據(jù)節(jié)點,本系統(tǒng)中,移動終端和SOC模塊以控制和顯示為主,數(shù)據(jù)類型分為可寫和只讀兩種。可寫類型:用戶控制家庭的設(shè)備數(shù)據(jù)類型,如,LED、門、窗、空調(diào)等;只讀類型:溫濕度模塊、煙霧傳感器、人體紅外傳感器通過SOC上傳的數(shù)據(jù)。創(chuàng)建節(jié)點后生成可移植的平臺,將其移植到SOC后,設(shè)備能與云端實時通信,進(jìn)行數(shù)據(jù)交互[9]。
4實驗驗證
搭建系統(tǒng)后,對系統(tǒng)的穩(wěn)定性進(jìn)行測試,對系統(tǒng)的功能進(jìn)行必要性測試。系統(tǒng)上電自動復(fù)位時,各模塊正常運行,LED、電機、舵機、風(fēng)扇均處于停止?fàn)顟B(tài),OLED顯示屏循環(huán)顯示模塊狀態(tài),紅外檢測狀態(tài)為無人狀態(tài),溫濕度檢測正常顯示,煙霧傳感器數(shù)據(jù)正常顯示。
5結(jié)語
本設(shè)計以STM32F103RCT6為核心,通過串口協(xié)議與本系統(tǒng)的主要通信模塊ESP8266相連,單片機可通過串口協(xié)議完成對模塊數(shù)據(jù)和ESP8266的WiFi模塊通信,ESP8266在燒錄機智云提供的固件后可連接到局域網(wǎng),與機智云云平臺的服務(wù)進(jìn)行實時數(shù)據(jù)交互[10]。
云平臺可以在線調(diào)試系統(tǒng)的外設(shè)虛擬狀態(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ǒng)狀態(tài)標(biāo)志以及溫濕度和煙霧傳感器采集的數(shù)據(jù)。系統(tǒng)向上位機上傳數(shù)據(jù)示意圖如圖6所示。

圖5云平臺控制界面

圖6系統(tǒng)向上位機上傳數(shù)據(jù)
當(dāng)溫濕度和煙霧的值大于STM32F103RCT6單片機設(shè)定的閾值時,單片機發(fā)出警報,并通過串口將預(yù)警信號發(fā)送給上位機APP。人體光學(xué)傳感器HCSR-501采集人員闖入信息。可以在外出時通過按鍵將單片機設(shè)定為安防模式,單片機通過不斷掃描人體光學(xué)傳感器HCSR-501的電平判斷是否有人闖入。
-
STM32單片機
+關(guān)注
關(guān)注
59文章
549瀏覽量
59432 -
機智云
+關(guān)注
關(guān)注
3文章
611瀏覽量
26750 -
AIoT
+關(guān)注
關(guān)注
8文章
1488瀏覽量
32114
發(fā)布評論請先 登錄
STM32與機智云連接實現(xiàn)步驟與技巧(下篇):機智云代碼移植與優(yōu)化

STM32與機智云連接實現(xiàn)步驟與技巧(上篇)

如何在米爾-STM32MP257開發(fā)板上實現(xiàn)環(huán)境監(jiān)測系統(tǒng)

機智云推出集成Deepseek和豆包大模型的AIoT開發(fā)平臺
機智云發(fā)布Gokit5 AI智能體開發(fā)板:工業(yè)級智能體流水線重構(gòu)AIoT開發(fā)范式

基于STM32與機智云的樓宇火災(zāi)監(jiān)測系統(tǒng)設(shè)計

正點原子的stm32開發(fā)板能用stlink嗎
STM32項目實戰(zhàn):基于STM32U5的智能燈光控制系統(tǒng)(LVGL),附項目教程/源碼

STM32項目實戰(zhàn):基于STM32F4的智能燈光控制系統(tǒng)(LVGL),附項目教程/源碼

基于機智云移植STM32L496G代碼移植

基于機智云的智能私家車庫控制系統(tǒng)設(shè)計與實現(xiàn)

機智云開源自動化控制篇-接近報警系統(tǒng)

機智云ESP8266開發(fā)板RGB彩燈控件

STM32F103 + ESP8266與機智云開發(fā)常見問題集錦:入門者必讀!

評論