diff --git a/circuitpython/main.py b/circuitpython/main.py index 9ef1e23..a0660f5 100644 --- a/circuitpython/main.py +++ b/circuitpython/main.py @@ -24,7 +24,7 @@ Use with: TODO for v1 : * write data on flash drive - * send data trough UART (new one !) + * send data through UART (one more !) """ __version__ = 0.1 __repo__ = "https://framagit.org/arofarn/Cameteo" @@ -33,9 +33,10 @@ __repo__ = "https://framagit.org/arofarn/Cameteo" # config # ########## print_data = True +backup_data = True data_to_neopixel = True gps_enable = True -update_interval = 5 # in seconds +update_interval = 60 # in seconds send_json_data = True datetime_format = "{:04}/{:02}/{:02}_{:02}:{:02}:{:02}" neopixel_max_value =const(100) #max value instead of brightness to spare some mem @@ -78,9 +79,9 @@ class Data: # 65536 : 16bit ADC #Data from BME280 - self.data['BME280'] = {'temp': { 'val': bme280.temperature, 'unit': '°C' }, - 'hum': { 'val': bme280.humidity, 'unit': '%' }, - 'press': { 'val': bme280.pressure, 'unit': 'hPa' }} + self.data['BME280'] = {'temp': { 'val': round(bme280.temperature, 1), 'unit': '°C' }, + 'hum': { 'val': int(bme280.humidity), 'unit': '%' }, + 'press': { 'val': round(bme280.pressure, 2), 'unit': 'hPa' }} if gps_enable: if gps.has_fix: self.data['GPS'] = {'timestamp': {'val': datetime_format.format(gps.timestamp_utc.tm_year, @@ -127,6 +128,18 @@ class Data: output = output + "}" return output + def write_on_flash(self): + """Save the current data as csv file on SPI flash""" + try: + with open("data/data.csv", "a") as csv_file: + csv_file.write("{};{};{};{}\n".format(self.data['SYS']['time']['val'], + self.data['BME280']['temp']['val'], + self.data['BME280']['hum']['val'], + self.data['BME280']['press']['val'])) + except OSError as e: + print("Err. {} : R-O FS".format(e)) + + ############# # Functions # ############# @@ -244,6 +257,8 @@ while True: if print_data: data.show() # print(data.json()) + if backup_data: + data.write_on_flash() if data_to_neopixel: pixel[0] = update_neopixel(data.data) gc.collect()