update
This commit is contained in:
74
BME280/get_data_v2.py
Normal file
74
BME280/get_data_v2.py
Normal file
@@ -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()
|
||||||
Reference in New Issue
Block a user