【发布时间】:2015-08-10 11:30:11
【问题描述】:
我是一个完全没有经验的 A 级学生,我试图掌握 Python 来完成一项作业。我有一周的时间来完成它——我对做什么知之甚少,也没有编码经验——我真的被困住了,在他论坛上的人看来可能很愚蠢。
我必须创建一个带有树莓派和 DHT22 传感器的温度和湿度记录器。我要编写一个脚本来生成一个休眠 10 秒的循环 - 我将运行该脚本两天以收集足够的数据来生成图表。到目前为止,我拥有的代码是这样的,但它无法正常工作 - 可能是出于一些明显的原因 - 数据需要在 Leafpad 文件的两列中出现。
# Assign header details to STRING variables - change manually
txt_studentid = '999'
txt_pi_location = '999.99999'
txt_pi_latitude = '999.99999'
txt_pi_longitude = '999.99999'
import Adafruit_DHT
pin = 4
sensor = Adafruit_DHT.DHT22
# Import Time module import time
# open file to write
f = open('/home/pi/y_data.txt','w')
f.write(txt_studentid)
f.write('\n')
f.write(txt_pi_location)
f.write('\n')
f.write(txt_pi_latitude)
f.write('\n')
f.write(txt_pi_longitude)
f.write('\n')
f.close()
while True:
# store off the date and time details for this
sample num_month = time.localtime().tm_mon
num_day = time.localtime().tm_mday
num_hour = time.localtime().tm_hour
num_min = time.localtime().tm_min
num_sec = time.localtime().tm_sec
num_humidity, num_temperature = Adafruit_DHT.read_retry(sensor, pin)
txt_month = str(num_month)
txt_day = str(num_day)
txt_hour = str(num_hour)
txt_min = str(num_min)
txt_sec = str(num_sec)
txt_humidity = str(num_humidity)
txt_temperature = str(num_temperature)
f = open('('/home/pi/my_data.txt','a')
f.write(txt_month)
f.write(',')
f.write(txt_day)
f.write(',')
f.write(txt_hour)
f.write(',')
f.write(txt_min)
f.write(',')
f.write(txt_sec)
f.write(',')
# write the temperature and humidity to file
f,write(txt_humidity)
f.write(',')
f,write(txt_temperature)
f.write(',')
# write new line
f.write('\n')
# close the file
f.close()
# wait for ten seconds
time.sleep(10)
【问题讨论】:
-
只是说我输入 sudo python my_script.py 并没有错误信息
-
f = open语句可以使用一些更正。在第一个中,您打开一个名为y_data.txt的文件,在第二个中,您将附加到一个名为my_data.txt的文件中。同样在第二个f = open声明中,您有一个('很多。 -
你的while循环不正确,陷入无限循环。
标签: linux python raspberry-pi temperature