上篇文章介绍了DHT11模块的python3驱动,这次介绍一下如何让Pi24小时记录温度数据。
功能需求分析:
1. 读取温湿度数据并写入日志中;
2. 设置定时触发。
读取温湿度数据并写入日志:
废话少说,上代码:
#!/usr/bin/env python3import dht11import timeimport traceback as tbdef write_log():# 读取模块数据有一定概率会出现错误或者各种异常,罗嗦一点多做些处理保证程序稳定check_ok = Falset = 10 while t > 0:try:tempture, humidity, check_ok = dht11.get_t_and_h()except Exception as e:tb.print_exc() # 发生异常时打印trace,方便调试,也可以删掉,不会影响功能if not check_ok: # 如果校验出现错误,延时一段时间后再次读取,错误10次后超时,跳出循环t -= 1time.sleep(15)else:breaks = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 获取格式化的当前时间s += ' ' + str(tempture) + ' ' + str(humidity) + ' ' + str(check_ok) + '\n'log_file = open('/home/pi/tempture/temp_log', 'a+') # 此处log文件路径自己设定log_file.write(s)log_file.close() # 写完数据后记得关闭文件flush一下if __name__ == "__main__":write_log()
设置定时触发:
定时触发可以参考这篇文章,用crontab可以配置任意的时间触发设置。
我把我的配置文件贴出来:
最后一句是我添加进去的内容,以空格为分隔,每个对应倒数第二行的项目,其中:*/10 的意思是指每10分钟触发一次。
配置完成后保存退出就可以了,crontab里的配置无需重启会立即生效。
最后看一下我的log咯~
以上~