PR

ラズパイPico W×GASで自作!「LINEで動く温湿度&スマートリモコン」完全ロードマップ

ハードウェア制御 / 電子工作
スポンサーリンク

はじめに

こんにちは!ニンジンです🥕

Raspberry Pi Pico Wを使った「愛犬を守る!格安IoT温湿度見守りLINE Bot」全5回の連載がついに完結しました。最後まで読んでくださった皆さん、ありがとうございます。

この記事は連載の総集編として、完成したシステムの全貌と第1回から第5回までの流れをまとめています。ハードウェアの組み立てからネットワークの構築まで、一通りの流れをここで振り返れます。これから自作にチャレンジする方は、ブックマークして開発の参考にしてもらえると嬉しいです。

スポンサーリンク

1.今回完成した「愛犬見守りIoTシステム」の全貌

まずは、システムの全体像を振り返ってみましょう。

1-1. できること:温湿度監視からエアコン遠隔操作まで

留守番中の愛犬が、暑さや寒さで苦しんでいないか?そんな不安を解消するために実装した機能がこちらです。

  • リアルタイム温湿度監視: 部屋の温度と湿度を常にセンシングします。
  • 危険値のLINE自動アラート: 室温が「28度」を超えたら、即座にスマホのLINEへ警告メッセージを送信します。
  • 外出先からのエアコン遠隔操作: 警告を受け取ったら、LINEから「冷房ON」とメッセージを送るだけで、自宅のPico Wが赤外線を発信してエアコンを起動してくれます!

1-2. 全体構成図(Pico W × LINE Bot × GAS)

このシステムで一番工夫したのが、自宅ルーターのファイアウォールをどう乗り越えるか、という部分です。Pico Wをそのままインターネットに晒すのはセキュリティ的にちょっと怖いので、GAS(Google Apps Script)を”私書箱”として間に挟む構成にしました。

  1. LINEでメッセージを送ると、WebhookでGASが受け取ります。
  2. GASはその内容をスプレッドシート(またはプロパティ)にいったん保存しておきます。
  3. Pico W側が定期的にGASに「何か指示ある?」と問い合わせ(ポーリング)、指示があれば赤外線を発射します。

この仕組みにより、直接つながっていなくても安全に命令を届けられる「疑似双方向通信」が実現できます。

スポンサーリンク

2.【全5回】見守りLINE Bot開発ロードマップ(インデックス)

ここからは、全5回にわたる開発工程のリンク集です。ご自身のつまずいているポイントや、気になるところからぜひ読んでみてください!

2-1. 【第1回】ラズパイPico WとDHT11で温湿度を取得!回路図とPythonコード解説

このシリーズの出発点となる、ハードウェア構築の回です。ブレッドボードの使い方からPico WとDHT11センサーの結線方法まで、写真と回路図を使って順を追って説明しています。MicroPythonのコードもあわせて解説しているので、「センサーから値を読み取る」という電子工作の基本がここで一通り押さえられます。

→ [第1回の記事を読む]

2-2. 【第2回】【最新版】LINE Messaging APIの始め方とアクセストークン取得手順

LINE Bot開発の最初の関門、LINE側の設定をまとめた回です。開発者コンソールでのチャネル作成から、意外とハマりやすいアクセストークンの取得まで、最新の画面キャプチャをもとに手順を追って説明しています。

→ [第2回の記事を読む]

2-3. 【第3回】ラズパイPico WからLINE Botへ通知を送るPythonプログラムの実装方法

第1回と第2回の内容をここで組み合わせます。urequestsライブラリを使って、取得した温度が28度を超えたらスマホにLINE通知を飛ばす仕組みを作ります。自分の書いたコードが実際のスマホを鳴らす——IoTならではの面白さを実感できる回です。

→ [第3回の記事を読む]

2-4. 【第4回】ラズパイPico Wで赤外線リモコンを自作!送受信回路とPWM制御のやり方

この回がハードウェア工作のいちばんの見どころです。赤外線受光モジュールで本物のエアコンリモコンの信号を読み取り、トランジスタ(C1815)で増幅した赤外線LEDから発射する仕組みを作ります。38kHzのPWM制御など、少しマニアックですがやってみると面白いハードウェア制御の世界です。

→ [第4回の記事を読む]

2-5. 【第5回】GASとLINE Bot(Webhook)でPico Wを遠隔操作!双方向通信の作り方

ルーターの壁を越えるクラウド連携の回です。GASを使ったWebhookの構築に加え、スタンドアロン運用(PCから切り離した単独稼働)で地味にハマりやすい「print文によるバッファ詰まりフリーズ」の対処法もまとめています。実際に動かし続けるためのノウハウが詰まった回です。

→ [第5回の記事を読む]

スポンサーリンク

なぜ「市販のスマートリモコン」ではなく「完全自作」なのか?

「数千円出せば市販のスマートリモコンが買えるのに、なぜわざわざ自作するの?」と思った方もいるかもしれません。

3-1. 仕組みを知れば楽しい!ハードからPython・GASまで身につくスキル

市販品は便利ですが、中身は完全な「ブラックボックス」です。ゼロから自作すると、センサーの仕組み・電子回路の組み方・Pythonでのハードウェア制御・APIを使ったネットワーク通信・クラウド(GAS)連携、といった知識がまとめて身につきます。どれも業務自動化やツール開発に使える、つぶしの利くスキルです。

3-2. トラブルシューティングこそが最強の財産

第5回で直面した「Pico Wが数時間でフリーズする」という謎の現象。原因が「print文のバッファ詰まり」だと突き止めて解決するまでの経験は、市販品を買っていたら絶対に得られません。こういう泥臭いトラブル対応の積み重ねが、実際の場面で役に立つ力になると思っています。

スポンサーリンク

【次回予告】Pico Wの可能性 次のIoT拡張アイデア

「温湿度×赤外線」の基本が押さえられれば、あとはアイデア次第でいろいろ作れます。このシステムをベースにした拡張アイデアをいくつか紹介します。

4-1. 温湿度の次はこれ ニンジンが考えているアップデート案

  • OLEDディスプレイ(SSD1306)連携: LINEを開かなくても、Pico W本体の小型画面に温湿度をリアルタイム表示できます。ドットフォントで表示するのが地味に楽しいです。
  • 人感センサー(PIR)連携: 「部屋に誰もいなくなって15分後に自動でエアコンOFF」という省エネ機能を自作できます。
  • 小型サーボモーター(SG90)駆動: 赤外線が使えない古い家電や壁の照明スイッチを、物理的に押し下げる仕組みです。ちょっとロマンがあります。
  • 気圧センサー(BMP280)連携: 気圧の急低下を検知して「頭痛に注意」とLINEで知らせてくれる気象病対策Botです。ペットだけでなく飼い主にも役立ちます。

4-2. 皆さんはどれを作ってみたいですか?リクエスト大募集!

次に取り上げるテーマは、皆さんのリクエストを参考に決めようと思っています。「これが読みたい」「自分ならこれを追加する」といった意見を、コメント欄やSNSで気軽に教えてもらえると嬉しいです。

また次の記事でお会いしましょう!


ニンジン🥕アイコン

Follow me on X

本ブログの中の人「ニンジン🥕」はXやってます。新着記事はいち早くポストでお知らせしているので、見逃したくない方は @ninjin_py_vba をフォローしてみてください🥕

@ninjin_py_vba をフォロー

この記事が役に立ったら、シェアしてもらえると嬉しいです🥕

Xでポスト はてブ LINE Pocket

PROJECT LOG — SERIES INDEX
スポンサーリンク

シリーズ記事一覧

電子工作・自動化ツールの製作記録をシリーズごとにまとめています。気になるテーマからお読みください。


Tapo P110Mの消費電力をExcelレポート化する【年次集計・電気代試算・セキュリティ判断編】
FastAPI+openpyxlでTapo P110Mの消費電力をExcelレポート化。15秒間隔の生ログを日次集計する設計や、31円/kWhでの電気代試算、外部公開を見送った理由まで解説します。
Tapo P110M × FastAPIで電力監視ダッシュボードを作る【SQLite記録・リアルタイム堅牢化編】
Tapo P110MのデータをSQLiteに記録し、FastAPI+Uvicornでリアルタイム電力監視ダッシュボードを作る方法を解説。通信失敗時の自動復旧など堅牢化のポイントも紹介します。
Tapo P110M × python-kasaで自作PDUを作る【環境構築・Unsupported device(TPAP)エラー解決編】
Tapo P110Mをpython-kasaで自作PDU化。「Unsupported device」TPAPエラーの原因と対処法、MACアドレスでIP変動に強くする設計、個別/一括ON-OFFの実装コードまで解説します。
Raspberry Pi Pico Wで作る熱中症警戒アラート表示器
Raspberry Pi Pico WとDHT11、0.96インチOLEDで熱中症警戒アラート表示器を自作。気温・湿度から簡易的な暑さ指数を計算し、5段階の顔アイコンで危険度を表示する作り方をコード付きで解説します。
CustomTkinterでオリジナルのメニューバー(File・表示・設定・Help)を自作する
CustomTkinterには無いメニューバー(File・表示・設定・Help)を、CTkFrameとCTkButtonで自作する方法を、5段階のサンプルコードとダウンロード付きで解説します。

コメント