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