# SmartHome
物联网智能家居系统的网站和服务器
网站和服务器写在一起,先运行服务器再运行网站即可。
**博客地址:https://blog.csdn.net/qq_29668759/article/details/99687387**
# 物联网应用开发-智能家居项目
记大三上学期结束,以智能家居项目结束了大学前2年半愉快的生活。
---
## 1.项目成员
- 赵旭东
- 郑普元
- 胡旸
- 甄洪磊
---
## 2.成果
(1)全部成果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190816232737278.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5NjY4NzU5,size_16,color_FFFFFF,t_70)
(2)数据实时展示、控制命令发送网站
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190816232850748.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5NjY4NzU5,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190816232911920.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5NjY4NzU5,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190816233002138.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5NjY4NzU5,size_16,color_FFFFFF,t_70)
(3)网关-开发板
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190816233400368.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5NjY4NzU5,size_16,color_FFFFFF,t_70)
(4)传感器节点
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190816233504422.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5NjY4NzU5,size_16,color_FFFFFF,t_70)
---
## 3.项目背景
目前通常把智能家居被定义为利用电脑、网络和综合布线技术,通过家庭信息管理平台将与家居生活有关的各种子系统有机地结合的一个系统。也就是说,首先,它们都要在一个家居中建立一个通讯网络,为家庭信息提供必要的通路,在家庭网络的操作系统的控制下,通过相应的硬件和执行机构,实现对所有家庭网络上的家电和设备的控制和监测。其次,它们都要通过一定的媒介平台,构成与外界的通讯通道,以实现与家庭以外的世界沟信息,满足远程控制/监测和交换信息的需求。最后,它们的最终目的都是为满足人们对安全、舒适、方便和符合绿色环境保护的需求。
---
## 4.总体设计思路
写一个控制各种传感器的网站,前端能适配到PC端和移动端。网站后台把用户命令发送到服务器,服务器进行判断发送到网关,网关进行判断进行相应的操作。网关接收协调器的各种信息上传到服务器,服务器把数据存入数据库。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190816233817966.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5NjY4NzU5,size_16,color_FFFFFF,t_70)
---
## 5.模块设计思路
该系统在开发时分为PC、移动端前端模块,服务器模块,网站后台模块,数据处理模块,数据存储模块,网关模块,ZigBee网络模块。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190816233903336.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5NjY4NzU5,size_16,color_FFFFFF,t_70)
---
## 6.关键技术
Bootstrap框架、ECharts框架、Ajax、Socket、QT
---
## 7.网站关键代码
### (1) 前端与后台交互:Ajax
```
var xmlHttp;
function lockdoor(){
// 向后台发送标识
//使用方法创建一个对象XmlHttp
xmlHttp=createXMLHttp();
//要给服务器发送数据
var url="order?sign=1";
xmlHttp.open("GET",url,true);
//4.绑定回调方法
xmlHttp.onreadystatechange=lockdoorcallback;
xmlHttp.send(null);
}
function lockdoorcallback(){
}
```
### (2) 网站后台与前端数据传输:Selvet+Ajax
用户在前端点击按钮,发送一个标识Sign到网站后台,后台对这个Sign进行判断,判断如果是一个命令,那么直接调用AppConnectServer类的connect()发送至服务器。
前端每5s向后台发送“10110”请求各个传感器节点的信息,后台接收到后立刻返回一个封装了各个传感器信息的字符串给前端。
```
public class Background extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String sign=request.getParameter("sign");//标识这是用户的那种操作
Integer Sign=Integer.valueOf(sign);//转换后的标识
if(Sign==110){ //继电器模块
System.out.println("用户想开空调");
response.getWriter().write(1);
AppConnectServer appConnectServer=new AppConnectServer(Sign);
appConnectServer.connect();
}else if(Sign==111){
```
### (3) 服务器和网关交互:Socket(java)<-->Socket(QT)
服务器一直监听8899端口,网关开机后根据用户输入的服务器的IP和Port创建一个新线程SocketTh向服务器发起Socket请求,请求成功后建立Socket长连接,网关收集到的各个传感器的数据通过这个Socket长连接发送至服务器。
```
public void connect(){
try {
Socket socket=new Socket("localhost",8889);
System.out.println("网站已连接服务器");
OutputStream os=socket.getOutputStream();//字节输出流
PrintWriter pw=new PrintWriter(os);//将输出流包装为打印流
pw.write(String.valueOf(sign));
pw.flush();
socket.shutdownOutput();//关闭输出流
pw.close();
os.close();
socket.close();
}
```
---
## 8.服务器关键代码
服务器初始化时会开一个线程ServertoGateway,这个线程负责连接数据库和监听8899端口等待网关请求建立Socket长连接,收到网关的数据后存入数据库。主线程监听8889端口等待网站后台Socket请求,一旦有请求会开一个线程ServerSocketCa进行和网站后台的数据交换并把数据返回。主线程拿到返回的数据发送至网关。
### (1)等待socket请求:主线程
主线程在8889端口等待请求,一旦有socket请求,开一个线程去处理这个请求。
```
public static void main(String[] args){
try {
ServertoGateway toGatewayTh=new ServertoGateway();。
toGatewayTh.start();
ServerSocket serverSocket=new ServerSocket(8889);
Socket server_socket_th=null;
while (true){
server_socket_th=serverSocket.accept();
ExecutorService exec = Executors.newCachedThreadPool();
ServerSocketCa serverSocketCa=new ServerSocketCa(server_socket_th);
Future f=exec.submit(serverSocketCa);
int ordertogateway=Integer.valueOf(f.get().toString());
System.out.println("线程返回了用户传递来的命令:"+ordertogateway);
SendOrdertoGate sendnow=new SendOrdertoGate();
sendnow.sendtogateway(ordertogateway);
}
}
```
### (2) 和网关建立Socket长连接:线程ServertoGateway
主线程初始化时创建这个线程,该线程在8899端口等待网关的Socket请求,一旦有请求则建立并保持Socket长连接。
```
@Override
public void run() {
try {
serverSocket_toGateway = new ServerSocket(8899);
s
没有合适的资源?快使用搜索试试~ 我知道了~
毕设&课程作业_物联网智能家居系统的网站和服务器.zip
共440个文件
js:130个
css:58个
less:40个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 69 浏览量
2024-02-21
09:51:13
上传
评论
收藏 9.02MB ZIP 举报
温馨提示
计算机类毕业设计、课程作业,系统源码!!!
资源推荐
资源详情
资源评论
收起资源包目录
毕设&课程作业_物联网智能家居系统的网站和服务器.zip (440个子文件)
ServertoGateway.class 4KB
ServertoGateway.class 4KB
Background.class 4KB
Background.class 4KB
Server.class 2KB
Server.class 2KB
SocketAlwaysServer.class 2KB
SocketAlwaysServer.class 2KB
ServerSocketTh.class 2KB
ServerSocketTh.class 2KB
ServerSocketCa.class 2KB
ServerSocketCa.class 2KB
SocketAlwaysClient.class 2KB
SocketAlwaysClient.class 2KB
Order.class 2KB
Order.class 2KB
AppConnectServer.class 1KB
AppConnectServer.class 1KB
SendOrdertoGate.class 1KB
SendOrdertoGate.class 1KB
SendOrderToGatewayTh.class 1KB
SendOrderToGatewayTh.class 1KB
SocketThread.class 1KB
SocketThread.class 1KB
ServerThread.class 516B
ServerThread.class 516B
bootstrap.css 143KB
bootstrap.css 143KB
bootstrap.min.css 118KB
bootstrap.min.css 118KB
font-awesome.css 34KB
font-awesome.css 34KB
font-awesome.min.css 28KB
font-awesome.min.css 28KB
bootstrap-social.css 20KB
bootstrap-social.css 20KB
sb-admin-2.css 16KB
sb-admin-2.css 16KB
dataTables.jqueryui.css 16KB
dataTables.jqueryui.css 16KB
jquery.dataTables.css 15KB
jquery.dataTables.css 15KB
jquery.dataTables_themeroller.css 14KB
jquery.dataTables_themeroller.css 14KB
dataTables.jqueryui.min.css 14KB
dataTables.jqueryui.min.css 14KB
jquery.dataTables.min.css 13KB
jquery.dataTables.min.css 13KB
dataTables.bootstrap.css 7KB
dataTables.bootstrap.css 7KB
sb-admin-2.min.css 7KB
sb-admin-2.min.css 7KB
dataTables.bootstrap4.css 5KB
dataTables.bootstrap4.css 5KB
dataTables.bootstrap.css 5KB
dataTables.bootstrap.css 5KB
dataTables.bootstrap4.min.css 5KB
dataTables.bootstrap4.min.css 5KB
dataTables.bootstrap.min.css 4KB
dataTables.bootstrap.min.css 4KB
dataTables.uikit.css 4KB
dataTables.uikit.css 4KB
dataTables.uikit.min.css 3KB
dataTables.uikit.min.css 3KB
dataTables.responsive.css 3KB
dataTables.responsive.css 3KB
dataTables.semanticui.css 3KB
dataTables.semanticui.css 3KB
dataTables.foundation.css 3KB
dataTables.foundation.css 3KB
dataTables.semanticui.min.css 3KB
dataTables.semanticui.min.css 3KB
dataTables.material.css 3KB
dataTables.material.css 3KB
dataTables.foundation.min.css 3KB
dataTables.foundation.min.css 3KB
dataTables.material.min.css 2KB
dataTables.material.min.css 2KB
metisMenu.css 1KB
metisMenu.css 1KB
metisMenu.min.css 781B
metisMenu.min.css 781B
morris.css 433B
morris.css 433B
Thumbs.db 150KB
Thumbs.db 150KB
fontawesome-webfont.eot 75KB
fontawesome-webfont.eot 75KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.eot 20KB
icons.html 120KB
icons.html 120KB
tables.html 58KB
tables.html 58KB
panels-wells.html 39KB
panels-wells.html 39KB
grid.html 35KB
grid.html 35KB
buttons.html 32KB
buttons.html 32KB
共 440 条
- 1
- 2
- 3
- 4
- 5
资源评论
学术菜鸟小晨
- 粉丝: 1w+
- 资源: 4939
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2023-04-06-项目笔记 - 第一百五十四阶段 - 4.4.2.152全局变量的作用域-152 -2024.06.04
- 松哥解协议松哥解协议松哥解协议松哥解协议松哥解协议
- 618节日618节日618节日
- tensorflow-gpu-2.9.1-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp39-cp39-win-amd64.whl
- lcd daimalcd daima
- 电影领域-推荐算法-个性化内容-观影决策-电影推荐小程序.zip
- 电气控制PLC考试题库
- 如何使用MATLAB简介
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功