摘要
本次毕业设计为实现一个远程环境监测系统,该系统基于物联网,可以扩展任意多个传感器。系统主要包括环境信息采集传送,后台服务器以及前端浏览器展示三大核心。
环境信息采集主要使用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.2设计内容
1.3设计的目的和意义
第二章 系统总体设计方案
2.1服务端技术方案
2.1.1 Node.js
2.1.2 Express
2.1.3 MongoDB
2.1.4 Redis
2.1.5 RESTful API
2.2硬件方案
2.2.1 ESP8266
2.2.2 DH22
2.3 前端技术方案
2.3.1 AngularJS
2.3.2 Bootstrap
2.3.3 Chart.js
第三章 后台服务器设计
3.1 HTTP请求方法
3.2 Express框架
3.2.1 Express示例
3.2.2 Express路由
3.2.3 Express路由方法
3.3 MongoDB 数据库
3.3.1 mongoose
3.3.2 数据库表结构设计
3.4 Redis 数据库
3.4.1 Redis数据类型
3.4.2 Redis实时队列系统
3.5 设计REST API
3.5.1 设备信息API
3.5.2创建环境信息API
3.5.3 历史数据记录API
3.5.3 实时温度API
第四章 硬件设计
4.1 NodeMCU开发板
4.2 Sming库
4.3 硬件主程序
第五章 前端浏览器程序设计
5.1 Angular.js单页应用
5.2 Bootstrap响应式布局
5.3 ng-Resource
5.3 所有设备页面
5.4 传感器数据展示页面
致谢
参考文献