- UID
- 1023166
- 性别
- 男
- 来自
- 燕山大学
|
[导读] 基于深联华单片机的无线智能插座
关键词:无线智能插座深联华
一、项目设计背景及概述
物联网是新一代信息技术的重要组成部分。顾名思义,物联网就是物物相连的互联网。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。物联网就是“物物相连的互联网”,其中智能家居是物联网的一部分。
随着人们生活水平的不断提高,人们对生活质量的要求不断提高,方便快捷是人们永恒追求的目标。在家居娱乐和电器控制方面,智能家居有突出表现,包括背景音乐系统、数字网络客厅、家居综合布线、灯光控制和电器控制等功能在内的系统,使人们的生活从各个方面变得更加安全、舒适、简单。
目前市场上,智能家居的主要接受人群仍然是一部分高端人群。业内人士认为,阻挠智能家居发展脚步的主要是价格和消费理念两方面的原因。智能家居还属于高档消费,一套系统要几万元不等。尽管接受度和认同度与以前相比已经大有提高,但仍主要局限于买别墅的高端人群和热爱生活、享受生活的年轻白领一族。另外,目前许多人对智能家居系统功能的认识不足,许多设计师 也缺乏相应的专业知识去向业主推广,导致一部分实际上有需求的业主对智能家居还一无所知。但是近年来,智能家居的普及度正在慢慢提高,随着国外同行业产品不断涌入我国,以及与国内智能家居行业的竞争加剧,客观上逐渐加大了宣传力度,并产生互补。今后我国的智能家居应走品质与服务并重的路线,未来智能家居发 展前景广阔。
2013年前三季度,我国网民数量达6.08亿,互联网普及率45.4%,基于以上分析,以及通用性方面的考虑设计了基于深联华单片机的无线智能插座。安装了ADSL宽带的用户简单设置路由器以后就可以将插座接入互联网,通过Android客户端就可以实现远程控制。该插座有四个单独插座,用户可以根据需求将需要控制的电器插到插座上。每个单独的插座都可以单独设定开启和关闭,也可以设定定时开启或者定时关闭,同时无线智能插座还有过流保护的功能,通过Android客户端设定插座最大额定功率(四个单独插座的总功率),如果实际额定功率大于设定额定功率时四个单独插座全部关闭,同时关闭定时功能,这样就能防止过流烧毁线路,避免更大的损失。
二、项目设计原理
1、原理概述
基于深联华单片机的无线智能插座由电源单元、功率输出单元、控制单元、电流采集单元、存储单元、实时时钟单元、WIFI模块以及手机客户端组成。
电源单元包括两部分,一部分是将220V交流输入转换成12V直流输出,为整个系统提供电源;另一部分是将12V直流电源转换成正负5V,为控制单元,电流采集单元,存储单元,实时时钟单元,WIFI模块提供电源。功率输出单元控制插座的开启和关闭,为要控制的电器提供220V电源。控制单元是整个系统的核心,为各个单元提供控制信号。电流采集单元用来采集插座的电流,然后将信号输入给控制单元,用于电流检测,防止过流。存储单元用来保存四个单独插座的状态,系统下次上电的时候就会从存储单元读取数据。实时时钟单元为定时功能提供时钟信号,同时这个单元有备用电池保证系统掉电后时钟单元正常计时。WIFI模块负责插座和无线路由器的通信,使用之前将模块的端口号在无线路由上做端口映射,这样就能实现远程控制。
手机客户端是基于Android系统的,可以向智能插座发送指令,智能插座接收到指令后执行相应的操作,同时向手机客户端返回数据。
2、硬件设计原理
电源单元设计原理:
电源单元由两部分构成,其中220V交流电源转12V直流电源模块使用的是成品的开关电源模块,可以提供最大1A的电流,满足系统需求,并且开关电源体积小效率高。将这个模块集成在系统上另一个原因是方便用户使用,直接通上220V电源就可以使用。
电源单元的另一部分是将12V直流转换为正负5V。这部分使用两片MC34063电源芯片,通过设计合理的外围电路,可实现分别输出+5V电压和-5V电压。其中电流采集单元需要双极性电源,所以其中一路MC43063产生-5V电压。MC34063电源芯片可以达到较高的效率,价格低廉,性能可以满足系统设计要求,故而选该芯片作为电源芯片。
功率输出单元设计原理:
功率输出单元主要包括继电器,三极管等。继电器用来控制对应插座的电源通断,三极管则用来控制继电器的通断,单片机通过控制三极管进而实现对插座的控制。其中继电器型号为HJR-3FF,240V时可以通过7A电流,该继电器需要12V电源供电,这样可以起到与控制单元电气隔离的作用。三极管采用8050,最大可以提供1A的驱动电流,完全可以满足设计要。
控制单元设计原理:
该系统的主控芯片选用深联华SC89F5162单片机,SC89F5162是一种高速高效率8051兼容单片机。在同样的震荡频率之下,较之传统的8051单片机它具有更快的速度,性能更优越。
该系统的设计使用了单片机的定时器0、SPI、ADC、EUART1、IO资源。定时器是为串口接收数据提供定时时间,用来判断一帧数据是否接收完毕;SPI控制93C46,保存和读出插座的状态数据;ADC用来采集电流采集单元的输出电压,为检测是否过流提供数据;EUART1是和WIFI模块进行通信的,接收来自手机客户端的数据,并向客户端返回数据。IO用来控制时钟单元和功率单元等。
控制单元是系统的核心,也是知识产权保护的核心,保护好单片机不被破解是重要方面,深联华单片机采用了多种防破解技术,高达32位的密码生成器,白噪声密码没有规律可循等等这些特点决定了代码的安全性很高,这就能很好的保护开发者的利益。
电流采集单元设计原理:
对交流电流进行采集需要用到交流互感器,该系统采用DL-CT03C1.0精密电流互感器,变比为1:1000,最大可测电流为10A,输出端最大可接电阻为50欧姆,这里选择47欧姆电阻。由于电阻上电压很低,所以不可以直接对电阻上的交流电压进行整流,因此在整流之前使用LM358对交流电压信号进行7.8倍放大。运放所放大的信号为交流信号,需要一个双极性电源进行供电,正好使用电源模块提供的正负5V电源。将放大的电压信号通过桥整流电路进行整流,然后使用电容滤波,再通过一个低通滤波电路将信号送入单片机AD引脚。
存储单元设计原理:
存储芯片选用93C46芯片,该芯片使用SPI通信方式,具有128个字节的容量。系统需要保存的数据量小,该芯片可以满足需求。
实时时钟单元设计原理:
实时时钟单元采用DS1302芯片,该芯片在掉电时可以使用备用电源,数据通信使用串行方式,占用IO较少,芯片价格低廉计时精确,完全能满足系统设计需求。
WIFI模块单元:
WIFI模块使用的是成品模块,通过串口与单片机通信。该模块可通过电脑设置参数,使用方便。
3、软件设计原理
在单片机软件设计时采用模块化编程的方法以及分层设计的思想。首先设计使用到的单片机资源的驱动程序,然后设计使用到的芯片的驱动程序,最后设计应用层的程序。
下面介绍各个.c文件的主要内容:
Initial.c文件主要是单片机系统时钟、定时0、串口1的初始化函数,以及串口发送数据的函数。
SPI.c文件包括单片机SPI资源的初始化,以及93C46芯片的驱动程序。
DS1302.c文件包括DS1302芯片的驱动程序,主要是对芯片的初始化,读写函数等。
ADC.c文件主要包括对单片机ADC资源的初始化函数,以及对采集到的数据进行处理的函数,文件使用的是官网提供的,但是有些地方有问题,进修改后可以正常使用。
OutletStatuePro.c文件主要是对插孔的结构体数据进行处理的函数,包括设置插孔的状态,得到插孔的状态,设置插到打开或者关闭的定时时间等等。
Main.c文件是项目的主文件,这里首先是调用各个模块的初始化函数,以及调用相应的驱动函数完成对应的功能。
下面具体介绍程序执行流程:
程序开始运行后首先调用各个模块的初始化函数,完成对单片机以及其他芯片的初始化工作。下一步就是读取93C46中数据,然后就是就如主循环。在主循环中首先判断串口是否正在接收数据,如果正在接收数据则不执行解析,如果接收完毕则开始解析接收到的数据。根据不同的指令执行相应的操作,具体操作可看代码注释。解析工作完成后读取一次DS1302的数据,然后开始根据各个插孔的当前状态执行相应的操作,在这个处理过程中使用了状态机的概念,根据插孔的状态执行相应的操作,并且判断是否有插座处于开启状态,如果有的话就启动AD,判断当前功率是否超过设定功率,如果超过了设定功率则关闭所有插孔。
4、通信数据帧设计原理
手机客户端与智能插座的通信是通过互联网实现的,在这个系统的设计中我们采用UDP协议,在这个基础上设计了简单的通信协议,下面就具体说明一下数据格式的定义。
帧头指令数据
表2.41 帧结构
表2.41表示的是基本的帧结构,一帧数据由三部分构成,帧头为0xFF占用一个字节。指令占用一个字节,用来表示该帧数据的作用。数据部分表示传输的数据,占用的字节数不固定。
表2.42 指令和数据说明
表2.42详细说明了各个指令的作用,以及指令后要跟的数据的作用,通过简单的协议可以实现智能插座功能。指令和数据都是以一个字节为单位,方便程序处理。
5、手机客户端与智能插座的通信过程
这里具体说明一下手机客户端与智能插座的通信过程,并非讲解手机客户端如何使用,手机客户端的使用说明可以查看手机客户端说明书。
手机客户端可以通过域名和IP地址两种方式与插座通信,在这里使用的是花生壳的域名解析服务。使用域名的好处是即使ADSL拨号的IP地址改变了也能与插座通信(具体原理不做解释),但是网络状况不好的情况下域名解析服务会有一些延时。使用IP地址的好处是速度快一些,不需要域名解析服务,但是一旦ADSL重新拨号就不知道新的IP地址是什么。所以可以根据实际情况作出选择。
手机客户端打开以后做一些基本设置,然后客户端就是周期性的向智能插座发送查询插座状态的指令,保持客户端与智能插座状态保持同步。如果不能正常通信,客户端的插座列表是无法列出的。用户可以根据需求设定各个插孔的状态,设定完成后就可以关闭客户端。如果想知道插座的状态可以打开客户端,刷新一下可以获取插座状态。客户端与智能插座在同一个局域网内也实现通信,将客户端与智能插座连接到同一个路由上,设置客户端的IP地址为插座的IP地址即可,这样客户端与插座便可实通信。
三、项目设计框图
1、硬件设计框图
2、软件设计框图
四、测试结果
四个插座基本开关功能可以实现,关闭状态下定时开启的功能可以实现,开启状态下定时关闭功能可以实现,关闭后定时开始和定时关闭同时设定功能可以实现。实际功率大于额定功率后所有插座关闭,删除定时器功能可以实现,也就是过流保护功能可以实现。
通过视频可以查看具体功能实现。
五、软硬件及客户端待优化和改进方面
由于时间关系一些地方做的不够完善,以下说明为下一步的改进方向:
硬件方面:原理图上面设计了按键功能,通过按键可以打开和关闭,但是作品中并没有加上这个功能,下一步将按键加上,这样更方便使用。
将手工焊接的板子设计成PCB,向实际产品靠近。
将8050三极管换成8550三级,避免上电后关闭的插座会接通一下。
软件方面:进一步优化代码,实际中不用实时检测各个插座的状态,一秒钟检测三到四次即可,其他时间让单片机进入低功耗状态,降低功耗。
使用看门狗功能,保证系统的稳定性。
客户端方面:客户端上可以增加登陆验证,登陆的时候必须输入码,保证安全。另一方面客户端与插座之间也可以增加通信验证,进一步提供安全性。
以上就是基于目前情况提出的改进措施。
由于比赛侧重单片机的使用,所以这个文档中没有具体介绍手机客户端的开发,只提供了手机客户端app和使用说明书。手机客户端是有夏胜飞同学完成,我主要做硬件方面的工作。在这个系统的开发过程中我们共同讨论客遇到的问题,合作很默契,虽然作品有待改进,但是主要功能都已经上实现。
|
|