PHP&MYSQL物联网监控系统Web端

软件课程设计合作中负责物联网系统的web端开发,在这里贴一下报告的部分内容及思路``。

一、设计方法、设计思路
考虑到web端可以在电脑端,手机端等一切支持http协议的移动设备上查看。为了实现物联网的远程操作的基本要求,我们本次设计采用了web来实现这一功能。
本次设计任务中我负责该系统web端的设计与实现,我们采用了最为常用的开源关系型数据库——MYSQL,为了方便数据库的远程连接及提高可用性,我们租用了一个云数据库。相应地,我在另一台租用的弹性云服务器上配置了Apache服务器以及PHP开发环境(也可以将数据库和服务器放在一台电脑上)。PHP作为当下最流行的web开发语言,语法简洁,易于上手,对于MYSQL数据库的支持非常优良,通过它可以实现MYSQL数据库与前端界面的交互。
同时,考虑到移动端web的流行趋势,普通网页在手机端需要拉伸才能看清,我在前端界面的样式上采用了JQuery Moblile框架,加强了对手机端界面的支持。同时通过web界面APP打包工具,例如PhoneGap,可将移动端界面打造成安卓和ios的app,大大拓展了web端的使用面,降低了开发成本。通过PHP可以将数据库的数据读取以表格形式显示出来,也可以使用GD绘图以统计图形式来展现。但本次实验为了简便,采用了百度开源绘图框架ECharts,来绘制各种统计图。web端界面的缺点就是刷新慢,往往为了更新,需要将整个页面刷新一次,影响体验,也不适合用作动态监控。而异步刷新技术(ajax)可以一定程度上解决这个问题。在数据库数据发生改变的时候,ajax可以只传送发生变化的少量数据,而不会发生闪动。

二、具体实现方式
1.租用一个云服务器,安装CentOS 7.3操作系统,配置服务器。
由于配置过程极其繁琐,且容易出错,为了简便,直接采用XAMPP的PHP编程套件,集成了MySQL,PHP和Apache。
(1)首先使用root账号登陆云服务器
(2)下载Xampp,依次使用如下命令
A)wget http://sourceforge.net/projects/xampp/files/XAMPP Linux/7.3.04/xampp-linux-x64-7.3.0-0-installer.run
B)chmod 777 xampp-linux-x64-7.3.0-0-installer.run
C)./xampp-linux-x64-7.3.0-0-installer.run
D)/opt/lampp/lampp start
(3)使用wincp工具将编好的程序放到opt/lampp/htdocs/目录下
2.编写PHP程序连接MySQL和Apache服务器。并实现通过sql语言对数据库进行增删改查操作。将其封装成一个函数,以便接下来使用



3.创建一个简单的会员管理系统,实现会员的登陆注册修改账号。
首页代码(inex.htm)如下,注册界面以及修改资料界面等代码见源文件(join.htm(注册界面), logout.php(退出登陆), search.php(找回密码), addmember.php(注册函数), checkpwd.php(验证账号密码), delete.php(注销账号) , modify.php(修改账号资料), update.php(更新账号资料)







 



农田监控系统



农田监控系统

欢迎来到农田监控系统,您必须注册成用户,才有权限使用本站的功能。若您已经 拥有账号,请输入您的账号及密码,然后按 [登录] 钮;若尚未成为本站会员,请点 按 [注册] 超链接;若您忘记自己的账号及密码,请点击 [查询密码] 超链接。

账号:
密码:
 

注册  查询密码

4.创建主程序(main.php)
该程序检查了cookie里面的账号密码,若无误则进入,若有误则进入首页。同时也通过之前的数据库连接函数将数据库数据提取出来以表格形式显示





农田管理



 

  

 

农田监测系统

"; echo ""; for ($i = 0; $i < $total_fields; $i++) echo "" . mysqli_fetch_field_direct($result, $i)->name . ""; echo ""; //显示记录 $j = 1; while ($row = mysqli_fetch_row($result) and $j <= $records_per_page) { echo ""; for($i = 0; $i < $total_fields; $i++) echo "$row[$i]"; $j++; echo ""; } echo "" ; //产生导航条 echo "

"; if ($page > 1) echo "上一页 "; for ($i = 1; $i <= $total_pages; $i++) { if ($i == $page) echo "$i "; else echo "$i "; } if ($page < $total_pages) echo "下一页 "; echo "

"; //释放内存空间 mysqli_free_result($result); mysqli_close($link); ?>

主程序运行截图:

5.设计绘图模块:
使用百度的echarts绘图框架,实现异步刷新加载数据
通过barshow.php将数据提取出来,并转换成json格式传送至图表显示界面barshow.html.(具体细节见相应源代码)
实现效果:
PHP&MYSQL物联网监控系统Web端_第1张图片
6.设计手动控制模块:control2.php control2.html
接收到用户发出的 相应的开关指令,使用update函数实现控制表相应开关状态的更新
6.设计自动控制模块:control_auto.php(自动控制界面), control_auto_set.php(自动控制参数设置) control_auto_confirm.php(参数确认界面)
实现思路:先将个人设置好的开关状态变化阈值更新至数据库,再分别从数据库中取出阈值和最后一个时间点的实时参数,通过它们两个做比较,程序来决定开关的状态。

(项目demo(账号234,密码:234)(注意:统计图界面barshow.html的末尾添加了刷新代码的部分,10分钟刷新一次,可能会影响观察):demo
(源码参考:https://download.csdn.net/download/qq_36309884/11012620 )

PHP&MYSQL物联网监控系统Web端_第2张图片

你可能感兴趣的:(iot,php)