Raspberry PiとPythonでAmazon AlexaからChromecastを制御
Amazon EchoでGoogle Chromecastを音声操作するための、Raspberry Pi、MySQL、AWS Lambdaを活用した更新版ガイド。
概要
AlexaとChromecastの橋渡し
AlexaでChromecastを操作できたら便利だと思いませんか?このステップバイステップチュートリアルでは、Raspberry Pi、MySQL、AWS Lambdaを使ってそれを実現する方法を解説します。
注: 最新のスクリプトとプロジェクトファイルは、 GitHubリポジトリ で公開しています。
このアプローチは、「AlexaDev Tuesday: Innovative Alexa Skills Spotlight」で LoveMyEcho に取り上げられ、開発者が複雑な統合課題をどう解決できるかを示しています。
なぜRaspberry Piなのか?
Piのコンパクトなサイズ、低消費電力、Raspbianとの互換性により、AlexaがChromecastに到達するために必要なMySQLデータベース、Pythonスクリプト、ネットワーク設定のホストに最適です。
仕組み
- ユーザーが「アレクサ、Chromecastを起動して」と呼びかけスキルを開始
- Alexaがリクエストされたコマンド(デフォルトはYouTube検索)をスキルに送信
- スキルがコマンドをPi上のMySQLテーブルに書き込み
- バックグラウンドPythonプロセスがテーブルを読み取り、Chromecastコマンドに変換して実行
- 実行後、データベースエントリを削除
- Alexaがユーザーに完了を通知
ステップ1:Raspberry Piをポートフォワーディング用に準備
開始前に、Piがインターネットに接続済みで、IPアドレスを把握していることを確認。
PiのIPを確認:
- Piまたは別のPCでターミナルを開く
ifconfig(Linux)またはipconfig(Windows)を実行し、デフォルトゲートウェイを特定
ゲートウェイアドレスでルーターの管理画面にアクセスし、以下のポートフォワーディングを設定:
- 3306 – MySQL(デフォルトポート)
- 80 – phpMyAdmin(オプション)
- 22 – SSH(オプション)
セキュリティ注意: これらのポートを開放するとネットワークがリスクにさらされます。強力なパスワードを使用し、信頼できるIPのみにアクセスを制限することを検討してください。
ステップ2:PiにMySQLをインストール
Piで以下を実行:
sudo apt-get update && sudo apt-get install mysql-server --fix-missing
sudo mysql_secure_installation でセキュリティ設定を行い、スキル専用ユーザーを作成。
ステップ3:phpMyAdminのインストール(オプション)
チュートリアル に従ってphpMyAdminをセットアップし、データベース管理を容易に。
付属の build.sql を実行して必要なスキーマを作成。
ステップ4:スクリプトの設定
index.py と raspberry.py を開き、プレースホルダーを置換:
- RASP_PI_DNS – MySQLサーバーのホスト名またはIP
- MYSQL_USER – MySQLユーザー名
- MYSQL_PASS – MySQLパスワード
- DB_NAME – データベース名
- CHROMECAST_NAME – 対象Chromecastのデバイス名
ステップ5:AWS Lambdaへデプロイ
speechAssets と raspberry.py 以外のすべてのファイルをZIP圧縮し、以下を実行:
- AWS Management Console にログインし、Lambdaを開く
- 「関数の作成」をクリック、ブループリントはスキップ、名前を
alexaChromecast、ランタイムをPython 3.9に設定 - 「.zipファイルをアップロード」を選択し、アーカイブをアップロード
- ハンドラーを
index.lambda_handler、ロールを「基本実行」、タイムアウトを30秒に設定
ステップ6:Amazon Developer Consoleでスキル作成
- Amazon Developer Console にアクセスし、Alexa Skills Kitを開く
- 「新しいスキルを追加」をクリック、名前を「Alexa Chromecast」、呼び出し名を「chromecast」に設定
speechAssetsフォルダからintentSchema.jsonとsample-utterances.txtをアップロード- Lambda ARNを「エンドポイント」フィールドに貼り付け。アカウントリンクは無効化
ステップ7:Raspberry Piスクリプトの実行
raspberry.py をPiに転送(USBまたはWinSCP経由)。以下で実行:
python3 raspberry.py
ステップ8:(オプション)Cronジョブで自動起動
以下の内容で launcher.sh を作成:
#!/bin/bash
sudo python3 /path/to/raspberry.py
起動時に launcher.sh を実行するcronジョブを追加:
@reboot /path/to/launcher.sh
Alexa Developer Consoleの「テスト」タブでスキルをテスト。すべて正しく設定されていれば、音声コマンドでChromecastを制御できるはずです。
動画デモ: こちらで視聴
製造プロセス
- Raspberry PiとDS18B20によるプロフェッショナルな温度監視
- Raspberry Pi 2とADS-WS1で屋外気象観測ステーションを構築
- Raspberry Piでサーバークローゼットの温度を正確に監視
- OpenCVでRaspberry Pi上級卓球球追跡
- LIRCでプロフェッショナルなRaspberry Piユニバーサルリモコンを構築
- Raspberry PiでPIRモーションセンサーとLEDを制御
- Raspberry PiでRFをDCに変換: エンベロープ検波器の構築とトラブルシューティング
- Cycle Chaser: Raspberry Piで自転車をナイトタイムライトショーに変身
- Raspberry Piで低コスト土壌水分センサーを構築 - スマート灌漑に活用
- Raspberry Piベースの泥棒検知器を構築 - ステップバイステップガイド
- Raspberry Piセンサーをマスター: 電子工学と通信プロトコルの実践ガイド