- 必要な材料:
- パート1:SSHとVNCを使用したRaspberryPiのセットアップ
- パート2:Amazon開発者アカウントを設定し、RaspberryPiでAlexaVoiceサービスを構成します。
- パート3:Alexa Piホームオートメーション用のPubNubとIFTTTのセットアップ:
- パート3-2:Amazon Alexaサービス用のIFTTTのセットアップ:
- パート4:ハードウェア接続と回路図:
- パート5:LEDを制御するためのPythonコード:
自分の声で操作できるスピーカーを考えたことはありますか!!!このように家電製品を制御し、これらの家電製品をよりスマートにできるとしたらどうでしょうか。AIおよびIoTベースのシステムの時代に向かっているため、音声アシスタントの人気が高まっています。 Googleアシスタント、Apple Siri、AmazonAlexa について聞いたことがあるでしょう。これらは、すべての音声ベースのAIシステムです、どのような相互にこれらが違うことは彼らの生態系であり、これはどこでアマゾンアレクサが最も傑出した。グーグル、アップル、アマゾン、これらすべての企業はすでにスマートスピーカーを発売しましたが、アマゾンは最初にスマートスピーカーを導入しました。アマゾンエコー、エコードットスポットなどは、市場で入手可能なスマートスピーカーです。
Amazonは、人気の高い音声サービスであるAlexaを使用するためのAPIを提供しています。オープンソースであり、Githubで入手できます。さらに、Raspberry PiなどのカスタムデバイスにAlexaをインストールまたは統合して、そのデバイスでAmazonEchoの全機能を利用できます。
Alexa音声サービスを使用すると、音楽の再生、天気に関する情報の取得、チケットの予約などを行うことができます。あなたがしなければならないのは「尋ねる」だけです。このチュートリアルでは、AlexaVoiceサービスを使用してRaspberryPiGPIOを制御してLEDを点灯させる方法を説明します。
必要な材料:
ハードウェア要件:
- Raspberry Pi3またはRaspberryPi 2モデルBおよびSDカード(8GB以上)
- 3.5mmAUXケーブル付き外部スピーカー
- WebカメラまたはUSB2.0マイク
- リレーモジュール
- 導いた
注: ウェブカメラにはマイクが組み込まれているため、USB2.0マイクの代わりにこれを使用します。
ソフトウェアアプリとWeb要件:
- Alexa VoiceServicesにアカウントを登録する
- PubNubにアカウントを登録する
- IFTTTにアカウントを登録する
また、RaspberrypiはすでにRaspbianOSでセットアップされており、インターネットに接続されていることを前提としています。これらを配置したら、チュートリアルを進めましょう。Raspberry Piを初めて使用する場合は、最初にRaspberrypiの使用を開始してください。
チュートリアル全体は、主に次の5つの部分に分かれています。
- モニターがない場合は、SSHとVNCを使用してRaspberry Piをセットアップする必要があります。また、USBマイクの接続も確認してください。
- Amazon開発者をセットアップし、RaspberryPiにAlexaをインストールします
- Alexaホームオートメーション用のPubNubとIFTTTのセットアップ
- ハードウェア接続
- Alexa PiGPIOコントロールのPythonコード
単に音声でLEDを制御したい場合は、Bluetoothベースの音声制御LEDプロジェクトも確認してください。
パート1:SSHとVNCを使用したRaspberryPiのセットアップ
まず、RaspberryPiをSSHおよびVNCに接続します。Raspberry Piの公式Webサイトにあるこのチュートリアルに従うために、リンクを以下に示します。
SSHの場合:SShリンク
VNCの場合:VNCリンク
モニターをお持ちの場合は、このステップを終了して、Alexa Voice Service(Avs)のセットアップであるステップ2に直接進むことができます。その前に、マイクの接続を確認する必要があります。
Raspberry Piを使用したWebカメラマイクの確認:
1. Raspberry Piターミナルを開き、arecord-lコマンドを入力します。これにより、以下に示すように、RaspberryPiに接続されているハードウェアデバイスが表示されます。
カード1は、これから使用するWebカメラのマイクです。表示されない場合は、Webカメラに欠陥がある可能性があります。
2.次に、次のようにrecord audioコマンドを実行して、マイクが機能しているかどうかを確認します。
arecord /home/pi/Desktop/test.wav -D sysdefault:CARD = 1
3.録音したオーディオを再生するには、次のコマンドを入力します。
omxplayer -p -o local /home/pi/Desktop/test.wav
Raspberry PiをHDMIケーブルを使用してモニターに接続している場合、デフォルトでは、オーディオ出力はモニターのスピーカーを介して行われます(スピーカーが内蔵されている場合)。したがって、3.5mmに変更するには、次のコマンドを入力する必要があります。
sudo raspi-configを実行し、Advanceオプションに移動します。
リストから[オーディオ]を選択し、[Force 3.5mm]を選択し、[OK]を選択して、RaspberryPiを再起動します。
これで、3.5mmジャックから音が聞こえるはずです。
注:マイクの入力音声ラウドネスを増減する場合は、端末のタイプ アルサミキサー を使用します。F6を押して、端末からサウンドカードを選択します。
F4を押してマイクdBゲインを変更し、必要に応じて設定します。
USB 2.0マイクを使用している場合は、マイクを確認する手順は同じです。ここでは、USBマイクロフォンにWebカメラを使用しました。
パート2:Amazon開発者アカウントを設定し、RaspberryPiでAlexaVoiceサービスを構成します。
これについては、AmazonEchoスマートスピーカーを作成した前のチュートリアルですでに詳しく説明しました。ここでは 、Alexaを使用したRaspberry Pi GPIOの制御に重点を置いているため、プロセス全体を再度説明することはしません。前の記事を読んで、RaspberrypiにインストールされたAlexa音声サービスでスピーカーを準備してください。
Alexaをテストするには、名前を言って目を覚まします。チュートリアルの最後にあるデモビデオを確認してください。
あなたは彼女にあなたの街の気温について尋ねて、それが機能しているかどうかをチェックすることができます。
パート3:Alexa Piホームオートメーション用のPubNubとIFTTTのセットアップ:
以下のためにラズベリーパイGPIOを制御する 使用して、このアレクサパイを、我々は助けを必要とPubNubのpython SDKとIFTTTを。Alexaを介してIFTTTにコマンドを送信し、PubNubがRPiに信号を送信してLEDをオン/オフにします。したがって、最初にPubNubをRaspberryPiにインストールします。
パート3-1:PubNub Python SDKのインストール:
PubNubは、グローバルネットワーク上でメッセージをパブリッシュ/サブスクライブするためのメッセージングAPIを提供します。ここでは、IFTTTとAlexaを使用してPubNubにメッセージを公開し、Raspberry PiGPIOを低/高にします。このメッセージはRaspberryPiによって受信され、Piはそれに応じてLEDをオンまたはオフにします。以下の手順に従って、RaspberryPiでPubNubをセットアップします。
手順1: RPiでターミナルを開き、次のコマンドを実行してSDKをインストールします。
sudo pip install pubnub == 3.9.0
3.9.0バージョンのみをインストールします。他のバージョンは、最後に実行するPythonスクリプトでは機能しません。
ステップ2:次に、PubNubに移動 し、資格情報を使用してサインインします。
ステップ3: 。後で使用する パブリッシュキーとサブスクライブキー を取得します。
パート3-2:Amazon Alexaサービス用のIFTTTのセットアップ:
IFTTT は無料のウェブベースのサービスで、ユーザーは「レシピ」と呼ばれる単純な条件付きステートメントのチェーンを作成できます。これは、Gmail、Facebook、Instagramなどの他のウェブサービスへの変更に基づいてトリガーされます。 IFTTT は、「If ThisThenThat」の略語です。
このプロジェクトでは、IFTTTを使用して、 RPiで実行されているAlexaサービスが受信した音声コマンドに基づいてRaspberry PiGPIOをLOW / HIGHにします。
アプレットを作成するには、次の手順に従います。
ステップ1:-資格情報を使用してIFTTTにログインするか、アカウントを持っていない場合は サインアップ します。
ステップ2:- [マイアプレット]で、[新しいアプレット]をクリックします
ステップ3:- +これをクリックします
ステップ4: -Amazon Alexaを検索してクリックし、Amazon開発者アカウントの詳細を使用してサインインします。
ステップ5:- トリガーを選択し 、特定のフレーズを言います
ステップ6:- フレーズとして 「ライトをオンに する 」を入力し 、[トリガーの作成]をクリックし ます。
ステップ7:- + thatをクリックします
ステップ8: -Webhookを検索し、 それをクリックし て 、[Make a WebRequest ]を選択 します。
ステップ9: -WebhooksはREST WEBリクエストを提供し、PubNubから取得したパブリッシュキーとサブスクライブキーを使用して、次のURLを変更します。
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/ {"requester": "Alexa"、 "trigger": "light"、 "status":1}
手順10:- 変更したURLを[URL]テキストボックスに貼り付けます。
ステップ11:- メソッドをGET、コンテンツをapplication / jsonに設定し、[保存]をクリックし ます。
手順12:- 同じ手順に従って、「 ライトをオフにする 」のトリガーを作成し、URLを次のように変更します。
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/ {"requester": "Alexa"、 "trigger": "light"、 "status":0
ステップ13:-これ で、デモ用のすべてのWebコンポーネントの準備が整いました。
パート4:ハードウェア接続と回路図:
このプロジェクトでは、テスト用のシンプルなLEDが必要です。以下は、AmazonAlexaでRaspberryPiGPIOを制御するための回路図とハードウェア接続です。
PythonスクリプトでGPIO18を使用するので、LED18をリレー接続します。これはPythonスクリプトで変更できます。
パート5:LEDを制御するためのPythonコード:
このチュートリアルの最後にある完全なPythonスクリプトを見つけてください。
Pythonコードのpubnubキーを使用してPubキーとSubキーを編集する必要があります。
#パブキーを初期化します pub_key = "***************************" sub_key = "*********** ************* "
スクリプトを実行します
python alexaRpi.py
これでデモの準備が整いました。続行する前に、パート1の3つのサービスすべて(3つの端末)を実行していることを確認してください。
コマンドを送信するには、コマンドを送信するたびに「Alexa」を呼び出してAlexaサービスをウェイクアップする必要があります。ビープ音が鳴ります。ビープ音が聞こえたら、「 Alexa Trigger Turn ontheLight。 」一瞬でライトが点灯するのがわかります。そして、「 Alexa Trigger Turn off the Light 」と言うと 、ライト がオフになります。
それでおしまい…。さらにリレーを追加してACアプライアンスを制御できます。さらに、RaspberrypiのリレーとGPIOピンを追加して多くのアプライアンスを制御することもできます。
以下の完全なコードとデモンストレーションビデオを確認してください。また、ここですべてのホームオートメーションプロジェクトを確認してください。