From fb1278bc27a0f065cd0692660c925417f55afc75 Mon Sep 17 00:00:00 2001 From: Rousseau Vincent <vincent.rousseau@irstea.fr> Date: Mon, 7 Jan 2019 11:24:04 +0100 Subject: [PATCH] Filter values every hour --- environmental_sensors.py | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/environmental_sensors.py b/environmental_sensors.py index f18b351..e89e80b 100644 --- a/environmental_sensors.py +++ b/environmental_sensors.py @@ -1,24 +1,40 @@ from sense_hat import SenseHat from datetime import datetime +from datetime import timedelta import time from pathlib import Path import csv +import numpy as np sense = SenseHat() def float_format(f): return '{:.2f}'.format(f) +def float_mean(values): + return float_format(np.mean(values)) + def get_data(): - humidity = float_format(sense.get_humidity()) - temp_humidity = float_format(sense.get_temperature_from_humidity()) - #print("Humidity sensor : {} %rH , {} °C".format(humidity, temp_humidity)) + humidity = [] + temp_humidity = [] + pressure = [] + temp_pressure = [] + # Store sensor values every second during one hour + for _ in range(3600): + humidity.append(sense.get_humidity()) + temp_humidity.append(sense.get_temperature_from_humidity()) + pressure.append(sense.get_pressure()) + temp_pressure.append(sense.get_temperature_from_pressure()) + time.sleep(1) - pressure = float_format(sense.get_pressure()) - temp_pressure = float_format(sense.get_temperature_from_pressure()) + #print("Humidity sensor : {} %rH , {} °C".format(humidity, temp_humidity)) #print("Pressure sensor : {} Millibars , {} °C".format(pressure, temp_pressure)) - - return [datetime.now().timestamp(), humidity, temp_humidity, pressure, temp_pressure] + # Get the mean value during the hour + return [(datetime.now()-timedelta(minutes=30)).timestamp(), + float_mean(humidity), + float_mean(temp_humidity), + float_mean(pressure), + float_mean(temp_pressure)] # Create folder to store the data data_folder = Path('./data') @@ -26,7 +42,7 @@ data_folder.mkdir(parents=True, exist_ok=True) try: while(True): current_month = datetime.now().month - file_date = datetime.now().strftime('%Y_%m_%d_%H_%M') + file_date = datetime.now().strftime('%Y_%m_%d_%H') file_name = data_folder/str('sense_hat_data_' + file_date + '.csv') with file_name.open('w') as csvfile: writer = csv.writer(csvfile) @@ -34,7 +50,6 @@ try: while(True): writer.writerow(get_data()) - time.sleep(1) if(current_month != datetime.now().month): break -- GitLab