徐 磊 涂 强
(江西科技师范大学 江西 南昌 330100)
智能家居照明系统设计
徐 磊 涂 强
(江西科技师范大学 江西 南昌 330100)
智能家居是以居民住宅为平台,结合当今的物联网技术。使人们的家用电器可以通过手机等移动终端进行控制,并且随着科学技术的发展,智能家居会朝着更便捷、更舒适、更绿色、更节能的方向发展。智能家庭照明系统,是通过设计并制作一整套控制系统,使人们的家具照明朝着更人性化的方向发展。使用这个智能家庭照明系统,人们可以用手机远程对自己家中的照明实现控制,也可以监察照明情况。
智能家居;照明;物联网
基于STC15W404AS的智能家居照明系统设计的研究是为了适应现在物联网技术与生活越来越紧密的潮流。通过设计这个智能家居照明系统去学习关于物联网相关的技术,同时也为了方便人们的生活,如果本次研究结果达到预期目标,我们将会在智能家居上有重大突破,为将来做其他的智能家居方面的研究奠定一个夯实的基础。
另一方面,我们都十分向往想科幻电影之中人们的生活情景,而这个研究与其有一定的相似之处,我们认为这项研究将会为实现科幻电影中的生活方式有一定的帮助,希望通过自己的努力来见证这一切的实现。
本系统用Atemga328p单片机做为控制器,通过外部按钮来切换使用局域网和互联网两种模式,局域网模式只能在很小的范围对LED灯的亮度进行调控,当超出范围后便不能控制;互联网模式只有有网络信号的地区都能对LED灯进行控制。LED灯亮度通过手机APP向单片机发送指令改变PWM波占空比大小来控制。
(一)硬件电路总体框图
说明:本系统用Atemga328p单片机做为控制器,通过外部按钮来切换使用局域网和互联网两种模式,局域网模式只能在很小的范围对LED灯的亮度进行调控,当超出范围后便不能控制;互联网模式只有有网络信号的地区都能对LED灯进行控制。
(二)微处理器的选择。单片机采用Atemga328p,速度是传统51的20倍,体积小巧,拥有16k rom 1k Ram。
20多个IO口。这款单片机有足够的内存来存储通信协议,同时它的运行速度也远超传统的51单片机,而价格也差不多。
(三)WIFI模块。WIFI模块我们采用的是ESP8266。它是一款超低功耗的UART-WiFi透传模块,拥有很小封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到WiFi无线网络上,进行互联网或局域网通信,实现联网功能。支持AT+控制指令集。
(四)路由器。任意一款可以联网的无线路由度能满足需求。
(一)主程序框架
说明:
(二)算法
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();
}
本次研究最终得以完全实现预期的功能,实现了在局域和远程控制LED灯的亮度,通过本课题的学习,我们学会了远程操控的方法,相信本次的研究成果可以运用到许多需要用到远程控制的项目之中!
徐磊(1995.07-),男,汉族,江西南昌人,大学本科,江西科技师范大学;涂强(1994.08-),男,汉族,江西人,大学本科,江西科技师范大学。