最近买了个DHT11和一个灰尘感应器,正好有个一直没用的树莓派,来搭建家庭环境监测器也不错。
DHT11的数据读取比较简单,从2号脚读就好了。我还没见过这么传送数据的方法,这里算学到了。
过程是这样:用C语言写数据读取模块,用一个Python进程调用这个模块定时采集数据保存到MySQL服务器;用另一个Python进程做http服务器;最后用HTML5和Ajax从这个服务器读数据并绘制出来。这样就可以用浏览器来查看家里面的温湿度情况了。最后的效果如下图,这是一天内的温湿度曲线图,家里的环境还是比较恒定的嘛。
具体步骤如下:
在树莓派上安装GPIO的库和MySQL。安装Python的Mysql模块,过程中需要安装setuptools,
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
整个工程的代码压缩为tar文件了,下载路径如下:
注意DHT11的脚连接到树莓派的GPIO 0号脚上;数据只读了整数部分,小数没有读。
数据库的库名是house,表名是env。
主要文件描述:
env.sql:MySQL的表结构描述文件
gpio.c:DHT11的c语言数据读取模块
gpio.py:定时读取DHT11的温湿度数据并保存到MySQL数据库
gpio.so:gpio.c编译成的动态库文件
http.py:HTTP服务器,可以从浏览器访问
index.html:HTTP首页文件,包括了HTML5的绘制函数
网友评论