基于物联网的多传感器远程温度监测系统

目录
第一章 绪论 1
1.1选题背景 1
1.2设计内容 1
1.3设计的目的和意义 2
第二章 系统总体设计方案 3
2.1服务端技术方案 4
2.1.1 Node.js 4
2.1.2 Express 4
2.1.3 MongoDB 4
2.1.4 Redis 5
2.1.5 RESTful API 5
2.2硬件方案 5
2.2.1 ESP8266 5
2.2.2 DH22 6
2.3 前端技术方案 6
2.3.1 AngularJS 6
2.3.2 Bootstrap 6
2.3.3 Chart.js 7
第三章 后台服务器设计 8
3.1 HTTP请求方法 8
3.2 Express框架 9
3.2.1 Express示例 9
3.2.2 Express路由 10
3.2.3 Express路由方法 10
3.3 MongoDB 数据库 11
3.3.1 mongoose 11
3.3.2 数据库表结构设计 11
3.4 Redis 数据库 14
3.4.1 Redis数据类型 14
3.4.2 Redis实时队列系统 14
3.5 设计REST API 16
3.5.1 设备信息API 16
3.5.2创建温度信息API 17
3.5.3 历史数据记录API 18
3.5.3 实时温度API 18
第四章 硬件设计 20
4.1 NodeMCU开发板 20
4.2 Sming库 21
4.3 硬件主程序 22
第五章 前端浏览器程序设计 24
5.1 Angular.js单页应用 24
5.2 Bootstrap响应式布局 24
5.3 ng-Resource 26
5.3 所有设备页面 26
5.4 传感器数据展示页面 28
致谢 32
参考文献 33
1.2设计内容
本次毕业设计为实现一个远程温度采集系统,该系统基于物联网,可以扩展任意多个传感器。系统主要包括温度信息采集传送,后台服务器以及前端浏览器展示三大核心。
温度信息采集主要使用ESP8266 WIFI芯片通过DHT 22传感器采集环境温度信息,在指定的采集频率下将温度信息发往后台服务器。
后台服务器采用Node.js实现,为前端和温度信息采集部分提供REST API服务。服务器接收到温度采集部分传送过来的温度信息后,将温度信息储存到数据库中,供浏览器端随时查看温度信息。
前端浏览器展示利用AngularJS作为前端框架,Chart.js图表库可视化温度数据,Bootstrap作为样式库并提供响应式布局。本文转载自http://www.biyezuopin.vip/onews.asp?id=14722通过HTTP协议获取后台的温度数据绘制温度曲线。支持实时温度曲线和历史温度查看。
第二章 系统总体设计方案
本次毕业设计为实现一个远程温度采集系统,该系统基于物联网,可以扩展任意多个传感器。系统主要包括温度信息采集传送,后台服务器以及前端浏览器展示三大核心。系统框图如图1-1:

图1-1 系统框图
温度信息采集部分主要使用ESP8266 WIFI芯片通过DHT 22传感器采集环境温度信息,在指定的采集频率下,利用WIFI通过HTTP协议将采集到的温度信息发往后台服务器。
后台服务器采用Node.js实现,使用的是Node.js下的Express WEB开发框架,为前端和温度信息采集部分提供REST API服务。服务器接收到温度采集部分传送过来的温度信息后,将温度信息储存到基于内存的Redis数据库,作为一个高性能实时的温度信息队列,供浏览器端随时查看实时温度曲线。在指定的周期将温度信息存储到MongoDB数据库中持久化存储温度数据,提供历史数据查看。
前端浏览器展示利用AngularJS作为前端框架,Chart.js图表库可视化温度数据,Bootstrap作为样式库并提供响应式布局。通过HTTP协议获取后台的温度数据绘制温度曲线。支持实时温度曲线和历史温度查看。

var express = require('express');
var path = require('path');
var logger = require('morgan');
var bodyParser = require('body-parser');
var models=require('./models');
var apiRoute = require('./api_router');

var app = express();

app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.use(express.static(path.join(__dirname, '../angular/dist')));


app.all('*', function(req, res, next) {
  res.set('Access-Control-Allow-Origin', '*');
  res.set('Access-Control-Allow-Credentials', true);
  res.set('Access-Control-Allow-Methods', 'GET, POST, DELETE, PUT');
  res.set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Authorization');
  if ('OPTIONS' == req.method) return res.send(200);
  next();
});


app.use('/api', apiRoute);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.json({
    message: err.message,
    error: {}
  });
});

module.exports = app;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shejizuopin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值