实训报告-智能家居实训报告模板.doc

上传人:jian****018 文档编号:9345389 上传时间:2020-04-04 格式:DOC 页数:17 大小:362KB
返回 下载 相关 举报
实训报告-智能家居实训报告模板.doc_第1页
第1页 / 共17页
实训报告-智能家居实训报告模板.doc_第2页
第2页 / 共17页
实训报告-智能家居实训报告模板.doc_第3页
第3页 / 共17页
点击查看更多>>
资源描述
实 训 报 告嵌入式智能家居实训报告班级学号 1339124 姓 名 张德进 实训地点 E501 指导教师 庞春辉 完成日期 2015 年 12月 20日一、实训目的(1)具有阅读程序能力,查阅相关资料能力,掌握程序修改能力(2)具备编写代码能力,掌握程序分析,编写,调试能力。二、实训环境校内环境:E501校外环境:工作单位以校内实训为主,校外实训为辅。(1)硬件设备计算机。(2)软件Eclipse。3、 技术介绍随着社会、经济水平的发展,人们对家居品质的要求也越来越高,要求居住环境舒适化、安全化,家居生活人性化、智能化。智能家居是3C技术(即)向传统家电产业渗透发展的必然结果。从社会背景的层面来看,近年来信息化的高度进展,通讯的自由化与高层次化、业务量的急速增加与人类对工作环境的安全性、舒适性、效率性要求的提高,造成家居智能化的需求大为增加;此外在科学技术方面,由于计算机控制技术的发展与电子信息通讯技术的成长,促成了智能家居的诞生。现在的中国正迎来一个数字城市、数字社区建设与发展的热潮,3G技术和互联网应用对智能家居的发展也起到很重要的推动作用,智能家居的日渐兴起影响到人们生活的方方面面,改变了人们的生活习惯,提高了人们的生活质量,促使家庭实现了生活现代化,给人们的家居生活带来了全新的感受,它必将成为一种发展趋势。目前市场上出现得智能家居控制系统主要有: (1)X-10系统(美国),该系统是利用电力线作为网络平台,采用集中控制方式实现。这套系统的功能较为强大,与其它家居控制系统如ABB、C_BUS等比起来更容易接收,使用也相对简单。因为实现同样的功能,X-10家居控制系统是利用220v电力线将发射器发出的X-10信号传送给接收器从而实现智能化的控制,因此采用这套系统不需要额外的布线,这也是这套系统的最大的一个优势,因为其它系统基本上都需要布低压线,在墙上或地面开槽、钻孔,施工难度大、费用高、工期长。但由于缺乏在国内市场推广的条件且价格昂贵,该系统在国内应用极少。 (2)EIB系统(德国),该系统采用预埋总线及中央控制方式实现控制功能。但由于其工程要求复杂严苛,并且价格较高,因此一直无法打开国内市场。 (3)8X系统(新加坡),该系统采用预处理总线跟集中控制方式来实现功能。它的优点在于利用的产品对系统进行扩展,系统较为成熟,比较适合中国国情。但是由于系统架构、灵活性及产品价格等方面还难以达到要求,所以目前在国内还较少应用。 对于我国的智能家居进展目前,主要采用国外的一些技术产品,但也有一些企业推出了自己的产品,主要有: (1)e家庭(海尔),该系列产品以海尔电脑作为控制中心,各种网络家电作为终端设备,海尔移动电话作为移动数字控制中心。海尔在技术上同微软合作,利用微软的Windows Me技术和海尔的网络家电,使“e家庭”已具雏形,已推出了网络洗衣机、网络冰箱、网络空调、网络微波炉等一系列网络家电。 (2)e-home数字家园(清华同方),该智能家居控制系统是专门针对中国家庭设计的,遵循国际技术标准,采用嵌入式软、硬件技术,提供网络、网络节点及末端设备。产品以功能模块开发为主,基于国外成熟的智能家居标准之上。其智能家居控制系统主要有以下三个部分: A系列:遵循EIB协议的家庭控制产品,适用于中高档住宅区。 B系列:遵循X-10协议的家庭控制产品,适用于中档住宅区。 易家三代:配电箱集中安装式家庭控制产品。 国内各大软、硬件机构正在积极的研制、开发更为符合市场的智能化家居设备,以解决当前智能化产品实用性差、使用复杂及产品价格昂贵等缺点,而技术创新性也逐步向国际先进水平靠拢,这样的未来值得期待。 4、存在的不足或有待深入研究解决的问题; 不足之处:由于我国的智能家居相对于国外起步较晚, 还缺乏统一明确的国际标准,许多公司开发出的产品都是基于自己组的网络和信息交换协议,很多产品是针对特定的组网环境开发的,部分核心技术没有对外公布,技术复杂,直接导致了使用范围的局限性。再者,缺乏对应的第三方产品,各个接入设备之间不能兼容,互操作性差,不利于产品的扩充,因而进一步局限了产品的发展。再加上,有的系统成本过高,严重影响了产品的普及。因此设计一个符合国家国情和规范的集远程控制和本地控制为一体的智能家居控制系统是非常具有现实意义的,且势在必行。 主要问题:根据前面提到的一些调查结果及数据可以看出,虽然目前智能家居系统有了一定的发展,并且市场上也开始出现相应的产品,但从总体的发展来看,不容乐观,特别是统一标准和权威产品的缺乏严重影响了家居智能化的发展。随着科技的提高,经济的发展,人们的物质生活水平的提高,对家居环境的要求也越来越高,作为家居智能化的核心部分智能家居控制系统也越发显得重要。家居智能化控制的开发和建设是未来国家、经济发展的必然趋势。 智能家居控制器可以为系统提供智能控制方案,使住户的控制更便捷,更高效,更能为家庭的日常活动节约不必要的能耗。而且在现在这个注重绿色环保的世界里,智能的为住户控制好空气的湿度、温度等,检查分析空气成分,让住户安心入住。同时,智能家居控制器可以根据住户的要求调整方案,加强紧急处理,危机救护等急救控制,充分达到只要是“用户想要的,就是我们追求的”宗旨。经过2013年的哥本哈根会议,我国更加明确了节能减排,绿色建筑的目标,这就使住宅智能化凸显出了其合理规划,最大限度的节约能源的优势。如果我国大力推广绿色建筑,仅在铺设智能化系统上所需的新设备的生产上就有2000亿到3000亿人民币的新市场。而中国“智能家居网络”必在“智能化住宅”的框架下形成一个新型IT产业,而这一切必将对未来几十年我国房地产的健康有效发展起着深远的影响。 作为智能家居的核心系统的智能家居的控制系统,它的设计功能的完善必将推动住宅智能化的发展。而系统功能的集成化、用户使用的傻瓜化以及市场的平民化将是智能家居控制器的发展趋势,系统也将逐步迈向绿色化。最终,我想全人类的梦想是智能家居控制系统将囊括所有的家事杂物,让我们真正的享受舒适温馨的家庭生活。4、 实训内容#include #include #include lpc11xx.h#include clkconfig.h#include gpio.h#include uart.h#include timer32.h#include ssp.h#include i2c.h#include wdt.h#include adc.h#include rom_drivers.h#include seg7led.h#include oled2864.h #include light.h#include acc.h#include key.h#include rfid.h#include tools.h#include spi_uart.h#include temp_hum.h#include collect_data.h#include led_spk_fan.h#include menu.hextern void LED_Test(void);extern void Speaker_Test(void);extern void Fan_Test(void);extern void ADC_Test(void);extern void CAN_Test_ROM(void);extern void CAN_Test(void);#define ID_NUM 2#define ntype 1#define itype 2#define rtype 4#define transhead 0xaa#define LED_ON 0 #define LED_OFF 1#define FAN_ON 2#define FAN_OFF 3#define LED7_ON 4#define LED7_OFF 5#define SPEAKER_ON 6#define SPEAKER_OFF 7#define ANSWER 8 volatile uint32_t counter1 = 0;volatile uint32_t counter2 = 0;static const unsigned char aucCRCHi = 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40;static const unsigned char aucCRCLo = 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40;typedef struct /数据封装uint8_t head; /数据头 uint8_t dev_no; /房间号uint8_t type; /数据类型uint8_t len; /数据长度uint8_t ndata; uint8_t temp2; uint8_t hum2; uint8_t light2; uint8_t adc2; uint8_t acc3; uint8_t rfid4; uint_least16_t check; transdata; int32_txoff = 0; /初始化三轴信息 int32_tyoff = 0; int32_tzoff = 0; int8_tx = 0; int8_ty = 0; int8_tz = 0; /初始化三轴信息void SysTick_Handler(void)/线程 static uint32_tTick=0; static uint8_tcnt=0; Tick +; if(Tick = 500) cnt +;cnt &= 0x1f; else if(Tick = 1000) counter1+;counter2+;Tick = 0; void collect_data(uint8_t *temp,uint8_t *hum,uint8_t *light)/显示温湿度和亮度函数 uint8_t i; char buf16; uint32_tlight_data; i = Read_Temp_Hum(temp, hum);/采集温湿度 I2CInit(I2CMASTER, 0); /初始化亮度函数 light_init(); light_enable(); light_setRange(LIGHT_RANGE_4000); /初始化亮度函数 light_data = light_read(); /采集亮度 light0 = (light_data 8); /左移八位,使光亮度值在整数位上 light1 = (light_data & 0xff); if(i != 0) OLED_ClearScreen(); /清屏 snprintf(buf, 16, Temp: %d.%d , temp0, temp1); OLED_DisStrLine(1, 0, (uint8_t *)buf); /显示温度 snprintf(buf, 16, Hum: %d.%d , hum0, hum1); OLED_DisStrLine(2, 0, (uint8_t *)buf); /显示湿度 snprintf(buf, 20, Light: %d , light_data); OLED_DisStrLine(3, 0, (uint8_t *)buf); /显示亮度if(temp030) /判断温度高位是否超过阀值GPIOSetValue(PORT3, 0, 0);/Turn on led1 speaker_op(1);/Turn on speaker GPIOSetValue(PORT0, 2, 0);/ Turn on Fanif(temp030) GPIOSetValue(PORT0, 2, 1);/ Turn off Fan GPIOSetValue(PORT3, 0, 1);/Turn off led1speaker_op(0);/Turn off speakerif(light_data 30 | x 30 | y 30 | z -30) /判断是否超过设定的阀值speaker_op(1); /turn on spear GPIOSetValue(PORT3, 0, 0);/Turn on led1elsespeaker_op(0);/Turn off speaker GPIOSetValue(PORT3, 0, 1);/Turn off led1 void send_data(uint8_t *data, uint8_t len)/发送信息函数 uint8_t i = 0,buf16; for(i = 0;ilen;i+) ZigBee_PutChar(datai); /利用zigbee发送数据void send_zigbee(uint8_t *data)ZigBee_PutString(data);return;uint_least16_t usMBCRC16( uint8_t * pucFrame,uint8_t usLen )/CRC检验函数 uint8_t ucCRCHi = 0x0; uint8_t ucCRCLo = 0x0; int iIndex; while( usLen- ) iIndex = ucCRCLo *( pucFrame+ ); ucCRCLo = (uint8_t)( ucCRCHi aucCRCHiiIndex ); ucCRCHi = aucCRCLoiIndex; return (uint_least16_t)( ucCRCHi 8; buf16 = data.check & 0xff; send_data(buf,17); /发送信息和CRC检验位 if(data.type = rtype) buf2 = data.type;buf3 = 4;buf4 = data.rfid0;buf5 = data.rfid1;buf6 = data.rfid2;buf7 = data.rfid3;data.check = usMBCRC16(buf,8); /根据发送数据设置CRC检验位buf8 = data.check 8;buf9 = data.check & 0xff;send_data(buf,10);/发送信息和CRC检验位 if(data.type = ntype) buf2 = data.type; buf3 = 1; buf4 = data.ndata; data.check = usMBCRC16(buf,5);/根据发送数据设置CRC检验位 buf5 = data.check 8; buf6 = data.check & 0xff; send_data(buf,7); /发送信息和CRC检验位 Led7_On(void)/数码管显示函数 uint32_t i = 0; while(i PIO0_1 &= 0x07; LPC_IOCON-PIO0_1 |= 0x01;/* CLK OUT */ GPIOSetDir(PORT3, 0, 1);/ Set PIO3_0 to output GPIOSetValue(PORT3, 0, 1);/ PIO3_0 output 1, close LED1 GPIOSetDir(PORT3, 1, 1);/ Set PIO3_1 to outputGPIOSetValue(PORT3, 1, 1);/ PIO1_1 output 1, close LED2 GPIOSetDir(PORT0, 2, 1);/ Set PIO0_2 to output GPIOSetValue(PORT0, 2, 1);/ PIO0_2 output 1, close FAN LPC_IOCON-R_PIO1_1 &= 0x07; LPC_IOCON-R_PIO1_1 |= 0x01; GPIOSetDir(PORT1, 1, 1);/ Set PIO3_2 to outputGPIOSetValue(PORT1, 1, 1);/ PIO3_2 output 1,Speaker turn off Seg7Led_Init();/初始化数码管 Seg7Led_Put( );/ Output SysTick_Config(48000); GPIOSetValue(PORT3, 0, 0);/ PIO3_0 output 0, Turn on LED1 GPIOSetValue(PORT3, 1, 0);/ PIO3_1 output 0, Turn on LED2 delay_ms(200); GPIOSetValue(PORT3, 0, 1);/ PIO3_0 output 1, Turn off LED1 GPIOSetValue(PORT3, 1, 1);/ PIO3_1 output 1, Turn off LED2 SPI_IOConfig(0); SPI_Init(0, 8, 2); /初始化M0板的显示屏 OLED_Init_I(); UARTInit(115200); /初始化串口 NVIC_SetPriority(UART_IRQn, 2); printf(rnrnFS_11C14 Main Menurn); delay_ms(250); SPI_IOConfig(1); /* 初始化zigbee发送设备 */ SPI_Init(1, 8, 2); SPI752_Init(1, 115200); /* 初始化zigbee发送设备 */ for(k =0 ; k 9) k = 0;Seg7Led_Put(k);k+;delay_ms(250);if(counter1 1)collect_data(data.temp,data.hum,data.light);/显示温湿度和亮度函数adc_set(data.adc);/显示电池函数acc_set(data.acc); /显示三轴函数data.type = itype;/设置发送数据类型data_pakget_trans(data); /发送数据counter1 = 0;if(ZigBee_GetChar(p) /接收上层发下来的命令 if (i 8) = p5 ) if (p1 - 0 = ID_NUM) /如果设备号一致则执行命令switch (p4) /如果有设备已开启信息case LED_ON: GPIOSetValue(PORT3, 1, 0); /开led2break;case LED_OFF: GPIOSetValue(PORT3, 1, 1); /关led2break;case FAN_ON:GPIOSetValue(PORT0, 2, 0); /开风扇break;case FAN_OFF:GPIOSetValue(PORT0, 2, 1); /关风扇break;case LED7_ON:Led7_On();/数码管倒计时break;case LED7_OFF:Seg7Led_Put( );/关数码管break;case SPEAKER_ON: speaker_op(1); /开报警器break;case SPEAKER_OFF: speaker_op(0);/关报警器break;case ANSWER:GPIOSetValue(PORT0, 2, 6); /风扇加速break; default: printf(not write commod); break; /判断是否有刷卡,返回值不为0则有人刷卡if(RFID_Test(data.rfid)/*!GPIOGetValue(PORT2, 8)*/)GPIOSetValue(PORT3, 0, 0); /刷卡显示灯led1亮data.type = rtype; delay_ms(250);data_pakget_trans(data);GPIOSetValue(PORT3, 0, 1); /刷卡显示灯led1灭/ Go to sleep to save power between timer interrupts _WFI(); 5、 实训总结:综上所述,本文通过对智能家居及其功能的介绍,展示智能家居的现代生活中的必要性。在介绍国外智能家居发展近况及国内发展现状后,对我国智能家居发展提出有利建议。最后,预想出我国未来智能家居的发展趋势。6、 实训成绩:
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!