From f1671adb4aae36e6c96d708821d9ec6a929070c7 Mon Sep 17 00:00:00 2001
From: Rousseau Vincent <vincent.rousseau@irstea.fr>
Date: Thu, 3 Jan 2019 12:29:57 +0100
Subject: [PATCH] Write data to csv

---
 environmental_sensors.py | 43 ++++++++++++++++++++++++++++++++++------
 1 file changed, 37 insertions(+), 6 deletions(-)

diff --git a/environmental_sensors.py b/environmental_sensors.py
index 75044f2..caeebb3 100644
--- a/environmental_sensors.py
+++ b/environmental_sensors.py
@@ -1,11 +1,42 @@
 from sense_hat import SenseHat
+from datetime import datetime
+import time
+from pathlib import Path
+import csv
 
 sense = SenseHat()
 
-humidity = sense.get_humidity()
-temp_humidity = sense.get_temperature_from_humidity()
-print("Humidity sensor : {:.2f} %rH , {:.2f} °C".format(humidity, temp_humidity))
+def float_format(f):
+    return '{:.2f}'.format(f)
 
-pressure = sense.get_pressure()
-temp_pressure = sense.get_temperature_from_pressure()
-print("Pressure sensor : {:.2f} Millibars , {:.2f} °C".format(pressure, temp_pressure))
+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))
+
+    pressure = float_format(sense.get_pressure())
+    temp_pressure = float_format(sense.get_temperature_from_pressure())
+    #print("Pressure sensor : {} Millibars , {} °C".format(pressure, temp_pressure))
+    
+    return [datetime.now().timestamp(), humidity, temp_humidity, pressure, temp_pressure]
+
+# Create folder to store the data
+data_folder = Path('./data')
+data_folder.mkdir(parents=True, exist_ok=True)
+try:
+    while(True):
+        current_minute = datetime.now().minute
+        file_date = datetime.now().strftime('%Y_%m_%d_%H_%M')
+        file_name = data_folder/str('sense_hat_data_' + file_date + '.csv')
+        with file_name.open('w') as csvfile:
+            writer = csv.writer(csvfile)
+            writer.writerow(['timestamp', 'humidity', 'temp_humidity', 'pressure', 'temp_pressure'])
+            
+            while(True):
+                writer.writerow(get_data())
+                time.sleep(1)
+                if(current_minute != datetime.now().minute):
+                    break
+
+except KeyboardInterrupt:
+    pass
-- 
GitLab