基于物联网的照明控制系统—PHP展示软件设计

2015-01-17 05:46曾妍
电子设计工程 2015年1期
关键词:网关网页终端

曾妍

(四川信息职业技术学院 四川 广元 628017)

基于物联网的照明控制系统是以ZigBee、单片机、传感器、C#和PHP程序设计为主要技术手段,包括照明控制单元、ZigBee无线传输层(含网关)、PC展示及控制层3个层次的现场控制单元、CC2430无线传输网络、ARM网关硬件单元、ARM网关客户端软件、基于C#的服务端软件、基于PHP[1]的展示软件等6个子系统,用于实现一套模拟城市照明控制系统。

基于PHP的展示软件所需实现的功能是用网页的方式对基于物联网的照明控制系统进行展示,包括对网关主持、终端节点注册,远程开关灯控制,以及网关和终端节点的报表、实时数据展示,让用户更加清楚的了解该系统。

1 需求分析

PHP即Hypertext Preprocessor(超文本预处理器)的缩写,是基于服务器端运行的脚本程序语言,用于实现数据库和网页之间的数据交互。图1展示一个完整的PHP系统的构成,以及客户通过浏览器访问PHP网站系统的过程。

2 数据库的设计

控制系统的环境温度、湿度、亮度、电压、电流dev_endpoint表用于存储终端节点的注册信息,其中有节点名称、物理地址、网络地址、所属网关、部署时间、部署位置等。dev_gateway表用于存储网关设备的注册信息,其中有网关名称、网关地址、接入端口、部署时间、部署位置等。kongzhi表用于存储远程控制时下发的开灯,关灯指令。当服务器采集到表中的信息后向网关逐级下发指令,最后达到开关灯效果。zhuce表中的信息记录的是用户注册新账号时所填写的个人基本信息,如:账户、密码、email、性别,从而用户可以通过注册过的账户和密码在登陆界面进行登陆,再进入操作窗体界面。

本项目中,数据库[2]共设计有 5张表,分别是data、dev_endpoint、dev_gateway、kongzhi、zhuce。 data 表用于存储 照 明

3 软件设计

本系统包括登陆模块、设备注册模块、远程控制模块、数据报表模块、实时数据模块、基本信息模块[3]。其中,登陆模块[4]用于实现用户管理,注册管理功能;设备注册模块用于注册系统的网关和终端节点;远程控制模块用于对路灯的远程开关灯进行控制;数据报表模块用于表示系统的数据;实时数据模块用于展示节点上传的实时数据;基本信息模块简单介绍了整个系统。

3.1 数据库连接模块

在设计模块软件代码前首先要连接服务器,连接服务器的主要代码为:

$db_host='127.0.0.1'; //服务器地址

$db_user='root'; //数据库用户名

$db_pw=''; //数据库密码

$db_name='denglu'; //数据库名称

//$dbcharset='GBK'; //MySQL编码格式

$conn =mysql_connect ($db_host, $db_user,$db_pw) or die("系统维护中");

mysql_query("set character set GBK");

mysql_query("set names GBK");

@mysql_select_db($db_name,$conn) or die("数据库访问错误".mysql_error());

?>

3.2 登陆模块

3.2.1 用户注册

注册新用户,需向数据库写入账户、密码、确认密码、email、性别等信息。在运行时,首先连接服务器,然后向数据库zhuce表中写入注册的新信息,在用户注册后将跳转到登陆界面。新用户注册的代码设计分静态代码的设计和动态代码的设计。新用户注册的代码设计分静态代码的设计和动态代码的设计。主要静态代码如下:

function Check()//验证表单数据有效性的函数

{

if(document.send.username.value=="") {

window.alert('请输入用户名!');

return false;

}

if(document.send.username.value.length<4) {

window.alert('用户名长度必须大于 4!');

return false;

}

if(document.send.password.value=="") {

alert('请输入密码!');

return false;

}

if(document.send.password.value.length<6) {

alert('密码长度必须大于 6!');

return false;

}

if(document.send.email.value==""){

alert('请输入 Email!');

return false;

}

if(document.send.email.value.indexOf("@")==-1){

alert('请输入有效的 email地址!');

return false;

}

return true;

}

主要动态代码如下:

include"conn.php";

//print_r($_POST);

?>

$username=@$_POST[username];

$password=@$_POST[password];

$cpassword=@$_POST[cpassword];

$email=@$_POST[email];

$sex=@$_POST[sex];

$sql="insert into zhuce set username='$username',password='$password',

cpassword='$cpassword',email='$email',sex='$sex'";mysql_query($sql);

echo"<---->";

//echo$sql

//echo mysql_error();

?>

3.2.2 用户登陆

登陆窗体的功能是设置限权管理,登陆成功后,对各个模块进行操作。

新用户在注册以后,在登陆界面输入已经注册过的账户和密码,如果输入的账户和密码有误,则系统会提醒“账户或密码有误,请重新登陆”,如果输入成功则跳转到窗体操作界面。登陆时的代码设计首先连接服务器,然后查询数据库中的zhuce表是否与登陆的账户和密码一致,如果登陆的账户和密码已经注册并输入正确,则跳转到系统操作窗体,否则跳转到重新登陆的界面。

3.3 设备注册模块

3.3.1 网关设备注册

网关设备注册[5]时需要添加网关的网关名称、网关地址、接入端口、部署时间、部署位置。将添加的新网关设备数据下发到MySQL数据库中,进而对照明控制系统逐级添加。

3.3.2 终端节点注册

终端节点注册时需要添加节点的节点名称、物理地址、网络地址、所属网关、部署时间、部署位置。将添加的新节点数据下发到MySQL数据库中,进而对照明控制系统逐级添加。

3.4 远程控制模块

远程控制模块的设计是写入物理地址和网络地址后,对其下发开灯和关灯的指令。

3.5 数据报表模块

3.5.1 网关设备报表

网关设备报表展示的是照明控制系统的网关设备,把MySQL数据库中的网关设备进行展示,本设计可以展示最近的5次网关设备。

3.5.2 终端节点报表

终端节点报表展示的是照明控制系统的终端节点,把MySQL数据库中的终端节点进行展示,此设计可以展示最近的5次终端节点。

3.6 实时数据模块

实时数据显示的是当前照明控制系统所处的状态,分别展示了灯的状态,系统所处环境的温度、湿度、亮度、电压、电流。

4 系统测试

4.1 网关设备报表模块

用户在进入系统网页操作窗体前,首先要进行用户的注册和登陆,当用户登陆成功后进入界面如图2所示。

图2 网页设备注册操作界面Fig.2 Webpage equipment registration interface

在此界面可以进行网关设备注册,填写完网关设备注册的基本信息后点击“添加网关”按钮,数据库就可以获得添加的网关信息,再进行发送到服务器。

在网页中添加网关之后将把新增网关信息存储到数据库dev_gateway表中,服务器将直接读取数据库。图3展示了添加新的网关后的数据库dev_gateway表界面。

图3 数据库的dev_gateway表Fig.3 Database dev_gateway table

4.2 终端节点报表模块

点击“终端节点注册”后将弹出相应界面。在此界面可以进行终端节点注册,填写完终端节点注册的基本信息后点击“添加节点”按钮,数据库就可以获得添加的终端节点的信息,在发送到服务器。在网页中添加终端节点之后将把新增终端节点信息存储到数据库dev_endpoint表中,服务器将直接读取数据库。图4展示了添加新的网关后的数据库dev_endpoint表界面。

图4 数据库的dev_endpoint表Fig.4 Database dev_endpoint table

4.3 远程控制模块

在网页中点击“远程控制”按钮,就打开了相应的界面。此界面可以获取照明系统的物理地址和网络地址,并对其系统进行开灯关灯操作。在网页中远程控制输入物理地址和网络地址,并点击“开灯”或“关灯”按钮后,将把操作了的信息记录到数据库kongzhi表中,服务器读取到表中的信息,将逐级下发指令,最后到终端节点。图5展示了远程控制界面的记录。

图5 数据库的kongzhi表Fig.5 Database kongzhi table

4.4 数据报表模块

点击“数据报表”按钮,也就默认打开了网关设备报表的界面,将弹出相应的界面。

在以上界面中点击“终端节点报表”将弹出对应的界面。

4.5 实时数据模块

在网页中点击“实时数据”的按钮后,会弹出照明控制系统的灯的开关状态,以及环境的温度、湿度、亮度、电压、电流的界面。在MySQL数据库中data表中的信息是采集服务器的信息,在网页中实时数据的界面也展示了data表中的信息,在数据库中的data表是提供网页的读取。

4.6 注册用户模块模块

在进行新用户注册后,把个人信息将存储到MySQL数据库zhuce表中,然后校验登陆的账户和密码是否和zhuce表中的数据一致,若一致,则登陆成功,否则需重新登陆。

图6清晰地展示了数据库有注册新用户的界面。

图6 数据库的zhuce表Fig.6 Database zhuce table

5 结束语

设计中,主要是以PHP展示软件为核心对基于物联网的照明控制系统进行了简单的设计与阐述。确定设计方案前必须做好需求分析。设计时,使用动态代码和静态代码要合理,如果使用不当就不能实现设计所要的目的。

[1]潘凯华,邹天思.PHP开发实战宝典[M].北京:清华大学出版社,2010.

[2]萨师煊,王珊.数据库系统设计[M].3版.北京:高等教育出版社,2004.

[3]庞春辉.基于Web企业管理系统的设计[M].大连:大连理工大学出版社,2008.

[4]陈湘扬,陈国益.PHP5+MySQL网页系统开发设计[M].北京:电子工业出版社,2007.

[5]曾顺.精通CSS+DIV网页样式与布局[M].北京:人民邮电出版社,2009.

[6]W.Jason Gilmore.PHP与MySQL5程序设计[M].北京:人民邮电出版社,2007.

猜你喜欢
网关网页终端
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
信号系统网关设备的优化
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
GSM-R手持终端呼叫FAS失败案例分析
基于URL和网页类型的网页信息采集研究
网页制作在英语教学中的应用
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”