实验目的:
用树莓派连DHT11模块实现检测温湿度的功能
1.硬件准备:
树莓派3B+,一个DHT11温湿度计,杜邦线三根
2.连接线缆
VCC连GPIO引脚的1号(3.3v)脚。
3.安装Adafruit
下载Adafruit公司的代码并安装。(核心是c语言,执行时python,有兴趣的可以去看看source目录的代码)
sudo git clone git://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python setup.py install
4.检测温度:
输入如下命令
cd Adafruit_Python_DHT/examples
sudo ./AdafruitDHT.py 11 21
11是传感器型号,21是数据输入的GPIO编号,对应图片就是BCM那一行,物理引脚是40。我插的是40号,所以用21。
例子
pi@raspberrypi:~/Adafruit_Python_DHT/examples $ sudo ./AdafruitDHT.py 11 21
Temp=28.0* Humidity=74.0%
pi@raspberrypi:~/Adafruit_Python_DHT/examples $ sudo ./AdafruitDHT.py 11 21
Temp=29.0* Humidity=72.0%
4.1.每一小时记录一次温湿度
写脚本:vi /root/test.sh
#!/bin/bash time=`/bin/date` temp=`/home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 11 21` echo "$time | $temp" >> /home/pi/test.txt
4.2计划任务
crontab -e
*/60 * * * * /root/test.sh
4.3储存文档:
echo "" > /home/pi/test.txt
几个小时后效果:
pi@raspberrypi:~$ cat /home/pi/test.txt
Tue Dec
Tue Dec
Tue Dec
Tue Dec
Tue Dec
5.编写脚本
每次都是一长串命令很麻烦,写成脚本执行就方便多了
sudo nano tem.sh
#!/bin/bash echo `date +%F,%T` echo CPU温度为 $(vcgencmd measure_temp) echo 环境温湿度为 $(/home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 11 21)
sudo chmod +x tem.sh
pi@raspberrypi:~ $ ./tem.sh
2018-10-10,08:14:09
CPU温度为 temp=51.5'C
环境温湿度为 Temp=27.0* Humidity=71.0%
6.把温湿度记录到一个网页中进行浏览
6.1编写新的脚本
sudo nano tem.sh
内容如下
#!/bin/bash echo "<br/>" echo "<br/>" echo `date +%F" "%T` echo CPU温度为 $(vcgencmd measure_temp) echo 环境温湿度为 $(/home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 11 21)
6.2 写进计划任务
sudo crontab -e
每分钟一次执行一次,加到最下面一行
* * * * * /home/pi/tem.sh >> /usr/share/nginx/html/index.html
6.3 创建nginx的index.html文件
su -
切换到root用户
echo "温度历史纪录:" > /usr/share/nginx/html/index.html exit
几分钟后查看效果,如下
发表评论