Archived
1
0
This repository has been archived on 2025-04-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
dht22/main.py
2021-10-30 14:47:10 -04:00

56 lines
1.9 KiB
Python
Executable File

#!/usr/bin/env python3
import RPi.GPIO as GPIO
import adafruit_dht
import time
from datetime import datetime
import pytz
from writer import get_db_creds, connect_db, insert_data
def get_sensor_data(dht22):
try:
temperature = 9./5. * dht22.temperature + 32.
humidity = dht22.humidity
return temperature, humidity
except RuntimeError as e:
print("Reading from DHT failure: ", e.args)
return None
if __name__ == "__main__":
# Setup for Hardware
DHT22_PIN = 4
dht_device = adafruit_dht.DHT22(4)
file = '/home/pi/code/dht22/log.csv'
with open(file,'a') as f:
try:
while True:
data = get_sensor_data(dht22=dht_device)
if data:
temperature, humidity = get_sensor_data(dht22=dht_device)
# current_time = datetime.now().strftime("%D %H:%M:%S")
current_time = datetime.now(pytz.timezone('UTC')).strftime("%D %H:%M:%S")
print(f'{humidity:.2f}% {temperature:.2f}degF')
f.write(f'{current_time},{temperature:.2f},{humidity:.2f}\n')
try:
data_dict = {
"datetime": current_time,
"temperature": temperature,
"humidity": humidity,
"location": "basement"
}
creds = get_db_creds("./.creds.json")
conn = connect_db(creds["db"], creds["host"], creds["user"], creds["passwd"])
insert_data(conn, data_dict)
except (Exception, psycopg2.Error) as err:
print ("\npsycopg2 connect error:", err)
time.sleep(14.9)
else:
time.sleep(0.1)
finally:
GPIO.cleanup()