diff --git a/BME280/get_data_v2.py b/BME280/get_data_v2.py new file mode 100644 index 0000000..56d8d3f --- /dev/null +++ b/BME280/get_data_v2.py @@ -0,0 +1,74 @@ +''' + ____ __ __ _____ ____ ___ ___ + | __ )| \/ | ____|___ \( _ ) / _ \ + | _ \| |\/| | _| __) / _ \| | | | + | |_) | | | | |___ / __/ (_) | |_| | + |____/|_| |_|_____|_____\___/ \___/ + +Script to read data from BME280 +Sensor connected to i2c on address 76 (use sudo i2cdetect -y 1 to get the address ) +-> save data to database (table data_BME280 ) +sudo python3 /var/www/moduleair_pro_4g/BME280/get_data_v2.py + +''' + +import board +import busio +import json +import sqlite3 +from adafruit_bme280 import basic as adafruit_bme280 + +# Connect to the SQLite database +conn = sqlite3.connect("/var/www/moduleair_pro_4g/sqlite/sensors.db") +cursor = conn.cursor() + +# Create I2C bus +i2c = busio.I2C(board.SCL, board.SDA) +bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c, address=0x76) + +# Configure settings +bme280.sea_level_pressure = 1013.25 # Update this value for your location + +# Read sensor data + +#print(f"Temperature: {bme280.temperature:.2f} °C") +#print(f"Humidity: {bme280.humidity:.2f} %") +#print(f"Pressure: {bme280.pressure:.2f} hPa") +#print(f"Altitude: {bme280.altitude:.2f} m") + +temperature = round(bme280.temperature, 2) +humidity = round(bme280.humidity, 2) +pressure = round(bme280.pressure, 2) + +sensor_data = { + "temp": temperature, # Temperature in °C + "hum": humidity, # Humidity in % + "press": pressure # Pressure in hPa +} + +#GET RTC TIME from SQlite +cursor.execute("SELECT * FROM timestamp_table LIMIT 1") +row = cursor.fetchone() # Get the first (and only) row +rtc_time_str = row[1] # '2025-02-07 12:30:45' + + +# Convert to JSON and print +#print(json.dumps(sensor_data, indent=4)) + + +#save to sqlite database +try: + cursor.execute(''' + INSERT INTO data_BME280 (timestamp,temperature, humidity, pressure) VALUES (?,?,?,?)''' + , (rtc_time_str,temperature,humidity,pressure)) + + # Commit and close the connection + conn.commit() + + #print("Sensor data saved successfully!") + +except Exception as e: + print(f"Database error: {e}") + + +conn.close() \ No newline at end of file