图2 物联网系统总体框图
图3 物联网系统实物框图
如上图所示为本设计物联网系统总体组成,以智能管家为例说明整个平台的运作机制:
ZigBee节点采集室内温湿度、煤气、语音、光强信息、检测是否有盗贼潜入等动态信息,发送给ZigBee协调器。ZigBee协调器通过串口把收到的数据发送到多功能网关平台,网关平台对此信息进行处理后进行显示并通过宽带网关或GPRS网关发送至远程服务器。网关平台向远程服务器发送数据成功后从远程服务器取回控制命令,并把控制命令通过串口发送到ZigBee协调器,ZigBee协调器以无线的方式把控制命令发送给ZigBee终端,实现对家用电器的控制。
网关平台采用轮询式工作方式,平台循环地把采集到的数据发送到远程服务器,同时收到返回的控制指令,因此只要远程控制终端发送控制命令,网关平台就能在很短的时间内对相关家用电器进行控制。
同时网关平台会对收到的数据进行判断,如果数据高于或低于设定的阈值,网关平台会控制语音模块进行语音报警,同时调用自己编写的飞信网页进行飞信报警(在GPRS网关工作模式下还可以控制手机卡发短信进行报警)。报警的阈值可以通过LabVIEW上位机进行远程设置。
远程检测终端如PC客户端、Web客户端、安卓客户端如果需要进行远程检测,它们只需要从远程服务器取回网关平台发送到服务器的数据即可;如果要进行控制,就把控制命令发送到远程服务器,等待网关平台把控制命令取回到本地,实现对家用电器的控制。
本设计中的网关模块是本系统的核心,是本系统数据交互和转换的“中转站”。它主要包含以下五种功能:一是控制W5100实现TCP/IP协议,通过家庭宽带网络实现与网络服务器的数据交互;二是通过串口控制SIM300模块实现TCP/IP协议,采用GPRS模式与网络服务器实现数据交互;三是通过串口与ZigBee模块进行数据交互;四是控制液晶对采集的数据和被控设备状态进行实时显示;五是控制语音芯片对超出阈值情况进行报警。
本网关模块通过有线和无线两种方式联网,突破了传统只能在局域网控制的局限,实现了在任何地方都能监测和控制家庭环境信息。
网关模块具体功能框图如下图所示。
图4 网关模块结构图
图5 网关模块实物图
4、 报警设计
为了更加清晰提示用户产生的异常情况,网关模块中加入了语音报警功能。当采集数据超过设定的阈值时,单片机控制语音芯片进行报警。系统中采用的语音报警芯片为TN6288A。TN6288A通过异步串口(UART)通讯方式,接收待合成的文本数据,实现文本到语音的转换。SX6288A具有音质好、自然度高、使用方法简单、合成速度快、价格低等特点。其内部芯片结构图如下图所示。
图6 TN6288A芯片原理图
单片机对收到的数据进行处理和判断,当传感器传来的数据超过设定的阈值后,单片机会控制W5100调用自己编写的PHP飞信网页对设定的号码进行飞信报警。用于飞信报警的网页如下图所示。
图7 飞信报警网页
5、 手机web客户端设计
手机web客户端由PHP、HTML语言编写而成。PHP代码放在远程服务器中,它可以与服务器数据库的数据进行交互。主要实现对服务器数据库中的相关数据的调用并实现数据的前端显示,同时可以把相应的控制命令写进数据库。具体主要实现四个个功能:控制命令写入、传感器数据显示、视频画面显示以及报警记录显示。Web客户端界面如下图所示:
图8 手机WEB客户端截图
6、 手机安卓软件设计
安卓软件有JAVA编写,开发工具为Eclipse,测试机型为小米2。由于调试开发的安卓模拟器在PC上运行比较慢,因此在调试时选择的真机调试,直接把要调试的程序下载到手机上进行调试,
图9 手机安卓客户端软件截图
7、 上位机客户端
LabVIEW作为一种图形化开发语言,具有开发周期短,功能强大、界面美观的特点。我们用LabVIEW编写PC客户端,为了体现通用性和可移植性,我们精简了LabVIEW代码主要实现四种功能:传感器数据的获取以及存储、报警记录的获取、视频图片的获取以及对家用电器的控制。
图12 实物图1
图13 实物图2
图14 实物图3
PS:
AVR单片机的物联网平台是为了参加一次全国性质的比赛做出来的,所有硬件设计及软件设计全部为原创。为了造福大家,我们将在原有硬件板卡的基础上进行改造,做出一款通用的更适合大家学习的开发板,以供各位电子爱好者学习。硬件设计及软件代码近期将在论坛公开。