import time
import board
import adafruit_scd4x
import csv
import matplotlib.pyplot as plt
import RPi.GPIO as GPIO
BUTTON_PIN = 5
GPIO.setmode(GPIO.BCM)
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
#Default mode if we dont press button the state is gonna be high or 1 and if press on the botton its gonna be low or 0)
i2c = board.I2C()
scd4x = adafruit_scd4x.SCD4X(i2c)
print("Serial mumber:",[hex(i) for i in scd4x.serial_number])
scd4x.start_periodic_measurement()
print("waiting for first measurement...")
f = open("data.csv","w", newline='')
writer = csv.writer(f)
header = ['CO2', 'Temperature', 'Humidity','Time']
writer.writerow(header)
while True and GPIO.input(BUTTON_PIN) == GPIO.LOW:
if scd4x.data_ready:
writer.writerow(" ")
print("CO2: %d ppm" % scd4x.CO2),f.write("%d " % scd4x.CO2)
print("Temperature: %0.1f *C" % scd4x.temperature), f.write("%0.1f " % scd4x.temperature)
print("Humidity: %0.1f %%" % scd4x.relative_humidity), f.write("%0.1f " % scd4x.relative_humidity)
timeC = time.strftime("%H")+':'+time.strftime("%M")+':'+time.strftime("%S")
print(timeC), f.write(timeC)
print()
f.flush()
time.sleep(1)
Comments
Please log in or sign up to comment.