基于PIC32上实现的TCP/IP网络协议和zigbee无线传感器网络的智能家居系统
扫描二维码
随时随地手机看文章
一 项目背景
随着物联网的热潮的到来,2010年国内许多省市纷纷发布的《物联网发展规划》,物联网附属领域智能家居的发展也得到了非常大程度的推进。由于物联网的核心和基础仍然是互联网,所以在项目设计中我们将智能家居内部的传感器网络连接至控制核心PIC32,PIC32通过控制网络模块,按照TCP/IP协议来实现PIC32的Web服务器功能,使得可以通过手机、电脑的浏览器来远程访问该web服务器,并以点击链接的形式,控制用电器。这种嵌入式Web服务器的低功耗和高可靠性,使其特别适合作为家庭小型Web服务器控制。
二、需求信息
拟采用的平台:
cerebot 32M×4
两个Digilent PMOD 产品:
PmodNIC——网络接口控制器
PmodSF-Serial Flash Rom,16或128Mbit
三、项目总概
此次项目,我们计划通过网络实现对家居环境的远程监控。
通过分布于房屋各处的传感器对房屋内外的环境参数进行采集,获得的数据通过ZigBee网络或有线连接汇总到此次项目的总控板Cerebot_32MX4上;
Cerebot_32MX4按照TCP/IP协议来实现与Web服务器的链接,通过Web达到远程终端设备(PC、手机等)同Cerebot_32MX4间的数据传输;
Cerebot_32MX4可以将采集到的数据传输给PC和手机,让人们在任何能够连接上网络的地方就能了解家中的情况,并对家中的设备进行远程遥控,比如:控制草坪、花园中的洒水系统给花草浇水。在到家前提前10分钟开启空调,让到家时能够马上享受到舒适的温度。同时,人们在家时也可以利用该方法控制身边的设备,使房屋实现智能化;
Cerebot_32MX4也可以自己对采集到的数据进行处理,实现家中设施的自动控制,同时可以通过PC、手机对自动控制的参数进行设置
系统整体框图如下:
四、硬件设计
(1)家庭内部信息的采集拟采用Zigbee节点组成传感器网络,其中一个Zigbee节点作为总的传感器采集点,与PIC32有线连接,其余Zigbee节点采用无线通信方式与总节点进行传感器信息的传递。
ZigBee技术是一种短距离、低功耗的无线通信技术,其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。
本项目中,无线通信技术的应用将很好的解决数据采集点分散、设备不集中的问题。[!--empirenews.page--]
ZigBee在低耗能方面表现突出,明显由于蓝牙跟WIFI。有关材料表明,2节5号干电池可支持1个节点工作6~24个月,甚至更长。因此,通过配置小型太阳能电池板的方式即可对ZigBee节点进行充电,保证其正常的运行。
ZigBee具有大规模的组网能力,非常适合于大规模的数据采集,解决了智能家居系统中数据采集点多的问题。
(2)传感器网络连接至PIC32控制板,PIC32通过控制网络模块,按照TCP/IP协议来实现PIC32的Web服务器功能。
TCP/IP通信协议以其高效、可靠、通用性获得了世界范围的广泛使用。
本项目采用Cerebot 32M×4为控制核心,在其中通过软件方法实现TCP/IP协议的通信功能,通过进一步的扩展,在其上搭建起HTTP,FTP,TELNET等高级网络功能。
利用TCP/IP协议中的UDP、IP、ARP及简单的应用层协议实现单片机的网络互连,提高数据传输的速度,保证数据传输的正确性,同时扩展数据传输的有效半径。
TCP/IP协议是一套把因特网上的各种系统互连起来的协议组,保证因特网上数据的准确快速传输。参考开放系统互连(OSI)模型,TCP/IP通常采用一种简化的四层模型,分别为:应用层、传输层、网络层、链路层。
①应用层
网络应用层要有一个定义清晰的会话过程,如通常所说的Http、Ftp、Telnet等。我们用单片机系统传递来自Ethernet和数据终端的数据,应用层只对大的数据报作打包拆报处理。
②传输层
传输层让网络程序通过明确定义的通道及某些特性获取数据,如定义网络连接的端口号等,实现该层协议的传输控制协议TCP和用户数据协议UDP。
③网络层
网络层让信息可以发送到相邻的TCP/IP网络上的任一主机上,IP协议就是该层中传送数据的机制。同时建立网络间的互连,应提供ARP地址解析协议,实现从IP地址到数据链路物理地址的映像。
④链路层
由控制同一物理网络上的不同机器间数据传送的底层协议组成,实现这一层协议的协议并属于TCP/IP协议组。这部分功能由单片机控制网卡芯片实现。
控制核心PIC32根据web默认配置将采集的传感器信息分析并进行自动控制,用户又可通过手机、电脑的浏览器来远程访问该web服务器,并以点击链接的形式,控制用电器。
软件流程
PIC32主程序循环检测ENC28J60芯片获取的数据包,将广播报文和目标地址为本机地址的数据包接收进行下一步的处理。由于本项目实现的是TCP/IP通信,而建立起TCP连接最主要的用途是实现HTTP通信。PIC32接收到的待处理数据会经过数据处理函数,若检测到有TCP连接建立的请求,则进行相应处理。当建立了TCP连接后,就可以通过TCP连接发送和接收HTTP通信数据。
TCP连接建立的“三次握手”流程和有限状态机如下:
PIC32在接收到正确的HTTP GET请求后,便进行相应处理,返回用户需要的网页,这样就实现了一个简单的web server应用。
本软件流程图仅以简单控制家电的通断电为例进行绘制,此处流程图仅是软件的设想方案,具体能否实现仍需实际测试。