智能家居管理系统
0赞文章来源:百度文库http://wenku.baidu.com/view/39b52567ddccda38376baf98.html
摘要(中英文)
基于物联网的思想,系统由三部分组成,终端部分、传输部分和服务器部分,终端部分和传输部分分别由一片MSP430F2616单片机控制,终端部分采集、控制,传输部分由一片单片机与W5100连接用于连接互联网,在PC机上面建有服务器,能在其它客户端访问网页并通过网页控制。
Based on the content of “The Internet of things”, this system consists of three parts, terminal part, transmission parts and server part, terminal part and transmission part are both controlled by MCU MSP430F2616.And the terminal part in charge of collecting information and controlling “things”, while the transmission part consists of a MCU and part SW5100 part. There is a server in a PC, we can scan the webpage as a client and control your device via this webpage.
1. 引言
系统的设计基于物联网的思想,物联网是新一代信息技术的重要组成部分,其英文名称是“The Internet of things”。其基本思想是以互联网为媒介,实现远程监督、控制。它在各个领域有着非常广泛的应用。本系统基于这种思想,提供了一种具体的实现方案,以四个LED为例,四个LED由控制终端控制,通过传输部分传输到PC机服务器端,通过其它互联网端能登陆网页,并能操作控制端,以实现远程监控。本系统除了能控制4个LED,还能够采集温度,并在网页上实时更新,以该系统为模板,可以扩展出更多的功能,实现更为复杂的功能。
2. 系统方案
控制部分和传输部分均用TI公司MSP430F2616主控芯片控制,传输部分由该单片机与W5100以太网模块完成网络连接。用户可通过电脑、手机等客户端上网,完成远程监控。
系统设计方案用框图如下所示:
图 2-1
3. 系统硬件设计
方案论证及选择
SPI转以太网模块
方案一:采用独立的以太网控制器ENC28J60,ENC28J60采用业界标准串行外设接(SPI)的以太网控制器ENC28J60具有以下主要特征:符合IEEE 802.3协议。内置10Mbps以太网物理层器件(PHY)及媒体访问控制器(MAC),可按业界标准的以太网协议可靠地收发信息包数据。具有可编程过滤功能。特殊的过滤器,包括Microchip的可编程模式匹配过滤器,可自动评价、接收或拒收Magic Packet,单播(Unicast)、多播(Multicast)或广播(Broadcast)信息包,以减轻主控单片机的处理负荷。l0bps SPI接口。业界标准的串行通信端口,使得低至18引脚的8位单片机也具有网络连接功能。
方案二:采用SPI转以太网控制器W5100。W5100 是一款多功能的单片网络接口芯片,内部集成有 10/100 以太网控制器,主要应用于高集成、高稳定、高性能和低成本的嵌入式系统中。使用 W5100 可以实现没有操作系统的 Internet 连接。W5100与 IEEE802.3 10BASE-T和 802.3u 100BASE-TX兼容。W5100 内部集成了全硬件的、且经过多年市场验证的 TCP/IP 协议栈、以太网介质传输层(MAC)和物理层(PHY)。硬件 TCP/IP 协议栈支持 TCP,UDP,IPv4,ICMP,ARP,IGMP 和 PPPoE,这些协议已经在很多领域经过了多年的验证。W5100 内部还集成有 16KB 存储器用于数据传输。使用W5100不需要考虑以太网的控制,只需要进行简单的端口(Socket)编程。 W5100提供 3种接口:直接并行总线、间接并行总线和 SPI总线。W5100与 MCU接口非常简单,就像访问外部存储器一样。
方案选择:ENC28J60需要用uip0.9等转用于微处理器的传输协议,该协议不是标准的TCP/IP协议,删减了一些不常用的功能。使用ENC28J60必须要开发者熟悉TCP/IP协议。W5100是一款多功能的单片网络接口芯片,内部集成有 10/100 以太网控制器。开发者不需非常要熟悉TCP/IP协议。只需要进行上位机的Socket编程。所以我们选用W5100模块。
单片机模块
方案一:采用应用最广泛、最传统的8位C51系列单片机,C51系列单片机从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器,它的处理对象不是字或字节而是位。但传统的51系列也有很多不足之处,当晶振频率为12MHz时,系统时钟12分频后机器周期只有1μs,运行速度过慢,显然适应不了现代高速运行的需要。工作电压为5V,没有省电模式,功耗高等缺点。
方案二:采用以LPC2103为代表的 RAM7系列单片机,LPC2103单片机内置PLL倍频功能,可将内核的频率升至70MHz,内部嵌入高速的Flash,拥有128位宽度储存器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。但是,RAM7系列单片机在内部资源相同的条件下价格昂贵,适合于在高端行业中使用。
方案三:采用MSP43F2616单片机,430单片机是TI公司推出的16位的、具有精简指令集的超低功耗单片机,MSP43F2616其内部自带12位的AD和DA,还有高达120Kfash存储区,4KARM存储区,2个SPI接口、4个串口等,其最大特点是可以在线编程和这样可以为编程者调试程序提供很大的便利。其低功耗特点非常适合用在对功耗要求非常严格的环境。
方案选择:从上面的介绍可知道:51单片机价格便宜但功能少,且没有低功耗模式。LPC2103价格高功耗大,MSP430不仅功能多、价格合适而且有低功耗模式完全符合系统设计需要,故我们选用MSP430作为控制器。
温湿度采集模块
方案一:淘宝网上买成品模块。店家会给相关资料及一些技术支持。但成本非常高。
方案二:自己购买温湿度传感器DHT11和TI公司温度传感器TMP121。网上关于这两种传感器的资料相当多,所以很容易驱动传感器正常工作。并且可以更具实际需要更加灵活的设计应用电路。
方案选择:通过比较论证我们选择方案二,成本低、系统设计灵活。
无线通信模块
方案一:XL24L01P-D01是采用挪威NORDIC公司的nrf24L01p 2.4G无线收发IC设计的一款高性能2.4G无线收发模块,采用GFSK调制,工作在2400-2483M的国际通用ISM频段,最高调制速率可达2MBPS。XL24L01P-D01集成了所有与RF协议相关的高速信号处理部分,如:自动重发丢失数据包和自动产生应答信号等,模块的SPI接口可以利用单片机的硬件SPI口连接或用单片机的I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机。通信距离开阔地100米左右。NRF24L01可以支持一对多的模式。
方案二:采用串口无线通信模块。RF1100-232无线收发模块,采用TI公司的高性能CC1101无线通信芯片,433MHz免费ISM频段免许可证使用,串口232/485通讯方式,透明传输,应用简单无需编程即可使用,极大方便使用,提供多达256个信道,低功耗工作,直线传输距离可达200米。高抗干扰能力和低误码率,基于FSK的调制方式,采用高效前向纠错和信道交织编码技术,提高了数据抗随机干扰和突发干扰的能力。低功耗模块,最大发射功率10mW是一款低成本433MHz频段无线透传模块。
方案选择:方案一通信距离短、功耗相对较大、不易调试。方案二的串口数据传输非常方便我们在调试的时候观察数据,且通信距离更长、功耗更低。故我们选用方案二。
室内灯光控制模块、防盗模块、人数统计模块
方案一:直接在网上购买模块。
方案二:自己设计电路、组装调试。
方案选择:方案一成本高而且电路不能再次修改。方案二成本低,电路设计空间大。且对整个系统开发可以再次修改等。故我们选用方案二。
模块电路设计
SPI转以太网模块电路
串行外围设备SPI 总线技术是一种同步串口接口,具体的3~4线接口, 收发独立、可同步进行,其硬件功能很强,所以与SPI相关的软件相当简单, SPI 总线上可以连接多个可作为主机的MCU(微控制器)、 有SPI 接口的输出输入设备, 但在任一瞬间只能允许一个设备作为主机, SPI协议是以主从方式工作的, 这种模式通常有一个主设备和一个或多个从设备, 其接口包括以下 4 种信号:
(1)串行数据输入(也称为主进从出, 或 MISO)
(2)串行数据输出(也称为主出从进, 或 MOSI)
(3)串行移位时钟(也称为 SCK)
(4)从使能信号(也称为 SS)
数据的传输由 SCK 决定,根据 SCK 时序的差别分为两种, 数据在 SCK 的上升沿输出或者在 SCK 的下降沿输出。由于SPI 接口定义的灵活性,同时也导致了各个厂商生产的具有SPI 接口的芯片在工作时序上并不是一致的,所以使用时需要注意工作时序的差别。
W5100是一款多功能的单片网络接口芯片,内部集成有10/100以太网控制器,主要应用于高集成、高稳定、高性能和低成本的嵌入式系统。使用W5100可以实现没有操作系统的Internet连接,兼容IEEE802.3 10BASE-T 和 802.3U 100BASE-TX。W5100内部集成全硬件的、经过市场验证的TCP/IP协议栈、以TCP,UDP,IPV4,ICMP,ARP,IGMP和PPPoE,这些协议已经过多年市场验证。W5100内部集成有16K存储器用于数据传输,使用W5100不需要考虑以太网的控制,只需要进行简单的端口(Socket)编程。
W5100支持3种接口电路:直接并行总线、间接并行总线、SPI总线模式(支持模式0和模式3)。并行总线模式需要占用大量的IO口,为了MCU可以挂更多的外设,提高系统的应用功能。我们选择SPI总线模式。MISO 、MOSI、SCLK、CS、SPI_EN、INT分别接MSP430P6.0-P6.5。另外W5100的66-73可以接LED灯显示芯片的工作状态。为了降低功耗,没有接LED。另外我们采用3.3V给系统供电。也有效的降低了系统功耗。
W5100采用25M的晶振为其提供系统时钟。另外RJ485接口有一个电源指示灯和一个数据传输指示灯一直工作。所以W5100模块的功率还有待进一步优化。下图是W5100与MSp430连接示意图:
图 3-1
单片机模块
MSP430F2616具有92K闪存、4KB RAM;低电压供电1.8V至3.6V;低功耗: 活动模式: 1 MHz、2.2 V时365 µA ;待机模式(VLO): 0.5 µA ;关机模式(RAM保存): 0.1 µA ;从待机模式唤醒只需不到1 µs ;16位RISC架构,62.5ns指令周期时间 ;三通道内部DMA;具备内部参考(Internal Reference);采样与保持以及自动扫描特性的12位模数(A/D)转换器 、两个带同步功能的12位数模(D/A)转换器 、带三个捕捉/比较寄存器的16位定时器_A 、具备七个捕捉/影子比较寄存器(Compare-With-Shadow Register)的16定时器_B 、片上比较器 、四个通用串行通信接口(USCI)、USCI_A0以及USCI_A1 、支持自动波特率检测的增强型UART 、IrDA编码器和解码器 、同步SPI 、USCI_B0以及USCI_B1 I2C™ 同步SPI 具备可编程电平检测功能的电源电压监管器/监控器欠压检测器 。
本系统只需要单片机最小系统板,单片机外没有加如液晶、点阵等相对MSP430的“大功率”器件。其目的就是降低系统功耗。但同时为了方便以后添加其他应用我们引出了MSP430F2616所有的IO口,为了方便系统的调试引出了串口A0 、四个按键接P1.4-P1.4、四个LED等接P1.0-P1.3。用JTAG进行在线调试。
无线通信模块
无线通信我们采用了市面上已经有的通信模块。本系统采用TI公司的CC1101无线通信芯片做的模块。由于该芯片体积小、对布线有一定的要求,且为了减小系统开发的时间和成本。我们选择了购买市场现有的模块电路直接使用。
CC1101微功率无线数传模块,采用TI-Chipcon公司的高性能CC1101无线通信芯片(CC1100芯片的改进版,比CC1100更胜一筹,且无缝替换,程序完全相同),最大传输数率可达500Kbps,并可软件修改波特率,开阔地传输距离可达250-300米,具有无线唤醒等功能,灵敏度达到-110dBm,可靠性高。所以非常适合用在智能家居系统中。另外该模块工作在315/433/868/915MHz ISM/SRD波段。对人体的辐射更小。
室内灯光控制模块、防盗模块、人数统计模块
室内灯光控制子系统我们采用了4个LED灯模拟室内灯的开关状态控制,采用灌电流的方式驱动LED灯。另外用MSP430的P1作为外部中断入口,检测4个开关的状态。系统复位后,web服务器会给所有的灯发出关灯命令。所有灯均熄灭。当有按键按下时,灯的状态与当前灯的状态相反,并及时发送信息到web服务器,web服务器的数据会马上更新,并显示到网页上。
防盗模块子系统采用555芯片的单稳态电路,当2没有输入时,3脚输出低电平,电路处于稳态。当人触摸2脚(输入低电平)时,电路发生一次反转,3脚输出高电平。其输出高电平时间T= 1.1*R*C。同时三极管导通,LED灯亮、报警器开始报警。MSP430的P1.7检测到上升沿进入中断向web服务器发送指令。Web服务器接收到指令后记录日志并向业主指定的邮箱发邮件。
人数统计子系统 采用2组红外传感器进行检测。当有传感器被挡住时,比较器输出高电平。MCU将采集的信号进行处理后,通过w5100发送到web服务器中。另外该电路能更加精确的统计人数。只有当人先后经过2个传感器时,MCU才会向服务器发送指令。另外该电路也可以用在停车场,统计停车场停放车辆总数或剩余泊位等。
下面是各个模块电路图。
图 3-3
4. 系统软件设计
第一:软件设计总体框图
图 4-1
TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。
socket用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。
本服务器使用了socket编程,tcpip编程。考虑到报警信息必须接收到,所以通信采用了tcp协议。其工作方式如图,服务器主动打开等待连接,接受到连接后和客户端通信并且存储信息,当用户通过web改动设备的状态,例如关闭一盏灯,服务器主动发送关灯命令给客户端,客户端接受到命令执行关灯操作,然后再把灯的状态发送到服务器端,服务器再更新数据库,再更新到web页面,到此完成一次操作。
第二:服务器算法设计
本服务器详细算法如下图,首先服务器主动打开,启动两个线程,一个线程用于接收客户端发送过来的数据,一个线程用于向客户端发送数据。
接收数据的线程首先判断是否接收到ip数据包,如果没有接收到包则继续等待ip数据包,如果接收到,那么通过程序分析包中的标志位,根据标志位判断ip包发来的数据是什么数据,T那么接收到的是室外温度,H那么接收到的是室外湿度,如图所示。如果接收到的是报警信息,那么首先发送Email给房间的业主,然后再将报警的详细情况更新到数据库。之后再次等待ip数据。
发送数据的线程主要负责向客户端发送请求指令,例如获取室外温湿度的命令,另外发送灯的操作给客户端。服务器判断数据库是否更新,如果更新则说明业主通过web对灯发出了操作指令,那么先判断是否到了预设开关灯的时间,如果到了,那么发送相应的操作给客户端,如果没有到,那么发送当前的灯状态给客户端,之后,发送数据的线程再次判断数据库是否更新。
图 4-2
第三:客服端程序设计
为了实现客户端的低功耗,在MCU(客服端)程序设计时我们采取了在对各个基本模块初始化成功后向服务器发送必要的模拟电器的初始状态信息,在这些基本操作结束后主控MCU即进入低功耗模式。在低功耗模式下,只有当服务器向客户端发送控制命令或者有其它模块的中断申请到来的时候,MCU才会从低功耗模式被唤醒。由客服机的程序设计思路可以看出MCU只有在被唤醒的状态时才是有较大功耗的,而在低功耗模式时其待机电流在只有0.1uA(微安)此时其功耗是完全可以忽略的。所以为了降低功耗就得让中断服务程序以最快的速度执行完毕,所以我们的主时钟系统和子系统时钟都是采用了16M的高频晶振作为时钟源。如此即便是在干电池供电的场合也可连续工作几年的。
MCU时钟模块初始化程序如下:
void MCLK_INIT()
{
unsigned int i;
BCSCTL1 &= ~XT2OFF; // Activate XT2 high freq xtal
BCSCTL3 |= XT2S_2; // 16MHz crystal or resonato
// Wait for xtal to stabilize
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0x47FF; i > 0; i–); // Time for flag to set
}
while ((IFG1 & OFIFG)); // OSCFault flag still set?
BCSCTL2 |= SELM_2 +SELS ; // MCLK = XT2 、SMCLK = XT2
}
客户机程序模块图:
图 4-3
5. 系统创新
一:本系统的设计是来源于对日常生活的思考,能够提供给人们更加智能化的家庭居条件。据调查我国目前智能家居的覆盖率还在5%左右,且价格还相对昂贵,所以我们设计了这个价格实惠且可用性强的智能家居控制系统。
二:本系统中客户机(即家中的MCU采用TI公司的MSP430F2616),平时都是处于低功耗模式,其待机功耗可忽略不计。只有用户在远程端操作网页,以及家中有报警信息时客服机才处于稍高一点功耗的模式,而且这个时间是很短的。所以低功耗也是其特点。
三:该系统结合了互联网,以强大的互联网为支持通过互联网发送数据可以最大限度的提高系统使用灵活性,而不受地域限制。同时利用互联网功能,在家中有异常情况发生时,还可以向户主及时发送邮件提醒通知。
四:在客户机与服务器通信时我们自己在TCP/IP协议的基础上,创建了自己的数据通信协议,以便实现在有限长度的数据中携带更多的控制命令。
6. 评测与结论
系统测试步骤:
第一步:打开远程服务器,客户机发向服务器发送连接请求进而建立连接。
第二步:在任一电脑上登陆网页即可查看家里各电器的信息,以及室内、外的温湿度。
第三步:测试用户在网页上远程控制家里电器的功能,其中包括两点首先:点击网页上的不同电器控制按钮,以便测试系统实时、远程控制家里的电器的功能是否正常;然后:是设置网页上的定时开关电器的时间以便测试远程计划任务功能是否正常。如果各电器按照用户在网页上的操作做出相应的反应,则表示系统此项功能正常。
第四步:测试房间人数统计功能,在家中有相应的检测器可以检测进入房间的人数,并且触发家中的主控MCU向远程服务器发送实时人数。
第五步:测试保险箱非法开启报警功能,在保险箱内放置了触摸报警器,一旦有
非法开启报警器一边发出声光警报,同时也触发家中的MCU向远程主机发送非法入侵的消息,不仅如此还可以向户主的邮箱发送报警邮件以提示户主。
结论:
经过我们的测试,系统的各项功能都能实现。
但是也有不足之处,在远程控制时由于网络传输的延迟会导致系统控制上有些延迟反应。
—————————————————————————
在进行以太网方案选择时,作者也提到:
“ENC28J60需要用uip0.9等转用于微处理器的传输协议,该协议不是标准的TCP/IP协议,删减了一些不常用的功能。使用ENC28J60必须要开发者熟悉TCP/IP协议。W5100是一款多功能的单片网络接口芯片,内部集成有 10/100 以太网控制器。开发者不需非常要熟悉TCP/IP协议。只需要进行上位机的Socket编程。所以我们选用W5100模块。”
的确,WIZnet将易用性注入到它的每一个产品,W5100嵌入了成熟的,经过验证的TCP/IP协议。开发者不需要精通相关协议,大大降低了开发难度和门槛,给开发带来了极大的便利,也缩短了产品方案的开发周期。
相关文章:W5100数据手册
更多相关信息,欢迎访问我们的官网www.iwiznet.cn微博:weibo.com/wiznet2012