123
unknown
python
2 years ago
1.8 kB
6
Indexable
import sys
import Adafruit_DHT
import time
import csv
import requests
ThingSpeak_WriteApiKey = 'Q6I298TFCRWYCBPG'
detection_period = 5
# Parse command line parameters.
sensor_args = { '11': Adafruit_DHT.DHT11,
'22': Adafruit_DHT.DHT22,
'2302': Adafruit_DHT.AM2302 }
if len(sys.argv) == 3 and sys.argv[1] in sensor_args:
sensor = sensor_args[sys.argv[1]]
pin = sys.argv[2]
else:
print('Usage: sudo ./Adafruit_DHT.py [11|22|2302] <GPIO pin number>')
print('Example: sudo ./Adafruit_DHT.py 2302 4 - Read from an AM2302 connected to GPIO pin #4')
sys.exit(1)
while(1):
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
#humidity, temperature = get_sensor_data()
if humidity is not None and temperature is not None:
#with open('hw321.csv', 'a+', newline='') as csvfile:
# writer = csv.writer(csvfile)
# writer.writerow([time.ctime(),temperature,humidity])
#humidity, temperature = Adafruit_DHT.read_retry(sensor, pin, delay_seconds = 0)
#print(time.ctime()+'Temp={0:0.1f}度C Humidity={1:0.1f}%'.format(temperature, humidity))
ThingSpeak_API_URL = f'https://api.thingspeak.com/update?api_key={ThingSpeak_WriteApiKey}&' \
f'field1={"{0:0.1f}".format(temperature)}&' \
f'field2={"{0:0.1f}".format(humidity)}'
query = requests.get(ThingSpeak_API_URL)
print(f'HTTP: {query.status_code}') # 查看 HTTP 狀態碼,若為 200 表示傳送成功
print(time.ctime()+',', 'temperature:', temperature, '度C,', 'humidity:', humidity, '%')
else:
#print('Failed to get reading. Try again!')
print('Failed to get reading. Try again!')
continue
time.sleep(detection_period)
Editor is loading...