/ Google_Sheet_Sensor_Logging / bme280_logger.py
bme280_logger.py
1 # SPDX-FileCopyrightText: 2020 Carter Nelson for Adafruit Industries 2 # 3 # SPDX-License-Identifier: MIT 4 5 import time 6 from datetime import datetime 7 import board 8 import adafruit_bme280 9 from google.oauth2.service_account import Credentials 10 from googleapiclient.discovery import build 11 12 #--| User Config |----------------------------------------------- 13 SERVICE_ACCOUNT_FILE = 'YOUR_CREDENTIALS_FILE.json' 14 SPREADSHEET_ID = 'YOUR_SHEET_ID' 15 DATA_LOCATION = 'A1' 16 UPDATE_RATE = 60 17 #--| User Config |----------------------------------------------- 18 19 # Sensor setup 20 bme = adafruit_bme280.Adafruit_BME280_I2C(board.I2C()) 21 22 # Google Sheets API setup 23 SCOPES = ['https://spreadsheets.google.com/feeds', 24 'https://www.googleapis.com/auth/drive'] 25 CREDS = Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES) 26 SHEET = build('sheets', 'v4', credentials=CREDS).spreadsheets() 27 28 # Logging loop 29 print("Logging...") 30 while True: 31 values = [[datetime.now().isoformat(), bme.pressure, bme.temperature, bme.humidity]] 32 SHEET.values().append(spreadsheetId=SPREADSHEET_ID, 33 valueInputOption='RAW', 34 range=DATA_LOCATION, 35 body={'values' : values}).execute() 36 time.sleep(UPDATE_RATE)