/ 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)