見出し画像

こんにちは、「笑顔工学」の専門家、木村光範です。
笑顔工学って何??という方は、ぜひ自己紹介をご覧ください!

今回は、SwitchBot の温湿度計を使って、オフィスなどの環境データを「とても簡単に」管理する方法をまとめました。
プログラミングスキルの無い方でも、生成AIを使えば、こんなことができちゃうんですよ、というチャレンジでもあります。

SwitchBotとは、家庭内のさまざまなデバイスをスマートフォンやインターネットに接続し管理できるようにする商品群です。物理的なスイッチやボタンを遠隔操作できるデバイスなど、多くの機器が販売されています。

家庭用に設計されていることもあり、お手軽に買えて、スマートフォンのアプリで管理できるようになることが売りです。

今回の記事は、試しに、SwitchBotの温湿度計を使って、温湿度の情報を常にモニターに表示する、という仕組みを作ってみましょう。

SwitchBotのデバイスをインターネットに接続するためには、SwitchBot Hub(ハブ2またはハブミニ)を使用する必要があります。このハブを介することで、外出先からでもデバイスを操作できるようになります。
今回は、温湿度計もついている「SwitchBotハブ2」を導入してみましょう。

今回目指すのは、

  1. SwitchBotハブ2の温湿度計 からデータを定期的に取る

  2. Googleスプレッドシート に「日付・時間」「温度」「湿度」を追加

  3. スプレッドシートで自動でグラフを作り、「いつ暑くなるか?」を可視化する

この3ステップを、ChatGPTに手伝ってもらいながら行ってみる例を作成してみました。ChatGPTの力を借りれば思ったよりハードルが低いかも、という趣旨です。

必要なのは、スマートフォン(AndroidかiPhone)(タブレットでもOKです)と、SwitchBotハブ2です。

SwitchBot ハブ2の初期設定

まず、SwitchBotハブ2の初期設定を行いましょう。
早速、ChatGPTに、やりかたを聞いてみます。

ChatGPTに「SwitchBotハブ2の初期設定の方法を具体的にわかりやすく教えて」と聞いてみた結果が下記の通りです。

SwitchBot ハブ2の初期設定を具体的に解説

SwitchBot ハブ2は、家電やIoTデバイスをスマート化するための中心的な役割を担うデバイスです。ここでは、ハブ2を初めてセットアップする方に向けて、具体的でわかりやすい手順を説明します。



1. 必要なものを準備する

まずは、以下を用意してください:SwitchBot ハブ2
スマートフォン(iOSまたはAndroid)
SwitchBot アプリ
2.4GHz Wi-Fi(ハブ2は2.4GHz帯のWi-Fiにのみ対応)




2. SwitchBot アプリをダウンロードスマートフォンの App Store または Google Play にアクセスします。
SwitchBot アプリ を検索してインストールします。
アプリを開き、SwitchBotアカウントを作成(またはログイン)します。




3. ハブ2を電源に接続同梱されている USBケーブルとアダプター を使い、ハブ2を電源に接続します。
ハブ2が起動し、画面にセットアップ用のQRコードが表示されます。




4. アプリでハブ2を追加アプリのホーム画面右上にある「+」ボタンをタップします。
デバイス一覧から 「ハブ2」 を選択します。
アプリの指示に従って、Wi-Fi設定画面に進みます。




5. ハブ2をWi-Fiに接続

手順アプリ内で、接続したい Wi-Fiネットワーク を選択します。
注意: ハブ2は 2.4GHz帯のWi-Fi にのみ対応しています。
5GHz Wi-Fiを選ばないようにしてください。
Wi-Fiの パスワード を入力し、「接続」をタップします。
ハブ2がWi-Fiに接続されると、「セットアップ完了」の画面が表示されます。




6. クラウドサービスを有効化

SwitchBot ハブ2は、クラウドサービスを有効にすることで、APIやリモートアクセスが可能になります。

手順アプリのホーム画面で ハブ2 を選択します。
設定」メニューに進みます。
クラウドサービス」をオンにします。
SwitchBotアカウント にログインしていない場合は、ログインを求められるので、アカウント情報を入力します。




7. 動作確認アプリのホーム画面に戻り、ハブ2をタップして詳細画面を開きます。
温度や湿度が表示されていれば、正常にセットアップされています。




8. APIトークンの取得(必要な場合)

APIトークンを取得することで、SwitchBotハブ2のデータをプログラムから操作できます。

手順アプリのホーム画面右下にある「プロフィール」をタップ。
設定」→「App 認証設定」を選択。
トークンを生成」をタップし、表示されたトークンをコピーして保存します。




よくあるトラブルと対処法Wi-Fi接続に失敗する
2.4GHz Wi-Fiを使用しているか確認。
Wi-FiのSSID(名前)とパスワードが正しいか再確認。
クラウドサービスが有効化できない
SwitchBotアカウントにログインしているか確認。
インターネット接続が安定しているか確認。




これで準備完了!

SwitchBot ハブ2は、これで温湿度データを取得し始める準備が整いました。次のステップでは、このデータを活用して、Googleスプレッドシートへの記録やクラウドでの自動化に進むことができます!

ChatGPT 4oによる出力

まずは、この通りにセットアップしてみましょう!

データの取得から可視化まで

次に、何をしたらいいのか、またChatGPTに聞いてみます。

「SwitchBotハブ2の温湿度計 からデータを定期的に取る
Googleスプレッドシート に「日付・時間」「温度」「湿度」を追加
スプレッドシートで自動でグラフを作り、「いつ暑くなるか?」を可視化するこれをやりたいので、次のステップを教えて」

と、ChatGPTに聞いてみた結果が下記の通りです。

以下のステップで、SwitchBotハブ2の温湿度計からデータを取得し、それをGoogleスプレッドシートに記録し、さらに自動でグラフ化して可視化する方法を説明します。



ステップ1: SwitchBotハブ2からデータを取得

SwitchBot APIを使用して、ハブ2の温湿度データを取得します。

1. APIトークンを取得するSwitchBotアプリで「プロフィール」→「設定」→「App 認証設定」に進む。
「トークンを生成」をタップして、APIトークンを取得。
トークンを安全な場所にコピーして保存。




2. SwitchBotデバイスIDを取得するSwitchBot APIを使用するにはデバイスIDが必要です。
SwitchBot API Explorer を開き、APIトークンを入力して「デバイス一覧を取得」を実行。
ハブ2のデバイスIDを確認して保存。




3. Pythonスクリプトを作成してデータ取得

必要なライブラリをインストール:

bash

コードをコピーする

pip install requests google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client

Pythonスクリプト(データ取得とスプレッドシート記録)

以下のコードを使用してSwitchBot APIからデータを取得し、Googleスプレッドシートに書き込むスクリプトを作成します。

python

コードをコピーする

import requests import datetime from googleapiclient.discovery import build from google.oauth2.service_account import Credentials # SwitchBot APIトークンとデバイスID API_TOKEN = 'YOUR_SWITCHBOT_API_TOKEN' DEVICE_ID = 'YOUR_DEVICE_ID' # Googleスプレッドシートの設定 SPREADSHEET_ID = 'YOUR_SPREADSHEET_ID' RANGE_NAME = 'Sheet1!A:C' # 記録先範囲 # Google API認証情報 SERVICE_ACCOUNT_FILE = 'path/to/your/service_account.json' # SwitchBot APIから温湿度データを取得 def get_switchbot_data(): url = f'https://api.switch-bot.com/v1.0/devices/{DEVICE_ID}/status' headers = {'Authorization': API_TOKEN} response = requests.get(url, headers=headers) data = response.json() temperature = data['body']['temperature'] humidity = data['body']['humidity'] return temperature, humidity # Googleスプレッドシートにデータを書き込む def append_to_google_sheets(temperature, humidity): credentials = Credentials.from_service_account_file( SERVICE_ACCOUNT_FILE, scopes=['https://www.googleapis.com/auth/spreadsheets'] ) service = build('sheets', 'v4', credentials=credentials) sheet = service.spreadsheets() now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') values = [[now, temperature, humidity]] body = {'values': values} sheet.values().append( spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME, valueInputOption='USER_ENTERED', body=body ).execute() # メイン処理 if __name__ == '__main__': temperature, humidity = get_switchbot_data() append_to_google_sheets(temperature, humidity) print(f'記録完了: 温度={temperature}, 湿度={humidity}')



ステップ2: Googleスプレッドシートでの自動グラフ作成

1. スプレッドシートの準備Googleスプレッドシートを作成し、以下のようにヘッダーを入力:
A列: 日付・時間
B列: 温度
C列: 湿度
スプレッドシートのID を取得する:
URL例: https://docs.google.com/spreadsheets/d/YOUR_SPREADSHEET_ID/edit
YOUR_SPREADSHEET_ID を控えておく。




2. グラフの自動作成スプレッドシートのデータが更新されるたびにグラフを自動更新する設定を行います。
グラフ作成手順:
スプレッドシートでデータ範囲(A1:C100など)を選択。
メニューから「挿入」→「グラフ」を選択。
グラフエディタで「折れ線グラフ」などを選択。
グラフを配置し、タイトルを設定。
データがスプレッドシートに追加されるたびに、グラフも自動更新されます。




ステップ3: Herokuでの定期実行

Herokuを使用して、Pythonスクリプトを定期的に実行します。

1. Herokuアカウントを作成Heroku にアクセスしてアカウントを作成。
Heroku CLIをインストール(公式ガイド)。




2. Herokuプロジェクトを作成プロジェクトフォルダを作成し、Pythonスクリプトと requirements.txt を用意。
requirements.txt:
コードをコピーする
Procfile を作成(Heroku用の実行ファイル指定):
makefile




3. Herokuへのデプロイ以下のコマンドを使用してHerokuにデプロイ:
bash
Heroku Schedulerを追加して定期実行:
bash




まとめ

これで、SwitchBotハブ2の温湿度データをGoogleスプレッドシートに記録し、グラフ化するシステムが完成です。Herokuを使うことで、定期的なデータ収集も自動化できます。ぜひ試してみてください!

ChatGPT 4oによる出力

どうですか?
これだけで、なんとなくステップを踏めばできそうな気がしませんか?

もし、わからないところ、行き詰まったところ、もっと「こうしたい」ところなどがあれば、さらにChatGPTに聞いてみれば、答えてくれます。

この答えだけでは、ちょっと難しい、と感じられる方も多いかと思います。そんなときは、追加で色々質問してみてください。

今回、私のほうでは実際に動かすところまでは試していませんが
なんとなく動きそうな気もします。

こんな感じで、皆様も、何か実現したいと思ったことを、とりあえずやってみる、ということを、ぜひ試してみてください。

最後までお読みいただき、ありがとうございました。

この記事を少しでも良いと思っていただいたら「♡」を押して応援お願いします!noteのアカウントが無くても押せますので、気軽に押していただければ助かります!私の笑顔の画像が出ます(笑)

もちろん、フォロー、フィードバックなどをいただければ、さらに喜びます。よろしくお願いします!

共に学び、成長し、笑顔あふれる社会を作り上げていきましょう。

いいなと思ったら応援しよう!