郭紅軍
(焦作師范高等??茖W(xué)校 信息化管理中心,河南 焦作 454000)
近年來(lái),隨著科學(xué)技術(shù)的發(fā)展及國(guó)民美好生活需求的日益增長(zhǎng),智能化、簡(jiǎn)潔化和自動(dòng)化逐漸成為一種新型生活方式.智能控制系統(tǒng)完美契合新時(shí)代需求,智能家居照明控制系統(tǒng)有效減少了能源損耗,滿足居民的智能化生活,符合我國(guó)現(xiàn)階段環(huán)境保護(hù)與節(jié)能減排的要求[1-2].
目前市面上部分智能照明產(chǎn)品存在造價(jià)偏高、操作復(fù)雜,居民對(duì)智能家居產(chǎn)品存在認(rèn)識(shí)誤區(qū),普遍認(rèn)為智能照明系統(tǒng)價(jià)格昂貴、功能冗雜.本文從智能照明系統(tǒng)的短板出發(fā),設(shè)計(jì)一款簡(jiǎn)單小巧的智能照明控制系統(tǒng),根據(jù)外界光亮自動(dòng)調(diào)整光強(qiáng),通過(guò)手機(jī)控制燈具開(kāi)關(guān),調(diào)節(jié)燈光顏色,制作成本低、節(jié)能環(huán)保、功能精簡(jiǎn)、易于操控.
傳統(tǒng)家用電器照明系統(tǒng)一般通過(guò)自鎖開(kāi)關(guān)對(duì)燈具進(jìn)行開(kāi)啟或關(guān)閉的操作,前些年也有出現(xiàn)加裝紅外傳感器的燈具,使用遙控器控制,但整體還不算智能.本設(shè)計(jì)在傳統(tǒng)燈具的功能基礎(chǔ)上,增加三種控制方式,分別是:檢測(cè)人體通過(guò)而自動(dòng)亮燈,通過(guò)手機(jī)控制燈具的開(kāi)關(guān)、顏色,檢測(cè)外界環(huán)境光強(qiáng)的變化自動(dòng)調(diào)整燈光的亮度.
系統(tǒng)整體設(shè)計(jì)思路是將WIFI模塊、WS2812燈珠、光敏電阻、紅外感應(yīng)模塊和單片機(jī)控制板結(jié)合,在正常光照下,燈具光強(qiáng)正常;在強(qiáng)光條件下,燈具光強(qiáng)變暗;在弱光條件下,燈具光強(qiáng)變亮.通過(guò)使用ESP8266型WIFI模塊,實(shí)現(xiàn)手機(jī)對(duì)照明系統(tǒng)的控制.控制器結(jié)構(gòu)框圖如圖1所示.
圖1 控制器結(jié)構(gòu)框圖
整個(gè)系統(tǒng)的主要硬件設(shè)計(jì)由芯片STC89C51單片機(jī)主控,外圍電路包括復(fù)位電路、時(shí)鐘電路以及指示燈電路,功能電路包括ADC轉(zhuǎn)換電路、PWM控制電路以及WS2812燈珠控制電路,WIFI模塊連接單片機(jī)主控板且通過(guò)串口通訊調(diào)試.
在系統(tǒng)中,時(shí)鐘電路、復(fù)位電路、供電電路與STC89C51單片機(jī)組成最小系統(tǒng),作為整個(gè)系統(tǒng)的控制中心.復(fù)位電路采用上電復(fù)位,加電時(shí)會(huì)通過(guò)一個(gè)電容給RST端一個(gè)短暫的高電平信號(hào),接著高電平信號(hào)隨著VCC對(duì)電容的充電過(guò)程逐漸回落,實(shí)現(xiàn)復(fù)位效果[3],如圖2所示.
圖2 最小系統(tǒng)原理圖
本系統(tǒng)中,通過(guò)光敏電阻接收外界的光照強(qiáng)度屬于模擬信號(hào),而單片機(jī)只能處理數(shù)字信號(hào),本小節(jié)引入以ADC0832芯片為主的A/D轉(zhuǎn)換電路的設(shè)計(jì)解決這一問(wèn)題.ADC0832是由美國(guó)著名半導(dǎo)體企業(yè)制造的支持8位分辨率、雙通道A/D的變換晶片.變換晶片體積小,可靠性強(qiáng),已經(jīng)在國(guó)內(nèi)普及,其最大亮度顯示達(dá)256級(jí),能滿足一般的模擬量變換需求.額定電壓和電源輸入方面,該晶片對(duì)模擬電流的最大輸入范圍是0~5 V,晶片變換時(shí)限32 μS,具備雙數(shù)據(jù)輸出功用,可對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),有效降低了數(shù)據(jù)誤差,同時(shí)變換速度快,穩(wěn)定能力強(qiáng)[4-5].
該設(shè)計(jì)使用GL3516型光敏電阻,對(duì)外界光照強(qiáng)度數(shù)據(jù)進(jìn)行反饋,改變其電阻.外部光強(qiáng)通過(guò)光電寄存器反饋至ADC0832的CH0引腳,ADC0832又從D0/D1口將電信號(hào)轉(zhuǎn)換輸出為數(shù)字信號(hào)[6],如圖3所示.
圖3 光照強(qiáng)度檢測(cè)電路
本系統(tǒng)除需滿足根據(jù)外界光強(qiáng)自動(dòng)調(diào)節(jié)照明亮度之外,還需實(shí)現(xiàn)對(duì)暖色光、冷色光與白光三種照明顏色的調(diào)節(jié),普通LED燈管無(wú)法實(shí)現(xiàn)對(duì)顏色的自由調(diào)節(jié),故本設(shè)計(jì)使用12位5050封裝的WS2812燈珠組成燈帶作為該系統(tǒng)的主要照明元件.WS2812是集合控制電路和燈光集成電路為一身的外控智能LED光源系統(tǒng),數(shù)據(jù)信息協(xié)議采取單線的空符號(hào)通訊方法,在圖像點(diǎn)ON-RESET之后,由DIN端直接接受控制器傳來(lái)的所有數(shù)據(jù)信息,由第一圖像點(diǎn)獲得第一次傳送的全部二十四個(gè)數(shù)據(jù)信息[7].
WS2812是一個(gè)數(shù)字控制的全彩LED燈珠,采用單總線通訊,每顆燈珠支持24 bit的顏色控制,信號(hào)線通過(guò)DIN輸入,經(jīng)過(guò)一顆燈珠之后,信號(hào)線上前24 bit數(shù)據(jù)會(huì)被該燈珠鎖存,之后將剩下的數(shù)據(jù)信號(hào)整形之后通過(guò)DOUT輸出,將每一顆燈珠的DO與DIN串聯(lián)設(shè)計(jì)組成燈帶,即可滿足信號(hào)在每一顆燈珠之間傳遞,使燈帶上所有燈珠在同一時(shí)間呈現(xiàn)相同的顏色[8].連接方式如圖4所示.
圖4 WS2812燈帶連接方式
前文提到使用光敏電阻控制燈珠的亮暗,但是光敏電阻的特性是外界光強(qiáng)高的時(shí)候阻值降低,外界光強(qiáng)弱的時(shí)候阻值增高,要實(shí)現(xiàn)在外界光強(qiáng)高的時(shí)候燈光亮度減弱,外界光強(qiáng)弱的時(shí)候燈光亮度增強(qiáng),只使用光敏電阻無(wú)法達(dá)到目標(biāo).實(shí)現(xiàn)本設(shè)計(jì)最初的預(yù)期,需引用脈沖寬度調(diào)制(PWM)控制調(diào)節(jié).
PWM是使用微處理器的數(shù)碼輸出控制模擬電路的高效工藝技術(shù),是對(duì)具體輸入或輸出信息采用數(shù)字編碼的方式.使用高分辦率運(yùn)算器,調(diào)控方波的占空比,解碼具體輸入輸出信息的電平[9-10].本系統(tǒng)中對(duì)PWM控制電路設(shè)計(jì)如圖5所示.
圖5 PWM控制WS2812燈帶電路
系統(tǒng)軟件設(shè)計(jì)最重要且最復(fù)雜的部分是將ESP8266型WIFI模塊與阿里云平臺(tái)建立連接,根據(jù)云平臺(tái)MQTT協(xié)議,以一機(jī)一密的方式將設(shè)備直連接入阿里云網(wǎng)絡(luò)中.其余硬件部分控制程序采用STC89C51系列單片機(jī)識(shí)別的C語(yǔ)言編程.由于程序冗長(zhǎng),本文只展示核心設(shè)計(jì)程序.
3.1.1 將ESP8266型WIFI模塊作為TCP客戶端開(kāi)啟透?jìng)髂J?/p>
將WIFI模塊接入云端進(jìn)行數(shù)據(jù)傳輸,需打開(kāi)透明傳輸模式,把WIFI模塊作為TCP客戶端,可以與云端連接.本部分程序先完成串口發(fā)送數(shù)據(jù)的代碼,使單片機(jī)通過(guò)串口通訊收發(fā)數(shù)據(jù).由ESP8266芯片實(shí)現(xiàn)配網(wǎng)的AT指令,開(kāi)啟網(wǎng)絡(luò)的連接與透?jìng)髂J?
以下是本次設(shè)計(jì)中所用到的WIFI模塊配網(wǎng)指令[11-12]:
AT+RST; #重啟模塊
AT+UART=
AT+CWMODE=1; #設(shè)置STA模式
AT+CWJAP=
AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
3.1.2 實(shí)現(xiàn)ESP8266型WIFI模塊與阿里云平臺(tái)連接
完成WIFI模塊的配網(wǎng)操作并順利打開(kāi)透?jìng)髂J?下一步需要將其接入阿里云,完成產(chǎn)品與云端的配置.在接入云端之前,需要先在阿里云平臺(tái)新建一個(gè)“產(chǎn)品”,平臺(tái)會(huì)自動(dòng)分配給其在MQTT協(xié)議中用于建立唯一連接的產(chǎn)品證書(ProductKey、DeviceName和DeviceSecret),通過(guò)該證書完成ESP8266型WIFI模塊與云端一對(duì)一的連接[13-15].
以下是MQTT協(xié)議中用于WIFI模塊連接阿里云平臺(tái)的配網(wǎng)指令:
AT+MQTTUSERCFG=0,1,"NULL","用戶名","密碼",0,0,""
AT+MQTTCLIENTID=0,"ClienId"
AT+MQTTCONN=0,"連接域名",1883,1
AT+MQTTSUB=0,"topic",1 //1. 訂閱
AT+MQTTPUB=0,"topic","test",1,0 //2. 發(fā)布
//屬性設(shè)置
/sys/a1TGuTWhjR8/TestDevice/thing/service/property/set
/sys/a1KIUPF4pAV/TestDevice/thing/service/property/set-reply
//屬性上報(bào)
/sys/a1TGuTWhjR8/TestDevice/thing/event/property/post
/sys/a1TGuTWhjR8/TestDevice/thing/event/property/post-reply
主程序設(shè)計(jì)的主要思路是初始化定時(shí)器T0,對(duì)WIFI模塊進(jìn)行配網(wǎng),打開(kāi)透?jìng)髂J?讓W(xué)IFI模塊開(kāi)始透明傳輸.將WIFI模塊與阿里云平臺(tái)進(jìn)行握手,實(shí)現(xiàn)產(chǎn)品與云端之間的連接.使燈帶通電,初始化紅外感應(yīng)模塊與PWM控制電路.具體程序如下[15]:
void main ()
{
Time1_Init();
esp8266_set();
MQTT_connect();
while (1)
{PWM = Hc_SR501;
Adc_dat = Adc_Read_data(1,0);
if (Hc_SR501) {
TR1 = 1;
Pwm_produce(~Adc_dat);
}
Else
{TR1 = 0;
}
delay_us(8000);
}
}
前文已詳細(xì)介紹產(chǎn)品功能,使用相對(duì)低廉的STC89C51系列單片機(jī)作為主控板,其余元器件也經(jīng)濟(jì)實(shí)惠,本設(shè)計(jì)將硬件的成本控制在90元左右.與其它智能照明設(shè)備對(duì)比,本系統(tǒng)的設(shè)計(jì)功能實(shí)用且具有明顯的價(jià)格優(yōu)勢(shì).
設(shè)計(jì)使用STC89C51系列單片機(jī)作為主控單片機(jī),利用ESP8266型WIFI模塊與單片機(jī)建立串口通訊,設(shè)計(jì)價(jià)格低廉、功能精簡(jiǎn)的智能家居照明控制系統(tǒng).最終成品可實(shí)現(xiàn)根據(jù)外界光強(qiáng)自動(dòng)調(diào)整燈光亮度,有效減少電能的損耗,自動(dòng)感應(yīng)開(kāi)關(guān)燈并通過(guò)手機(jī)控制調(diào)節(jié),根據(jù)用戶需求在三種燈光顏色之間自由切換.智能家居照明控制系統(tǒng)精簡(jiǎn)實(shí)用,方便操作,有效滿足了居民智能化生活需求.