項目說明
樓宇照明在日常生活舉足輕重,樓宇照明控制系統(tǒng)在一定程度上實現(xiàn)對能源的節(jié)約及便利管理者的使用和控制。本次設計以STM32F103C8T6為核心處理器,紅外線傳感器與光敏電阻傳感器模塊作為檢測裝置,用于檢測光照強度及人員經(jīng)過情況;繼電器作為控制裝置,通過繼電器狀態(tài)改變實現(xiàn)自動控制;ESP8266無線通信模塊作為通信裝置,實現(xiàn)遠程通信功能,將相關數(shù)據(jù)上傳至云平臺,并且接收云平臺下發(fā)控制命令。照明系統(tǒng)可通過傳感器檢測、單片機系統(tǒng)控制、終端控制三種方式進行,且終端可以對相關信息實現(xiàn)監(jiān)控功能。傳感器檢測方面,在光照強度較弱的情況下,若檢測到有人經(jīng)過,自動開啟燈光照明,并延時熄滅。
實物圖:
一、緒論
1.1 研究背景
當今社會飛速發(fā)展,投入生產(chǎn)生活的能源與日俱增,為實現(xiàn)可持續(xù)發(fā)展,我國倡導綠色發(fā)展理念。每個建筑物中都有大量的照明工具,樓宇照明作為日常生活中必不可少的一部分,為我們的生活提供許多便利,然而在提供便利的同時,其消耗的能源也是巨大的。傳統(tǒng)照明方式一般采取定時開關或人工手動開關燈光的方式,燈具徹夜保持工作狀態(tài)依然會消耗大量能源,并且減少燈具的使用壽命。在惡劣天氣下,若管理者疏忽,則業(yè)主照明需求無法及時滿足,在浪費能源的同時也為管理者工作和業(yè)主使用帶來不必要的麻煩。
1.2 研究意義
使用樓宇智能照明系統(tǒng)可以最大化實現(xiàn)燈光方面節(jié)能減排,利用最少的能源保證要求的照明水平。所以在控制時,只需要在每個照明回路的開關上安裝一個節(jié)點控制器就可以了。這樣既可以滿足建筑物中各種照明需求,又能節(jié)約能源。
智能照明控制系統(tǒng)依據(jù)當前環(huán)境光照強度進行判斷,在光照較弱的情況下,通過傳感器檢測人員經(jīng)過情況進行自動開關燈控制,實現(xiàn)“人來燈亮,人走燈滅”最大限度減少能源消耗。另外在主控制器設置控制按鈕,管理者可以通過按鈕控制燈光亮滅;與此同時,管理者也可以通過網(wǎng)頁實現(xiàn)對燈光照明情況的監(jiān)控,并可以實現(xiàn)對每層樓燈光的控制,對于管理方面更為快捷高效。
1.4 研究內(nèi)容
本次設計完成樓宇照明系統(tǒng)設計,能夠?qū)崿F(xiàn)燈光自動照明以及遠程控制,該系統(tǒng)以STM32F103C8T6單片機為核心處理器,在光照情況較弱時,利用傳感器檢測是否由人員經(jīng)過,從而實現(xiàn)對樓層照明燈光控制,以求實現(xiàn)照明系統(tǒng)的高效性及節(jié)省能源。無線通信模塊可以實現(xiàn)對照明系統(tǒng)工作情況的遠程檢測和控制,方便管理者工作。
具體工作如下:
(1)使用繼電器作為照明系統(tǒng)的控制開關,實現(xiàn)對照明系統(tǒng)的自動控制;
(2)當傳感器檢測到人員經(jīng)過時,照明系統(tǒng)自動開啟,并延時熄滅;
(3)利用光敏電阻判斷環(huán)境光照情況,確定自動照明控制系統(tǒng)是否開啟;
(4)管理者可在終端監(jiān)控不同樓層小燈的亮滅情況;
(5)管理者可以在終端控制不同樓層小燈分別亮滅。
二、系統(tǒng)方案設計
本課題基于STM32微處理器平臺,實現(xiàn)對樓宇照明系統(tǒng)進行不同樓層經(jīng)過人員檢測、自動控制以及遠程監(jiān)控與控制等功能。在系統(tǒng)設計中,實現(xiàn)微處理器系統(tǒng)電路、信息檢測電路、遠程通信電路、繼電器控制電路、按鍵控制電路以及電源電路等系統(tǒng)硬件設計,并對檢測人員、控制、監(jiān)控等功能進行代碼化編程,實現(xiàn)系統(tǒng)軟件設計。包括以下幾部分:
(1)微控制器:樓宇智能照明系統(tǒng)采用STM32F103C8T6作為控制核心;
(2)信息檢測模塊:使用光敏電阻傳感器模塊實現(xiàn)對光照強度閾值限制,并在低于閾值(即光照強度較弱)的情況下,使用紅外線傳感器作為對人員經(jīng)過檢測工具;
(3)自動控制模塊:利用繼電器作為自動控制開關,根據(jù)紅外線傳感器輸入信號進行判斷,控制繼電器的吸合實現(xiàn)對燈光的自動控制;
(4)按鍵電路:單片機模擬主控制臺,通過按鍵控制可以實現(xiàn)模擬主控制臺手動開關燈功能;
(5)無線通信模塊:使用esp8266作為無線通信模塊,連接至云平臺上傳數(shù)據(jù)、下發(fā)命令實現(xiàn)對燈光遠程控制以及監(jiān)控功能。
整體設計框圖如圖所示:
2.1 微控制器方案選擇
微控制器是該樓宇照明系統(tǒng)的控制核心,在設計中有兩種方案選擇,分別是STC89C52與STM32F103C8T6。
STC89C52單片機是一個低功耗芯片內(nèi)置8KB閃存,可以存儲程序代碼,具有32個IO管腳,支持串口、定時器、計數(shù)器、中斷等功能,具備2個16位定時器與6個中斷源、2級優(yōu)先級,具有雙工串行通信接口。
STM32F103C8T6芯片是意法半導體有限公司出品的一款基于ARM Cortex -M內(nèi)核的32位的微控制器,具有64kB的內(nèi)存容量,包括多個UART、SPI、I2C接口以及USB2.0全速設備接口,16位或32位定時器、看門狗定時器等。工作電壓為2.0~3.6V。本次設計中,對于中斷數(shù)量需求較大,與STC89C52芯片相比,STM32F103C8T6性能好,處理速度快,外圍功能豐富強大,對于系統(tǒng)需求更能滿足,因此綜上所述,選擇STM32F103C8T6作為主控芯片。
2.2 信息檢測模塊方案選擇
- 信息采集模塊主要實現(xiàn)在光照較弱環(huán)境下檢測人體并輸入信號,進而控制繼電器工作功能。
對于光照檢測模塊有兩種方案,分別是光敏電阻傳感器模塊與GY30光照強度傳感器模塊。光敏電阻傳感器模塊可以通過電位器調(diào)節(jié)檢測光線亮度閾值,GY30光照強度傳感器可以檢測相當精確的光照值。結(jié)合實際考慮以及用戶需求,光敏電阻傳感器模塊更為方便在實際使用中由用戶改變所需光照閾值,且此設計對光照精確度要求較小,光敏電阻傳感器足夠滿足設計需求。結(jié)合以上分析,選擇光敏電阻傳感器作為光照檢測模塊。 - 對于檢測是否有人通過有以下兩種方案可供選擇,分別是紅外線傳感器以及聲音傳感器。使用紅外線傳感器作為人體檢測信息采集,對環(huán)境光線的適應能力強,產(chǎn)品體積小、使用簡單、功耗小、響應快、精度高、性能穩(wěn)定、可以長期穩(wěn)定可靠工作,并且可以手動調(diào)節(jié)閾值,方便改變檢測需求。HCSR501為常見用于檢測人體的紅外線傳感器,且該傳感器模塊具備檢測到人員離開后,輸出電平延時改變功能,滿足“人來燈亮,人走延時熄滅”設計理念。但考慮其最小檢測范圍為3米,在調(diào)試與展示過程中難以展示效果,使用紅外避障傳感器模擬該傳感器完成設計。
- 聲音傳感器通過檢測周圍聲音強度,但傳統(tǒng)聲控燈若聲音強度設定值偏低,易造成一個樓層經(jīng)過人,所有樓層燈全部亮;
2.3 WiFi模塊選擇
- Wifi通信電路有以下兩種芯片進行選擇,ESP8266芯片和ESP32芯片。
ESP8266芯片是一款集成MCU芯片,將內(nèi)存、計數(shù)器、接口、驅(qū)動等整合在單一芯片上,單核處理,運行頻率為80MHZ。ESP32芯片為雙核處理,同時支持WiFi和藍牙通信。
本次設計主要考慮實現(xiàn)遠距離通信,并且相較于ESP32而言,ESP8266價格更便宜且上市時間長,在軟件方面會得到更多的支持,在使用上會更加方便兼容,因此選擇ESP8266芯片作為WiFi通信芯片使用。
2.4 終端顯示
使用WiFi進行無線通信,對應終端顯示選擇如下:
利用云平臺接收數(shù)據(jù),實現(xiàn)對不同樓層小燈亮滅情況的監(jiān)控,并通過云平臺發(fā)送數(shù)據(jù),實現(xiàn)控制燈的亮滅。云平臺可以實現(xiàn)實時控制監(jiān)測,考慮使用方便以及直觀性,選擇云平臺進行照明情況的顯示以及遠程控制。
對于顯示和控制頁面分為APP和網(wǎng)頁,APP需要下載軟件且考慮手機端與電腦端是否兼容,而網(wǎng)頁則可點擊網(wǎng)址即可打開并進行相關操作。考慮使用便利性,選擇網(wǎng)頁作為頁面。
2.5 WiFi無線通信實現(xiàn)方法
本次設計實現(xiàn)遠程通信,將WiFi模塊連接至路由器或熱點進行聯(lián)網(wǎng),使用OneNET云平臺建立產(chǎn)品,通過MQTT協(xié)議連接至云平臺。將ESP8266與STM32F103C8T6串口2(PA2與PA3)建立串口通信,通過AT指令與MQTT數(shù)據(jù)包上傳實現(xiàn)WiFi的無線通信。
相關連接建立需要云平臺產(chǎn)品設備ID、鑒權(quán)信息、產(chǎn)品ID等信息。同時本次設計需要可視化視圖用于顯示不同樓層燈光照明情況并且實現(xiàn)對不同樓層燈光照明的控制,設計可視化視圖包括按鈕、文本等區(qū)域,設定相關命令以及返回值,實現(xiàn)數(shù)據(jù)的上傳與下發(fā)。
三、系統(tǒng)硬件電路圖設計
3.1 整體電路圖設計
電路部分包括電源電路、預留電源與GND部分、穩(wěn)壓電路、上電指示燈、按鍵電路、串口調(diào)試電路、單片機最小系統(tǒng)、WiFi通信電路、繼電器控制電路、傳感器檢測電路、LED控制電路。
3.2 主控制器設計
STM32F103C8T6最小系統(tǒng)由晶振電路、電源電路、時鐘電路、啟動配置電路、復位電路以及調(diào)試電路組成。
STM32F103C8T6最小系統(tǒng)主頻72MHz,具有3.3V穩(wěn)壓芯片,最大可提供800mA電流,具備預留USB通訊功能、復位按鍵,具有BOOT選擇端口,電源指示燈與功能指示燈,預留串口接口及32768Hz晶振。
設計中試穿PA2、PA3串口2進行無線串口通信,PA9、PA10串口1用于程序下載以及調(diào)試。功能指示燈連接至PC13用于無線連接成功提醒,以及在調(diào)試過程中作為現(xiàn)象指示燈。
3.3 電源電路設計
本次設計使用器件工作電壓分別為5V以及3.3V,在電源電路選擇上使用5V外部電源供電,搭配穩(wěn)壓模塊AMS1117,使電壓降至3.3V供模塊使用。
3.4 紅外線傳感器電路設計
上文中已說明,由于HCSR501由于檢測范圍過大,無法進行演示,故使用紅外避障傳感器模擬該傳感器,兩者在檢測結(jié)果均通過高低電平輸出判斷,且工作電壓以及接口相同,在實際應用中可替換。
紅外避障傳感器作為人體檢測信息采集,有兩個紅外管,分別是發(fā)送管和接收管,特點是對環(huán)境光線的適應能力強,干擾較小,便于安裝等。紅外避障傳感器引腳上有VCC、GND、OUT三個引腳。其工作原理是紅外光線發(fā)射管發(fā)射紅外光線,紅外光線接收管接收紅外光線,當沒有接收到返回的紅外光線時,OUT引腳輸出高電平,當接收到返回的紅外光線時,OUT引腳輸出低電平。當傳感器模塊檢測到障礙物或者有物體靠近時,其模塊的指示燈會亮起,同時OUT引腳會變低電平。因模塊是非接觸式傳感器,所以具有響應快,精度高等特點。
基于連接的紅外傳感器檢測器,向主控制器發(fā)送關于設備工作狀態(tài)的信號,繼而使繼電器控制電路完成相應功能。
利用三個紅外線傳感器作為不同樓層人員經(jīng)過情況檢測,采集數(shù)據(jù)供系統(tǒng)判斷,進行開關燈狀態(tài)改變。
三個紅外線傳感器輸出端口分別與PB0、PB1、PB3連接,將檢測結(jié)果輸入至單片機內(nèi),用于后續(xù)繼電器閉合狀態(tài)判斷。
3.5 光敏電阻傳感器電路設計
光敏電阻傳感器指的是利用光敏元件將光信號轉(zhuǎn)換為電信號的傳感器,敏感波長在可見光波長附近,可以根據(jù)光線的明暗變化,輸出電信號,再將電信號放大處理。
當光照強度超過閾值時,傳感器輸出低電平,而當光照強度低于閾值時,輸出高電平。
本設計中,光敏電阻傳感器用作對當前環(huán)境光照情況的判斷,避免在樓宇當前光照條件滿足業(yè)主正常使用時開啟燈光,造成不必要的能源浪費。由于整個樓宇光照水平相近,在設計中僅使用一個光敏電阻傳感器作為對整個樓宇的光照水平判斷,節(jié)約IO口的使用,提高效率。
光敏電阻傳感器分別接3.3V電源、GND以及PA9。
3.6 繼電器控制電路設計
繼電器是一種電控制器件,具有輸入回路和輸出回路之間的互動關系。通常應用于自動化的控制電路中,它實際上是用小電流去控制大電流運作的一種“自動開關”。故在電路中起著自動調(diào)節(jié)、安全保護、轉(zhuǎn)換電路等作用。
使用繼電器作為控制開關,LED燈作模擬樓道燈光。繼電器為常開狀態(tài),當傳感器檢測人員經(jīng)過或手動控制LED變?yōu)榱習r,繼電器閉合,LED變?yōu)榱?;其余時刻繼電器斷開,LED為滅的狀態(tài)。
每個繼電器控制電路連接到主控制器,以接收關于設備狀態(tài)的信息。如果從主機向從機發(fā)送任何信號,則根據(jù)接收到的數(shù)據(jù)執(zhí)行相關操作。
繼電器模塊內(nèi)部線圈分別與5V電源、GND、單片機輸出端口相連。輸出端的公用接口連接5V驅(qū)動電源,常開端口與LED電源端口連接。
3.7 無線通信電路設計
ESP8266專為移動設備,可穿戴電子產(chǎn)品和物聯(lián)應用設計,可以通過AT指令配置,和單片機上的串口進行通信,利用WiFi進行數(shù)據(jù)傳輸。
設計中,利用AT指令連接手機熱點,訪問網(wǎng)址,實現(xiàn)WiFi模塊與云平臺的通信。
由于實際工作中,各燈光設備相距距離較遠,無法通過WiFi分別對各個燈光設備實現(xiàn)通信。因此,STM32主控制器通過有線連接與燈光設備相連接,通過控制繼電器,實現(xiàn)電流通斷,在主控制器實現(xiàn)對各個燈光設備控制;再將STM32連接到云平臺,云平臺與主控制器進行通信,實現(xiàn)遠程控制和監(jiān)控功能。
云平臺用于顯示燈光的亮滅狀態(tài);也可以從云平臺設備發(fā)送信號,以便可以遠程控制它。該應用程序可以通過 MQTT協(xié)議與主控制器通信。
ESP8266的VCC引腳接3.3V工作電源,GND引腳接地,TX與RX分別與STM32的串口2的RX、TX連接,RST引腳與PA1連接,用于ESP8266每次工作初始化時復位。
3.8 按鍵控制電路
通過設置按鍵,控制繼電器吸合和斷開,實現(xiàn)對燈光亮滅的控制,模擬實現(xiàn)主控制器對燈光設備控制。
3.9 LED顯示電路
使用三個5V供電的LED燈模擬樓道燈光,USB底座作為接口連接LED。LED電源輸入端口連接至繼電器的常開端口,當繼電器吸合時,電路導通,LED亮。
四、系統(tǒng)軟件設計
4.1 整體軟件設計流程圖
本次設計軟件流程共分為三個部分,分別是WiFi通信部分,傳感器部分,按鍵部分,三者均通過控制繼電器狀態(tài)實現(xiàn)對LED的控制。
設計分為上位機與下位機兩部分,上位機實現(xiàn)數(shù)據(jù)的顯示以及控制命令發(fā)送;下位機實現(xiàn)系統(tǒng)對LED的自動控制以及按鍵控制功能。
當硬件通電并連接熱點后,連接至OneNET云平臺產(chǎn)品,產(chǎn)品設可視化視圖,并生成網(wǎng)頁,用戶可通過網(wǎng)頁上按鍵控制下發(fā)命令,經(jīng)程序解析后轉(zhuǎn)換為對繼電器狀態(tài)的控制,實現(xiàn)控制功能;三個繼電器狀態(tài)打包為數(shù)據(jù),每隔5s(OneNET最低刷新速率)上傳至云平臺,并在可視化視圖文字顯示部分展示。以上內(nèi)容與光照強度及是否檢測有人無關。
同時,光敏電阻傳感器檢測光照強度,當?shù)陀谠O定閾值時,若紅外線傳感器檢測有人經(jīng)過,控制繼電器吸合,并持續(xù)至檢測到無人后延時8s,實現(xiàn)“人來燈亮,人走延時熄滅”功能。
按鍵部分主要對輸出至繼電器端口的狀態(tài)取反,實現(xiàn)主控制器控制功能,與光照強度及是否檢測有人無關。
相關程序使用keil編寫,flymcu燒錄,使用C語言實現(xiàn)。
以下為整體軟件設計流程圖。
4.2 上位機通信設計
4.2.1 ESP8266初始化設計
ESP8266與單片機串口2進行串口通信。TX、RX分別與PA3、PA2連接用于串口通信,VCC接3.3V工作電壓,GND接地,RST引腳接PA1用作復位功能。
ESP8266初始化,首先需要對串口2的PA2和PA3進行初始化設置,將PA1連接的RST引腳低電平復位,再將其設為高電平工作狀態(tài)。接下來發(fā)送AT指令完成模式設置、DHCP功能打開,連接熱點,與網(wǎng)址建立TCP連接等工作。
Station為客戶端模式,即ESP8266可以連接至熱點或路由器,然后通過其訪問網(wǎng)絡,發(fā)送或獲取信息。
以下為ESP8266初始化程序流程圖。
4.2.2 單片機與云平臺通信設計
首先需完成ESP8266+STM32+OneNET云平臺建立通信。通過OneNET云平臺建立的產(chǎn)品ID、設備ID、鑒權(quán)信息,協(xié)議名等信息整合至MQTT數(shù)據(jù)包,使用AT+CIPSEND指令上傳,建立連接。
關于數(shù)據(jù)上傳云平臺,需要將需上傳數(shù)據(jù)整合為數(shù)組形式,集中發(fā)送。設定云平臺數(shù)據(jù)源名稱分別為LED1,LED2,LED3,當數(shù)據(jù)上傳至云平臺后,相應顯示部分根據(jù)數(shù)據(jù)源數(shù)值顯示對于內(nèi)容,從而實現(xiàn)對數(shù)據(jù)的上傳及顯示,實現(xiàn)監(jiān)控LED狀態(tài)功能。
當數(shù)據(jù)返回值為1,即繼電器狀態(tài)為1,顯示部分為燈x亮(x表示燈的序號);數(shù)據(jù)返回值為0,即繼電器狀態(tài)為0,顯示部分為燈x滅。數(shù)據(jù)返回值設定在云平臺可視化視圖中創(chuàng)建。
關于命令下發(fā)程序,以控制LED1亮為例,命令內(nèi)容為“LED1:1”,控制LED1滅命令內(nèi)容為“LED1:0”。
命令下發(fā)通過可視化視圖中的按鍵部分完成。
根據(jù)命令下發(fā)內(nèi)容,首先判斷平臺是否返回數(shù)據(jù),通過搜索IPD字頭以及幀尾進行判斷,若收到返回數(shù)據(jù),返回數(shù)值為原數(shù)據(jù),若為收到,返回值為空。獲取平臺返回數(shù)據(jù)后,搜索幀尾,若找到則將其中數(shù)字部分字符轉(zhuǎn)換為數(shù)值形式,并判斷命令中是否具有關鍵詞LED1、LED2、LED3,若有,則匹配關鍵詞至相應繼電器狀態(tài)中,實現(xiàn)對繼電器的控制。
以下為數(shù)據(jù)下發(fā)流程圖。
4.3 按鍵控制電路
按鍵控制設置中斷方式為下降沿觸發(fā)。讀取輸出至繼電器的端口狀態(tài),當按下按鍵時,根據(jù)if條件語句判斷,若端口輸出為0,則繼電器狀態(tài)改為1;若輸出為1,則繼電器狀態(tài)改為0,改變LED顯示狀態(tài)。
4.4 傳感器檢測電路設計
傳感器檢測電路主要包括光照強度檢測電路以及紅外線檢測電路。
主要邏輯為當光照強度低于閾值,若紅外線傳感器檢測到人,則繼電器吸合,直至紅外線傳感器檢測至人離開,延時8s,繼電器斷開。
光照強度低于閾值時,輸出為1;高于閾值時,輸出為0。使用while()函數(shù),當光照強度低于閾值時才可以進行下一步程序。
繼電器輸入為1時,吸合,LED為亮,繼電器輸入為0時,斷開,LED滅。
紅外線傳感器檢測到人時輸出為0,未檢測到人時輸出為1。使用中斷函數(shù),下降沿觸發(fā),檢測到人中斷開啟,繼電器狀態(tài)變?yōu)?。使用while()函數(shù),當檢測到人員離開后方可進行下一步程序,即定時器開啟,延時8s后繼電器狀態(tài)改為0。
設計中定時器用于模擬HCSR501模塊延時改變電平功能,在實際使用中可刪除定時器部分函數(shù)。
五、系統(tǒng)調(diào)試
5.1 ESP8266模塊調(diào)試
將ESP8266模塊與電腦連接,利用AT指令集查看該模塊是否可以正常工作。由于設計采用MQTT協(xié)議,不能直接使用原始AT指令集直接連接至云平臺產(chǎn)品,因此燒錄MQTT固件庫,但燒錄后發(fā)現(xiàn)AT指令無法正常使用,查找相關資料后發(fā)現(xiàn)設計中原始固件庫可以滿足設計需求,因此燒錄回原始固件庫,并將ESP8266與STM32連接,利用編程語言實現(xiàn)對云平臺產(chǎn)品的連接。
下圖為AT指令調(diào)試結(jié)果,能夠?qū)崿F(xiàn)連接熱點功能,手機端顯示該連接設備。
5.2 云平臺調(diào)試
5.2.1 準備工作
首先登入OneNET云平臺,選擇多協(xié)議接入中的MQTT協(xié)議,建立產(chǎn)品,并生成相關設備ID、鑒權(quán)信息、產(chǎn)品ID。以上信息在程序連接云平臺以及建立數(shù)據(jù)源中需要用到[。
下圖為創(chuàng)建的OneNET產(chǎn)品。
下圖為設計的可視化視圖,可以實現(xiàn)對不同樓層燈光的監(jiān)控和控制。由于權(quán)限問題,按鈕只能起控制作用,無法根據(jù)返回數(shù)值改變相應狀態(tài),因此設置顯示文字用于顯示LED狀態(tài)??梢暬晥D可以發(fā)布,生成網(wǎng)址,手機端和電腦端點擊網(wǎng)址即可進入控制頁面。
依據(jù)上文中軟件流程設計的連接云平臺,實現(xiàn)STM32+ESP8266+OneNET平臺連接,串口通信部分顯示“連接成功”,云平臺部分顯示“在線”狀態(tài)。
5.2.2 實現(xiàn)數(shù)據(jù)上傳
設置顯示部分數(shù)據(jù)源為AAAA,根據(jù)keil編程上傳AAAA對于數(shù)據(jù)為2。文字部分顯示內(nèi)容返回值設定為,當返回數(shù)據(jù)為1時,顯示內(nèi)容為“1”,返回數(shù)據(jù)為其他時,顯示內(nèi)容為“2”。當前數(shù)據(jù)源值為2,因此顯示部分為“2”。
實現(xiàn)這一功能時,由于對數(shù)據(jù)類型不熟悉,導致程序中數(shù)據(jù)類型錯誤,一直無法實現(xiàn)數(shù)據(jù)上傳。查找相關資料后選擇正確的數(shù)據(jù)類型,完成上傳。
實現(xiàn)根據(jù)上傳數(shù)據(jù)改變文字顯示內(nèi)容過程,由于最初數(shù)據(jù)源格式錯誤,未設定數(shù)據(jù)源格式,導致無法根據(jù)上傳數(shù)據(jù)改變內(nèi)容,查找相關資料,根據(jù)資料內(nèi)容完成數(shù)據(jù)源格式創(chuàng)建,實現(xiàn)該功能。
5.3 紅外線傳感器模塊調(diào)試
紅外線傳感器在檢測到人后,指示燈亮,同時輸出低電平,當為檢測到人時輸出為高電平。因此在設計中使用下降沿觸發(fā)中斷,當中斷觸發(fā),串口輸出“有人來”。
調(diào)試過程中以一個傳感器為例,以下為調(diào)試現(xiàn)象。
5.4 光敏電阻傳感器模塊調(diào)試
因此,在調(diào)試該模塊過程中,利用串口通信顯示現(xiàn)象。首先對光照低于閾值時輸出高電平進行調(diào)試,程序代碼為輸出低于閾值,單片機系統(tǒng)板PC13亮,此時光敏電阻傳感器模塊指示燈滅,且串口輸出“光照弱”?,F(xiàn)象如下圖所示。
接下來將光照強度與紅外線檢測結(jié)合,當光照強度低于閾值時,判斷是否有人經(jīng)過,若有人經(jīng)過,則輸出“光照低于閾值 低于光照有人來”,此時模塊現(xiàn)象為,光敏電阻傳感器指示燈滅,紅外線傳感器指示燈亮,現(xiàn)象如下圖所示。
5.5 整體調(diào)試
5.5.1 照明系統(tǒng)自動控制
起初使用delay延時函數(shù)實現(xiàn)延時功能,但在延時期間,其他指令無法響應,倘若另一紅外傳感器檢測到人或云平臺下發(fā)命令,單片機無法響應。因此使用定時器進行延時功能。
實際使用中,HCSR501紅外熱釋電自帶檢測到人后延時改變輸出電平功能,自帶延時功能,且考慮STM32F103C8T6中定時器數(shù)量未必滿足實際所需,綜合以上,該延時功能僅在設計中為模擬紅外熱釋電傳感器使用,實際中可以去除。
下圖為光照強度超過閾值,但紅外線傳感器檢測到人,根據(jù)程序邏輯,此時LED應為滅的狀態(tài)?,F(xiàn)象如圖。
下圖為光照強度低于閾值,且紅外線傳感器檢測到人,此時LED為亮。
5.5.2 按鍵實現(xiàn)燈光開關
下圖可視化視圖未下發(fā)命令,且光照強度超過閾值,此時LED為亮,狀態(tài)由按鍵控制,且網(wǎng)頁上對于LED2狀態(tài)文字為“燈2亮”。
圖5.16 按鍵控制LED狀態(tài)
5.5.3 云平臺控制燈光和監(jiān)控
由于權(quán)限設置,該可視化視圖中按鈕僅能做命令下發(fā)功能,無法根據(jù)數(shù)據(jù)源返回數(shù)據(jù)改變相應狀態(tài)。
可視化視圖控制LED1按鈕按下,對應繼電器狀態(tài)變?yōu)?,LED亮。此時光照強度超過閾值,因此該現(xiàn)象為云平臺下發(fā)命令控制,且由圖中可見,對應LED狀態(tài)顯示為“燈1亮”現(xiàn)象如下。
六、結(jié) 論
系統(tǒng)以STM32F103C8T6作為核心芯片,應用串口通信、中斷、定時器等功能,利用WIFI進行無線通信,傳感器進行檢測,繼電器實現(xiàn)自動開關功能,實現(xiàn)樓宇照明控制系統(tǒng)設計。
設計結(jié)合實際住宅、辦公樓情況,以光照強度作為是否開啟燈光標準,在低于設定光照強度閾值時,紅外線傳感器監(jiān)測到人即開啟燈光。同時設計在終端以及主控制器設置控制燈光按鈕,對管理者而言更加方便,可以更好應對特殊情況。終端網(wǎng)頁對于使用者而言更加方便,可以隨時點擊網(wǎng)址查看,網(wǎng)頁上顯示燈光的狀態(tài),實現(xiàn)監(jiān)控功能。
設計內(nèi)容從實際出發(fā)考慮,具備實用性,同時考慮節(jié)能環(huán)保,實現(xiàn)設計的基本功能,但設計內(nèi)容仍存在不足,在節(jié)能性上可以對供電方式加以完善,例如太陽能供電。
附件:PCB截圖實物圖
希望你喜歡這個項目,并在構(gòu)建過程中找到樂趣!如果你有任何問題或需要幫助,歡迎在評論區(qū)交流。
作者:Svan.
注意:本博文為不得在未經(jīng)本人同意進行轉(zhuǎn)載或者二次創(chuàng)作,違者必究?。。?/p>
博客主頁:https://blog.csdn.net/weixin_51141489,需要源碼或相關資料實物的友友請關注、點贊,私信吧!