文章目录
成果演示
项目介绍
本项目《基于物联网平台的室内环境监测系统》,大致课分为三个部分进行完成,框架图如下:
原理
传统物联网项目:
这个方法适用企业或工作室等体量稍大的团体使用,优点是保密和安全。具体参照阿里云物联网平台,本文主要介绍的还是下面的方法。
从图中可以看出,巴法云物联网平台帮助我们省略了一些繁琐的服务器部署及后端部署,让我们可以通过巴法云官方api
专注于设备端与客户端的数据上传与接收。
设备端 ------ NodeMcu
NodeMcu是一块基于esp8266 - 12F的开发板,使用Audrino开发。
特找来原理图。需特别注意图中 3V3
和 Vin输出5V
。因为有些模块如CH20甲醛模块、PMS9000空气质量模块
都需要5V电压驱动。
温馨提醒:es8266做主控无法驱动舵机,即使提供5V电压也不行,因为电流过小。一开始踩到坑里了测试以为无法输出5V电压。
- 使用 Audrino 开发
- 通过WiFi模块上传数据至物联云平台,完成数据采集、存储、上传。
- 使用模块
DHT11 温湿度模块,BH1750 光照模块,CH20 甲醛模块,PMS9000 空气质量模块,SGP30二氧化碳模块 - 实现实时查询数据、发出控制指令等应用。
- 实现了室内温湿度、PM2.5、P10和VOC,TVOC,CO2,甲醛等参数的采集,并能将数据上传物联云平台,从而实现同步远程监测、发布指令的目的。
物联网平台 ----- 巴法云
为了更方便小白理解与定位问题,我将特定的api片段截取下来供大家翻阅使用。巴法云官方 api 文档链接
与设备端建立TCP连接,实现订阅/发布
设备端发送信息到巴法云
设备端从巴法云接收信息
客户端发送HTTP请求,实现订阅/发布
小程序发送信息到巴法云
小程序从巴法云接收信息
客户端 ----- 微信小程序
在当下移动端越来越流行的时代,使用Web网页进行物联网控制显然已跟不上潮流。为了突出物联网控制的便捷性与灵巧性,微信小程序便成为了首选。
页面设计与布局
先上成品图
卡片式布局区分显示各模块数据信息如温度、湿度、光照强度、PM2.5、甲醛等
,tab栏区分不同功能如数据监控、控制面板、警戒阈值
数据实时更新
为了确保数据实时更新,我们采用轮询
的方法,使用定时器周期性发送HTTP请求获取设备端各模块的数据。具体代码实现如下:
其中,this.getData
是发送HTTP请求的函数。
边界情况界定
- 在发送指令控制设备时,需要先确保设备端在线
- 发送指令时不能短时间内多次点击,需要消抖处理
警戒阈值设置
- 区分模块进行控制,优化用户体验,使人一目了然。
- 不同模块不同步进值,更方便控制参数
结语
有需要的可以私信或加V — h287728237。有原理图、PCB、小程序源码和Audrino源码,包教包会~