Top

DHT11温湿度监控

按以下步骤安装Adafruit库,并进行测试:
sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git    获取Adafruit库
cd Adafruit_Python_DHT
sudo python3 setup.py install      为python安装此库
cd examples
./AdafruitDHT.py 11 18    11代表此设备为DHT11,18代表数据接口接在BCM编码第18号引脚处(物理引脚12)
测试没问题的话,可以在~/目录下创建一个DHT.py文件,内容如下:
#!/usr/bin/python
import sys
import Adafruit_DHT
humidity, temperature = Adafruit_DHT.read_retry(11, 18)
print('Temp={0:0.1f}*  Humidity={1:0.1f}%'.format(temperature,humidity))
为其添加可执行权限:
chmod +x DHT.py

添加其他功能

将记录写入文件

编辑DHT.py文件如下:
#!/usr/bin/python
import sys,time
import Adafruit_DHT
humidity, temperature = Adafruit_DHT.read_retry(11, 18)

d=time.strftime("%Y-%m-%d")
t=time.strftime("%H:%M:%S")

file_path = '/home/myhome/dht.txt'
with open(file_path,mode='a',encoding='utf-8') as file_obj:
  file_obj.write('日期:{0},时间:{1},温度:{2:0.1f}℃,湿度:{3:0.1f}%\n'.format(d,t,temperature,humidity))
file_obj.close()
以上要点:

设置记录频率

利用crontab定时运行以上python脚本,实现定时记录温湿度。crontab设置:
*/10 * * * * /home/myhome/DHT.py
crontab每列代表含义依次为:
m(分钟,0-59) h(小时,0-23) dom(day of month,1-31) mon(月份,1-12) dow(day of week,0-6,0表示星期天) command(要执行的命令)
*代表每个,比如第一个*表示每分钟。
*/n代表每n个,比如第一个*/10表示每10分钟。
n,m表示第nm,比如第一位是5,10表示第5分钟和第10分钟。
n-m表示第nm,比如第一位是5-10表示从第5分钟到第10分钟。
举例,每月每天的午夜0点20分,2点20分,4点20分....执行 echo "haha":
20 0-23/2 * * * echo "haha"
在FreeBSD中,频率可以用@单词表示:
单词 含义
@num 上一次作业调用完成后的num秒钟后再此运行作业
@reboot cron启动时运行一次
@every_second 每秒钟运行一次
@every_minute 每分钟运行一次,相当于 */1 * * * *
@hourly 每小时零分运行一次,相当于 0 * * * *
@midnight 每天午夜运行一次,与@daily相同
@daily 每天凌晨零点零分运行一次,相当于 0 0 * * *
@weekly 每周日凌晨零点零分运行一次,相当于 0 0 * * 0
@monthly 每月1日凌晨零点零分运行一次,相当于 0 0 1 * *
@annually 每年运行一次,与@yearly相同
@yearly 每年1月1日凌晨零点零分运行一次,相当于 0 0 1 1 *