123

 avatar
unknown
python
2 years ago
1.8 kB
4
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...