还剩18页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
安徽大学课程设计报告(嵌入式课程设计)题 目 多功能智能插座设计报告 学生姓名(学号)陈超(P71214054)董芳(P71214005) 陆天乐(P71214024)叶旭媛(P71214047) 张欣(P71214045)曲畅(P71214058)于子潇(P71214003) 课程院(系) 电子信息工程学院物联网工程系 指导老师姓名 刘瑜 职称/学位 副教授指导老师所在单位 安徽大学电子信息工程学院 完成时间 2014 年 12月多功能智能插座设计报告摘要:智能家居是物联网的主要应用之一,它将实现家居的智能化和信息化智能插座是智能家居的重要组成部分,它具有供电远程控制、用电状态监测、通信组网等功能,目前市场上的智能插座功能还达不到智能家居系统的要求,因此我们需要设计出新型智能插座我们设计的智能插座主要利用arduino单片机及esp8266串口WIFI等模块,不仅可以做到传统的过载保护,供电定时预约还可以利用微信平台与家用电器实现交互控制,实现远程遥控,借助微信平台还可实现社交物联网,该产品随着智能家居系统的推广,将拥有良好的市场前景本文首先介绍了传统的几种智能插座及其功能,并提出了一种新型的智能插座设计方案从其系统设计方案上介绍了其功能以及其组成部分,并分硬件和软件部分详细的介绍了多功能智能插座的设计方案关键字智能插座;arduino;esp8266串口wifi;蓝牙目录TOC\o1-3\u1引言12智能插座发展现状13系统设计方案
23.1智能插座的功能
23.2智能插座设计实现34硬件设计方案
34.1单片机的选择与简介
44.
1.1相关参数
44.
1.2供电方式
44.
1.3输入输出口简介
54.2ESP8266串口WIFI模块简介
54.3HC05蓝牙模块简介
64.4按键电路75软件设计方案
75.1程序分析
85.
1.1延时程序的设计
85.
1.2按键部分
95.
1.3按键扫描部分
105.
1.4继电器的开关控制
105.
1.5红外传感器障碍物检测
115.2软件调试116小结121引言智能插座的未来发展是成为智能家居的组成部分智能家居是物联网的重要应用,它将融合自动化控制系统、计算机网络系统和网络通讯技术于一体,将各种家庭设备如家电设备、照明系统、安防系统、网络家电等通过智能家庭网络联网实现自动化本文介绍了多功能智能插座的功能和设计方法,它具有智能控制、本地监测、通信组网等多种功能,将满足智能家居系统和物联网的发展需求智能插座的应用不能单一实现,它必须与智能家居系统相配套,并在系统中发挥作用随着智能家居系统的快速发展,智能插座的应用将越来越广泛市场现有的绝大多数插座不具备任何智能功能,极少所谓的智能插座,也只具备定时开关功能,无法对非正常状况进行监测与断电控制,不具备真正的智能功能,并且价格昂贵现有的插座已经不能适应各方面的需要,多功能的智能插座有着强大的市场需求为此,本文研究了一种以arduino单片机为信息处理核心的多功能智能插座,这种插座具有过流过压保护、定时开通、定时关断、远程控制及电量监控远程查询等功能2智能插座发展现状传统的电源插座功能仅是分配多路电源,而智能插座除具备该功能外,还具有智能化的特点,普通插座和智能插座从外形到功能均有较大不同,如图一所示为智能插座与普通插座的对比图智能插座普通插座图一智能插座与普通插座对比图目前市场上已经出现了多种不同功能的智能插座,主要可以分为以下几类
(1)漏电保护型智能插座该类插座具有漏电保护、超限断电等功能,当发现超过一定幅值的电流未与零线构成回路,认为漏电并立刻切断供电,同时在输入电压过高、用电负荷异常时可自动切断电源,保护电器
(2)定时型智能插座该类插座主要为用户分时用电而设计例如在电价便宜时启动电热水器、洗衣机等工作,从而节约电费该类插座一般具有时钟功能,可对插座中的每一个插口进行编程,控制电源定时开断
(3)主路控制型智能插座该类型插座一般有一个主路,其它为辅路如电脑主机断电后,判断出该主路无电流,则切断整个插座的电源,这样当电脑关机后,可以将辅路上的其他设备如显示器、音箱等也进行断电,从而减少待机功耗,提高用电安全性
(4)遥控型智能插座插座中的每一路都可以由无线遥控器进行远程控制,该类插座一般需要同时配一个无线遥控器,通信方式一般为红外或小无线,也可声控
(5)计量型智能插座这类插座的功能类似于单相多功能电表,它可以计量插座中用电设备的电压、电流、功率、电能值等该类插座一般配有按键和LCD屏,也可将数据传送到电脑上,分析设备的用电情况图1中的智能插座即为此类由以上几类智能插座的分析可以得知,智能插座内部均集成了微处理器芯片,可进行智能处理,但目前的智能插座设计以提供单一的保护、监测或控制为主,产品功能较为单一,很难实现信息化和远程控制,还无法达到智能家居系统的应用要求3系统设计方案
3.1智能插座的功能为满足智能家居系统的需求,我们需要设计出新型的智能插座,其必须具有智能化、信息化的特点,除具有电源分配功能外,还应该具备以下功能
(1)过载及漏电保护功能当用电器超出预设阈值时,自动切断电源,以实现对家用电器及线路的保护
(2)定时预约功能可利用按键输入定时时间,使智能插座在某一时间节点时打开或关闭电源如利用按键设置开电源定时时间3小时,关电源定时时间4小时,则在设置定时3小时之后主控器会自动控制开继电器,在设置定时4小时后,主控器会自动控制关继电器,以实现供电的定时预约功能
(3)远程控制功能结合蓝牙,串口WIFI等通信模块实现近距离或远距离的自动化控制,实现远程实时打开或关闭家用电器通过开发与微信平台的接口,无论你身在何方,利用微信公众号输入指令即可完成对家用电器设备的控制
(4)用电量监测功能,可实现实时远程查看在某一时间节点后的耗电量及当前设备的功率可在微信公众好号中输入对应的指令,完成对相关信息的查询
3.2智能插座设计实现如下图2所示,我们设计的智能插座由以下几个部分构成主控制器通信模块按键电路信号检测模块传感器模块继电器控制部分图2智能插座系统结构图1主控制器主控制器主要由一片arduino单片机构成,是整个智能插座的核心,负责整个系统的测量、控制、通信、管理,arduino单片机是一款开源的8bit处理器,兼容性比较强,开发难度较为容易,因此在本课程设计中以arduino单片机作为核心芯片2通信模块智能插座通过无线通信模块与主控制器进行数据交互,我们设计的智能插座利用esp8266串口WIFI模块以及蓝牙模块作为通信模块,实现远程控制插座的通断电以及将主控器采集的功率等数值传上互联网实现,利用微信公众好可查看相关数据以及完成家电设备的控制3按键电路采用单按键的输入方式触发外部中断用于开启定时模式,以及完成定时时间的设定4信号检测模块输入的电压、电流强电信号先通过分压电阻、锰铜片等转换为弱电信号,再输入给专用的计量芯片,如ATT7022B,其内部具有A/D转换、数字运算电路,可自动完成多路电压电流有效值、功率等计算,生成的数据由MCU抄取后处理5传感器模块由于本系统中很多模块都会耗电,在无人使用时可关掉总电源,因此可用主动式红外模块监测智能插座是否有人使用,若无人使用,则关掉电源,已达到节电的目的6继电器模块继电器是利用单片机高低电平控制插座通断电的桥梁,可实现小电压控制大电压4硬件设计方案
4.1单片机的选择与简介如下图所示为本课程设计所使用arduino单片机的实物图,arduino单片机版本众多,本课程设计使用的是arduinoUNO,下面对arduinoUNO进行简单介绍HYPERLINKhttp://kb.open.eefocus.com/index.phptitle=%E6%96%87%E4%BB%B6:ArduinoUno_R3_Front_450px.jpgINCLUDEPICTUREhttp://kb.open.eefocus.com/images/a/a8/ArduinoUno_R3_Front_450px.jpg\*MERGEFORMAT图3arduino单品机实物图
4.
1.1相关参数处理器ATmega328工作电压5V输入电压(推荐)7-12V输入电压(范围)6-20V数字IO脚14其中6路作为PWM输出)模拟输入脚6IO脚直流电流40mA
3.3V脚直流电流50mAFlashMemory32KB(ATmega328,其中
0.5KB用于Bootloader)SRAM2KB(ATmega328)EEPROM1KB(ATmega328)工作时钟16MHz
4.
1.2供电方式ArduinoUNO可以通过3种方式供电,而且能自动选择供电方式外部直流电源通过电源插座供电电池连接电源连接器的GND和VIN引脚USB接口直接供电电源引脚说明VIN---当外部直流电源接入电源插座时,可以通过VIN向外部供电;也可以通过引脚向UNO直接供电;VIN有电时将忽略从USB或者其他引脚接入的电源5V---通过稳压器或USB的5V电压,为UNO上的5V芯片供电
3.3V---通过稳压器产生的
3.3V电压,最大驱动电流50mAGND---地脚
4.
1.3输入输出口简介14路数字输入输出口工作电压为5V,每一路能输出和接入的最大电流为40mA每一路配置了20-50K欧姆内部上拉电阻(默认不连接除此之外,有些引脚有特定的功能串口信号RX(0号)、TX(1号):与内部ATmega8U2USB-to-TTL芯片相连,提供TTL电压水平的串口接收信号外部中断(2号和3号)触发中断引脚,可设成上升沿、下降沿或同时触发脉冲宽度调制PWM(
3、
5、
6、
9、
10、11)提供6路8位PWM输出SPI(10SS,11MOSI,12MISO,13SCK)SPI通信接口LED(13号)Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭6路模拟输入A0到A5每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整输入上限除此之外,有些引脚有特定功能AREF模拟输入信号的参考电压Reset信号为低时复位单片机芯片
4.2ESP8266串口WIFI模块简介ESP8266是一款高度集成的芯片,该芯片专门针对无线连接的需求而开发,是一个完整且自成系统的Wi-Fi网络解决方案它能够搭载软件应用,也能通过另一个应用处理器卸载所有的Wi-Fi网络功能ESP8266具备强大的片上处理和存储功能,这使其可通过GPIO口集成传感器及其他应用的特定设备,既缩短前期开发时间,也最大限度减少运行中系统资源的占用ESP8266高度片内集成,仅需极少的外部电路,而其包括前端模块在内的整个解决方案,可将设计中PCB所占的空间降到最低产品特性•SDIO
2.
0、SPI、UART接口•32-pinQFN封装•集成RF开关、balun、LNA、24dBmPA、DCXO和电源管理单元(PMU)•集成RISC处理器、片上存储器和外部存储器接口•集成MAC/基带处理器•高品质的服务管理•高保真音频应用所需的I2S接口•所有内部供电均包含片上低压差线性稳压器•专有的无杂散时钟生成架构•集成WEP、TKIP、AES和WAPI引擎产品规格•
802.11b/g/n•Wi-FiDirectP2P、soft-AP•集成TCP/IP协议栈•集成TR开关、balun、LNA、PA和匹配网络•集成PLL、稳压器、DCXO和电源管理单元•
802.11b模式下+
19.5dBm的输出功率•小于10uA的断电泄露电流•集成低功耗32位CPU,可以兼作应用处理器•SDIO
1.1/
2.
0、SPI、UART接口•STBC、1×1MIMO、2×1MIMO•A-MPDUA-MSDU聚合
0.4ms的保护间隔•2ms之内唤醒并传递数据包•待机状态消耗功率少于
1.0mWDTIM
34.3HC05蓝牙模块简介HC05蓝牙模块与属于HC民用级串口蓝牙模块可用于各种带蓝牙功能的电脑、蓝牙主机、手机、PDA等智能终端配对,兼容单片机系统当主从模式两个蓝牙模块配对成功后,可以取代串口线通讯为无线蓝牙HC05蓝牙模块的主要参数如表1所示,与单片机的连接如图6所示表1HC05蓝牙模块参数说明接口TTL电平,兼容
3.5V/5V单片机波特率4800-1382400,默认9600通讯距离10米(空旷环境)对外接口6pin排针工作电流配对中30—40mA未通讯1—8mA通讯中5—30mA图6单片机与蓝牙模块的连线图
4.4按键电路如图7所示即为按键电路的原理图,当按键按下时I/O口会接收到一个由高电平到低电平的下降沿,在中断前将I/O口的电位赋为高电平,中断发生时会有一个由高到低的跳变,中断完成后再将I/O口复为高电平等待下一次跳变,用多个按键即可触发多个中断完成智能插座的相关设置图7按键电路原理图5软件设计方案软件设计主要实现插座上没有连接电器时自动断电、用户可远程控制插座的通断电、用户可手动设置让插座定时通断电这三个功能用Arduino语言先书写相应的程序块,以函数的形式体现,然后在主程序中调用这些函数程序部分主要包括延时部分、按键部分、按键扫描部分继电器控制部分和蓝牙模块部分设计的思想是首先进行初始化,设置好端口并初始值,红外传感器用于检测插座上是否有遮挡物(即是否有插头在使用),若有插头使用,用户可以通过手机终端控制继电器的开与关进而控制插座的通断电;若无插头使用,则继电器无法打开,插座不能通电另外使用循环程序设置定时时间也是关键而蓝牙模块的功能则是用与终端设备的通信,如本实验使用的手机终端,当手机发送“开”或“关”的指令后,蓝牙模块接收到并进行响应#0;#0;#0;开始初始化设置插座是否在使用用户可控制通断电断电是否需要延时启用延时程序是否是初设时间后断电否通电断电图8主流程图初始化的设定包括个引脚的定义,初始电平,按键一次的延时时间和波特率
5.1程序分析
5.
1.1延时程序的设计voidtimeadd{delay20;ifdigitalRead3==0{time=time+1000;}digitalWrite3HIGH;}为避免按键扰动设置有20ms的延时,检查引脚3(该引脚连接按键,按下对应为“0”)是否为“0”,若为“0”则延时加1000ms,若没有延时指令则引脚3写入高电平因此可以通过多次按键实现延时时间的累计当然这里为了便于观察现象设置time为1000ms,也可以增大按键一次所延时的时间,以满足用户的需求#0;#0;#0;开始按键扰动检测引脚3=0Time=time+1000是不延时结束否图9延时程序流程图
5.
1.2按键部分voidbutton{KEY_NUM=0;MsTimer2::settimetiming_switch;MsTimer2::start;}voidtiming_switch{digitalWriterelayHIGH;time=1000;MsTimer2::stop;}这里为了简洁使用MsTimer2库函数,它是一个定时器中断函数,当time溢出时就跳转至timing_switch,结束中断需要注意的是当使用这个函数时需要事先在Arduino的函数库中导入该函数文件当然也可以自己编写中断程序
5.
1.3按键扫描部分voidScan_KEY{ifdigitalReadKEY==LOW{delay20;ifdigitalReadKEY==LOW{KEY_NUM=1;whiledigitalReadKEY==0;{;}}如果并不是要进行定时设置却碰到了按键,这时候很可能会出现错误的响应,因此,加入按键扫描的检查就十分有必要程序中,首先做一次按键检查,判断按键是否按下,若按下,延时20ms后再次检查,若仍为按下则进行确认这样就需要我们在按键时停顿一会,避免了扰动产生的问题
5.
1.4继电器的开关控制ifUart_Buffer
[0]==OUart_Buffer
[1]==NUart_Buffer
[2]==!{digitalWriterelayLOW;Serial.printlnRelayONComplete!;fori=0;i20;i++{Uart_Buffer[i]=0;}}ifUart_Buffer
[0]==OUart_Buffer
[1]==FUart_Buffer
[2]==FUart_Buffer
[3]==!{digitalWriterelayHIGH;Serial.printlnRelayOFFComplete!;fori=0;i20;i++{Uart_Buffer[i]=0;}#0;#0;#0;开始接收数据打开继电器关上继电器ON!OFF!开插座断插座图10继电器流程图首先接收蓝牙接收终端发过来的ASCII码并判断,若设置”ON!”和”OFF!”接收到为“ON!”则打开继电器,接收到为“OFF!”则关闭继电器,从而实现对插座的通断电控制
5.
1.5红外传感器障碍物检测voidbarrier_dete{ifdigitalRead2==1{delay50;ifdigitalRead2==1{digitalWriterelayHIGH;}}}红外传感器通过红外线的反射来检测障碍物,红外线传感器测量时不与被测物体直接接触,因而不存在摩擦,并且有灵敏度高,反应快等优点如果有障碍物则可以控制插座开关,如果无障碍物返回高电平,无法打开继电器
5.2软件调试Arduino的程序层次清晰,便于检查和修改,调试起来比较方便,程序的运行分为两个步骤,第一步就是要在电脑进行编译,这时候能够查出程序中的语法错误;第二步就是将程序下载到板子上进行运行,控制插座的通断电和定时时间的检验,来判断逻辑性错误,纠正思路、方法比如定时通断电,我们遮挡住红外传感器,按下延时按键几次,观察小灯亮的时间是否与预计一致手机终端使用“蓝牙串口通信助手”进行调试初次使用时连接蓝牙设备配对,可设置ASCII和HEX输入输出类型,课选择键盘模式,预置好发送的内容,即可在需要时与已连接的设备通信6小结课程设计是培养学生综合运用所学知识发现提出分析和解决实际问题锻炼实践能力的重要环节是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,物联网将应用于生活的各方各面,其中的智能家居更是人们所关注的重点领域,所以我们此次的课程设计为多功能智能插座的应用与设计回顾起此次嵌入式课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在差不多俩个月的日子里,学到很多很多的的东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识过而能改,善莫大焉在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观这次课程设计已经顺利完成,我们在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解我想我们在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!通过这次课程设计还使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力在设计的过程中遇到问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维一切问题必须要靠自己和团队一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升通过这次课程设计我们也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决其次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不絮最后,此次课程设计是通过我们小组成员的共同努力和动脑完成的,虽然内容并不是很复杂,但是我们觉得设计的过程相当重要,培养了我们独立思考、团队合作以及动手操作的能力,我们学到了很多,收获了很多我觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程小组人员的配合、相处,以及自身的动脑和努力,都是以后工作中需要的所以这次的课程设计意义很深,与同学的共同学习、配合、努力的过程也很愉快,另外还要感谢老师的耐心辅导参考资料[美]MassimoBanzi著于欣龙郭号赟译.爱上Arduino.人民邮电出版社,2011杨欣莱洛克斯王玉凤刘湘琴.电子设计从零开始.清华大学出版社2010郑娴姚铭.智能家庭网络的研究现状与发展趋势.智能建筑与城市信息
20068.徐伟姜元建王斌.智能插座在智能家居中的应用与设计.中国机器仪表2010陈海旺张振娟黄明.智能家居中无线智能插座的涉及.电视技术2013姚文轩滕召胜熊静雯邓远宁谭霞.多功能智能插座设计.企业技术开发2010附录一原理图arduino原理图蓝牙模块原理图二程序#includeArduino.h#includeMsTimer
2.h#definerelay4charUart_Buffer
[20];charUart_Count=0;chartemp=0;#defineKEY5inttime=1000;unsignedcharKEY_NUM=0;voidsetup{attachInterrupt1timeaddCHANGE;digitalWriteKEYHIGH;pinModerelayOUTPUT;Serial.begin9600;}voidtimeadd{delay20;ifdigitalRead3==0{time=time+1000;}digitalWrite3HIGH;}voidloop{bluetooth;barrier_dete;Scan_KEY;ifKEY_NUM==1{button;}}voidbarrier_dete{ifdigitalRead2==1{delay50;ifdigitalRead2==1{digitalWriterelayHIGH;}}}voidbutton{KEY_NUM=0;MsTimer2::settimetiming_switch;MsTimer2::start;}voidtiming_switch{digitalWriterelayHIGH;time=1000;MsTimer2::stop;}voidScan_KEY{ifdigitalReadKEY==LOW{delay20;ifdigitalReadKEY==LOW{KEY_NUM=1;whiledigitalReadKEY==0;{;}}}}voidbluetooth{unsignedchari;whileSerial.available0{temp=Serial.read;iftemp==O{Uart_Count=0;}Uart_Buffer[Uart_Count++]=temp;ifUart_Count==19{Uart_Count=0;}ifUart_Buffer
[0]==OUart_Buffer
[1]==NUart_Buffer
[2]==!{digitalWriterelayLOW;//打开继电器Serial.printlnRelayONComplete!;fori=0;i20;i++{Uart_Buffer[i]=0;}}ifUart_Buffer
[0]==OUart_Buffer
[1]==FUart_Buffer
[2]==FUart_Buffer
[3]==!{digitalWriterelayHIGH;//关闭继电器Serial.printlnRelayOFFComplete!;fori=0;i20;i++{Uart_Buffer[i]=0;}}}}负载继电器模块信号测量传感器按键电路通信模块UART主控制器图4ESP8266串口WIFI模块图5HC05蓝牙模块。