基于多传感器的远程温度监测系统
摘要
本次毕业设计为实现一个远程温度采集系统,该系统基于物联网,可以扩展任意多个传感器。系统主要包括温度信息采集传送,后台服务器以及前端浏览器展示三大核心。
温度信息采集主要使用ESP8266 WIFI芯片通过DHT 22传感器采集环境温度信息,在指定的采集频率下将温度信息发往后台服务器。
后台服务器采用Node.js实现,为前端和温度信息采集部分提供REST API服务。服务器接收到温度采集部分传送过来的温度信息后,将温度信息储存到数据库中,供浏览器端随时查看温度信息。
前端浏览器展示利用AngularJS作为前端框架,Chart.js图表库可视化温度数据,Bootstrap作为样式库并提供响应式布局。通过HTTP协议获取后台的温度数据绘制温度曲线。支持实时温度曲线和历史温度查看。
关键词: ESP8266;物联网;Node.js;REST API; Angular
Abstract
This graduation program is designed to realize a remote temperature acquisition system, which is based on the Internet of Things and can expand any number of sensors.The system mainly includes temperature information collection and transmission, background server and front-end browser display of three cores.
Temperature information collection mainly uses the ESP8266 WIFI chip to collect the environmental temperature information through the DHT 22 sensor, and to send the temperature information back to the server at the specified acquisition frequency.
The background server is implemented by Node.js to provide REST API services for the front-end and temperature information acquisition parts.After the server receives the temperature information transmitted from the temperature collection part, the temperature information is stored in the database for the browser side to view the temperature information at any time.
The front end browser displays uses AngularJS as a front end framework, Chart.js chart library visualizes temperature data, Bootstrap as a style library and provides a response layout.Temperature data from the background were drawn by the HTTP protocol.Support for real-time temperature curves and historical temperature view.
Key words: ESP8266; the Internet of Things; Node.js; REST API; Angular
目录
第一章 绪论 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