電子工作好きのためのラズパイPico W拡張基板+マルチエアーセンサ―ボード
PicoWとGoogleスプレッドシートで遠隔制御
こんにちは、fireflakeのはちまるです。今回はベースボード単体で遊んでみようという事で、ベースボードについている、フォトカプラを使った電圧入出力機能を、Googleスプレッドシートから遠隔制御してみようと思います。
まずこんな配線をしました。

フォトカプラに繋がるターミナル(緑とオレンジ)にLEDを接続したところ
絵図にするとこんな感じになっています。

フォトカプラに繋がるターミナル(緑とオレンジ)にLEDを接続した様子の説明
簡単に言うと、Pico Wにプログラムを実行させて赤丸付きのフォトカプラをON状態にすると、黄色の線と青の線が通電してLEDに3.3Vが流れるようになっています。
さてここで、Pico WからいきなりフォトカプラをONにせずに「Pico WがGoogleスプレッドシートのデータを見に行って、1と書いてあったらフォトカプラをONにする」という仕組みを作ります。
Googleスプレッドシートを用意します。A1セルに0と書きました。

GoogleスプレッドシートのA1セルに0と書いたところ
APIキーというものを設定します。10~15分程度で設定できます。

APIキーの設定画面
これでPico WがGoogleスプレッドシートにアクセスしてA1セルのデータを読み取れるようになったので「A1のセルが1だったらLEDが光る」というプログラムを、Pico Wにざくっと書きます(試作コードなのでしっかりした検証はしていません)。Googleスプレッドシートのデータを読みに行く部分はこうなっています。
url = "{さっき設定したGoogleスプレッドシートにアクセスするURLとAPIキー}"
r = urequests.get(url)
google_sheet_data = r.content.decode()
r.close()
cell_val = json.loads(google_sheet_data)['values'][0][0]
print(cell_val)
if cell_val == '1':
led.on()
else:
led.off()
time.sleep(60)
そしておもむろにGoogleスプレッドシートのA1セルの値を1にします。少し待つと・・・。

GoogleスプレッドシートのA1セルに1と書いたところ
光ったあああああ。ぱちぱちぱち。

フォトカプラに繋がるターミナル(緑とオレンジ)に接続したLEDが光ったところ
あとはGoogleスプレッドシートの値を1と0で書き換えていると、LEDがチカチカ点滅します。という事で、今回はベースボードとPico Wだけでもこんな風に遠隔制御が出来るよ、という話でした。
ここから発展させて、他のデバイスや機械を制御しても面白いですね。また、サーバーでアプリ開発するのに比べると若干不便ではありますが、でもでもサーバーレスでこんなこともお手軽出来ちゃう、というのがPico WとGoogleスプレッドシートを組み合わせた良さだと思います。
しかしPico WとGoogleスプレッドシートの組み合わせすごいな・・・。以前はこんな風に、空気環境測定したデータをGoogleスプレッドシートにアップロードしてグラフにもしましたが、

Googleスプレッドシートで遠隔モニタリングをしたところ
今回はこれに加えて遠隔制御も出来たので、Pico WとGoogleスプレッドシートとセンサーがあれば、簡易的な「遠隔モニタリング+遠隔制御」のシステムがサクッと出来ちゃいますね。
そして恒例の宣伝になりますが、思わずX/Twitterを始めてみたので良かったらフォローお願いします。