徐 磊 涂 強(qiáng)
(江西科技師范大學(xué) 江西 南昌 330100)
智能家居照明系統(tǒng)設(shè)計(jì)
徐 磊 涂 強(qiáng)
(江西科技師范大學(xué) 江西 南昌 330100)
智能家居是以居民住宅為平臺(tái),結(jié)合當(dāng)今的物聯(lián)網(wǎng)技術(shù)。使人們的家用電器可以通過手機(jī)等移動(dòng)終端進(jìn)行控制,并且隨著科學(xué)技術(shù)的發(fā)展,智能家居會(huì)朝著更便捷、更舒適、更綠色、更節(jié)能的方向發(fā)展。智能家庭照明系統(tǒng),是通過設(shè)計(jì)并制作一整套控制系統(tǒng),使人們的家具照明朝著更人性化的方向發(fā)展。使用這個(gè)智能家庭照明系統(tǒng),人們可以用手機(jī)遠(yuǎn)程對(duì)自己家中的照明實(shí)現(xiàn)控制,也可以監(jiān)察照明情況。
智能家居;照明;物聯(lián)網(wǎng)
基于STC15W404AS的智能家居照明系統(tǒng)設(shè)計(jì)的研究是為了適應(yīng)現(xiàn)在物聯(lián)網(wǎng)技術(shù)與生活越來越緊密的潮流。通過設(shè)計(jì)這個(gè)智能家居照明系統(tǒng)去學(xué)習(xí)關(guān)于物聯(lián)網(wǎng)相關(guān)的技術(shù),同時(shí)也為了方便人們的生活,如果本次研究結(jié)果達(dá)到預(yù)期目標(biāo),我們將會(huì)在智能家居上有重大突破,為將來做其他的智能家居方面的研究奠定一個(gè)夯實(shí)的基礎(chǔ)。
另一方面,我們都十分向往想科幻電影之中人們的生活情景,而這個(gè)研究與其有一定的相似之處,我們認(rèn)為這項(xiàng)研究將會(huì)為實(shí)現(xiàn)科幻電影中的生活方式有一定的幫助,希望通過自己的努力來見證這一切的實(shí)現(xiàn)。
本系統(tǒng)用Atemga328p單片機(jī)做為控制器,通過外部按鈕來切換使用局域網(wǎng)和互聯(lián)網(wǎng)兩種模式,局域網(wǎng)模式只能在很小的范圍對(duì)LED燈的亮度進(jìn)行調(diào)控,當(dāng)超出范圍后便不能控制;互聯(lián)網(wǎng)模式只有有網(wǎng)絡(luò)信號(hào)的地區(qū)都能對(duì)LED燈進(jìn)行控制。LED燈亮度通過手機(jī)APP向單片機(jī)發(fā)送指令改變PWM波占空比大小來控制。
(一)硬件電路總體框圖
說明:本系統(tǒng)用Atemga328p單片機(jī)做為控制器,通過外部按鈕來切換使用局域網(wǎng)和互聯(lián)網(wǎng)兩種模式,局域網(wǎng)模式只能在很小的范圍對(duì)LED燈的亮度進(jìn)行調(diào)控,當(dāng)超出范圍后便不能控制;互聯(lián)網(wǎng)模式只有有網(wǎng)絡(luò)信號(hào)的地區(qū)都能對(duì)LED燈進(jìn)行控制。
(二)微處理器的選擇。單片機(jī)采用Atemga328p,速度是傳統(tǒng)51的20倍,體積小巧,擁有16k rom 1k Ram。
20多個(gè)IO口。這款單片機(jī)有足夠的內(nèi)存來存儲(chǔ)通信協(xié)議,同時(shí)它的運(yùn)行速度也遠(yuǎn)超傳統(tǒng)的51單片機(jī),而價(jià)格也差不多。
(三)WIFI模塊。WIFI模塊我們采用的是ESP8266。它是一款超低功耗的UART-WiFi透?jìng)髂K,擁有很小封裝尺寸和超低能耗技術(shù),專為移動(dòng)設(shè)備和物聯(lián)網(wǎng)應(yīng)用設(shè)計(jì),可將用戶的物理設(shè)備連接到WiFi無線網(wǎng)絡(luò)上,進(jìn)行互聯(lián)網(wǎng)或局域網(wǎng)通信,實(shí)現(xiàn)聯(lián)網(wǎng)功能。支持AT+控制指令集。
(四)路由器。任意一款可以聯(lián)網(wǎng)的無線路由度能滿足需求。
(一)主程序框架
說明:
(二)算法
void keyHandle()
{
unsigned char stat;
unsigned long ntimer,ntimer2;
stat = key_1.keyscan();
if(stat == KEY_DOWING)
{
ntimer = millis();
}
else if(stat == KEY_DOWN)
{
if((millis()-ntimer)<=500)
{
myGizwits.setBindMode(WIFI_SOFTAP_MODE);
}
else if((millis()-ntimer)>= 3000)
{
myGizwits.setBindMode(WIFI_AIRLINK_MODE);
}
}
stat = key_2.keyscan();
if(stat == KEY_DOWING)
{
ntimer2 = millis();
}
else if(stat == KEY_DOWN)
{
if((millis()-ntimer)<=500)
{
myGizwits.setBindMode(WIFI_PRODUCTION_TEST);
}
else if((millis()-ntimer)>= 3000)
{
myGizwits.setBindMode(WIFI_RESET_MODE);
}
}
}
void setup(){
// put your setup code here,to run once:
Serial.begin(9600);
pinMode(LED,OUTPUT);
pinMode(KEY1,INPUT_PULLUP);
pinMode(KEY2,INPUT_PULLUP);
myGizwits.begin();
key_1.setpin(14);
key_2.setpin(15);
}
bool varR_LED = 0;
unsigned long varR_LED_NUM = 0;
void loop(){
keyHandle();
//Configure network
//if(XXX)//Trigger Condition
//myGizwits.setBindMode(0x02);//0x01:Enter AP Mode;0x02:Enter Airlink Mode
if(myGizwits.hasBeenSet(EVENT_LED_NUM))
{
myGizwits.read(EVENT_LED_NUM,&varR_LED_NUM);//Address for storing data
}
if(myGizwits.hasBeenSet(EVENT_LED))
{
myGizwits.read(EVENT_LED,&varR_LED);
}
if(varR_LED == 1)
{
//analogWrite(LED,(unsigned char)varR_LED_NUM);
//myGizwits.write(VALUE_LED_NUM,VALUE_TYPE_MAX);
analogWrite(LED,varR_LED_NUM);
}
else
{
analogWrite(LED,0);
}
myGizwits.process();
}
本次研究最終得以完全實(shí)現(xiàn)預(yù)期的功能,實(shí)現(xiàn)了在局域和遠(yuǎn)程控制LED燈的亮度,通過本課題的學(xué)習(xí),我們學(xué)會(huì)了遠(yuǎn)程操控的方法,相信本次的研究成果可以運(yùn)用到許多需要用到遠(yuǎn)程控制的項(xiàng)目之中!
徐磊(1995.07-),男,漢族,江西南昌人,大學(xué)本科,江西科技師范大學(xué);涂強(qiáng)(1994.08-),男,漢族,江西人,大學(xué)本科,江西科技師范大學(xué)。