简介
网络上有很多实时显示树莓派测量的温湿度的例子,但作者没有找到采集数据并能够展示历史数据的现有轮子,于是就自己摸索弄了一个,现在发布出来供大家参考使用。
frp内网穿透后的项目地址:树莓派温湿度监控
概览
程序环境
树莓派(我的是 2B )
DHT22 温湿度传感器(其它传感器比如DHT11需要修改一部分代码。推荐使用 DHT22 ,比 DHT11 精度高)
python 3.5+ 、 mysql
导入相关库,例如: Adafruit_DHT 、 pymysql 、 flask 、 json 等。
运行指南
上述环境准备工作完成后,将本项目代码下载解压到树莓派中。
数据采集
新建数据库,运行 sql/ht.sql 建立“温湿度采集表”
有需要的话可以使用 test 文件下的 TestConnect.py 、 TestSelect.py 测试数据表是否创建成功。
python3 TestConnect.py
第1步没有问题后,将 HtDataRecord.py 中的数据库配置修改成你自己的, 在树莓派 GPIO4 上插好传感器后,运行
python3 HtDataRecord.py
如果打印出温湿度,数据库也插入成功,继续进行下面的数据展示。
页面展示
修改 Server.py 中的数据库连接配置,并运行
python3 Server.py
在浏览器输入:
开机启动
vi /etc/rc.local
参考 config/rc.local 的配置。
可能存在的问题及修改建议
由于作者住在广州,温度最低是 5 摄氏度左右,不会有什么问题,未测试 0 度以下是否存在 bug 。
采集频率目前设置为 5 分钟测量 1 次,你也可以设置成 1 分钟采集 1 次;如果设置其它采集频率例如 2 分钟、 3 分钟等,查询及展示那块需要修改。
目前的查询策略是,查 1 天的数据支持查 5 分钟的颗粒精细度;7天之内则以30分钟为颗粒度; 30 天、180天以内则为 60 分钟。待数据增加后,计划开发自定义时间范围选择。查询的时间范围以及精细度由前端传入后台。当前温湿度20秒更新一次。
需要外网访问建议安装 ZeroTier 。