基本的な作業は「Raspberry Piで温度と湿度を定期的に取得してスプレッドシートに記録する。」と同じになります。
書き換えが必要な箇所は、次の通りです。
・12行目「JSONファイル名(絶対パスで記述)」
絶対パスでなので、例えば「/home/pi/」から書き始めます。
こちら参照
・16行目「スプレッドシートID」
・37行目「900」
測定の間隔です。秒数ですので、900ですと15分おきの測定になります。適宜変更してください。
ただ、使用している温湿度センサー(DHT22/AM2302)のライブラリが異なりますので、そちらに対応したPythonスクリプトだけ載せておきます。
***
▼ Pythonスクリプト
Raspberry Piにて測定した温度と湿度の値を、スプレッドシートの「fromPi」シート(こちら参照)に書き込むためのPythonスクリプトです。
#!/usr/bin/env python3 import Adafruit_DHT import time import gspread import json from oauth2client.service_account import ServiceAccountCredentials scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive'] credentials = ServiceAccountCredentials.from_json_keyfile_name('JSONファイル名(絶対パスで記述)', scope) gc = gspread.authorize(credentials) SPREADSHEET_KEY = 'スプレッドシートID' worksheet = gc.open_by_key(SPREADSHEET_KEY).worksheet('fromPi') sensor = Adafruit_DHT.DHT22 pin = 4 while True: x = 0 while x < 1: try: humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) x = 1 except: x = 0 worksheet.update_cell(2,1, '{0:0.1f}'.format(temperature)) worksheet.update_cell(2,2, '{0:0.1f}'.format(humidity)) time.sleep(900)
書き換えが必要な箇所は、次の通りです。
・12行目「JSONファイル名(絶対パスで記述)」
絶対パスでなので、例えば「/home/pi/」から書き始めます。
こちら参照
・16行目「スプレッドシートID」
スプレッドシートを開いた状態でURLの下記部分に表示されます。ちょっと長めです。
https://docs.google.com/spreadsheets/d/ここの値をコピペ/edit#gid=0
・22行目「4」
接続したGPIO番号を記述。
https://docs.google.com/spreadsheets/d/ここの値をコピペ/edit#gid=0
・22行目「4」
接続したGPIO番号を記述。
・37行目「900」
測定の間隔です。秒数ですので、900ですと15分おきの測定になります。適宜変更してください。
あと、Macからリモートでぐちゃぐちゃ作業していたら、どこかのタイミングで上のPythonスクリプトの改行コードが<CR>になってしまっていて、デーモン化の際にエラーで引っ掛かりました……。
改行コードが<CR>の場合、viでファイルを開くと行末に「^M」と表示されるので、コマンドモードで一発(「:%s/^M//g」)で削除できます。(参考:「テキストファイルの行末に^Mが表示される」)
***
ということで、とりあえずはラズパイZeroを使ってスプレッドシートへの記録ができるようになりました。
夏場にハウスで使おうと思っているので、次なる課題は、電源と防水です。いろいろ試してみようと思います。
・関連投稿
Raspberry Pi Zero WHを使って、格安で温湿度データロガーを作る。(1/2)【準備編】