工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

ArduinoYúnを介したAlexa制御LED

コンポーネントと消耗品

>
Arduino Yun
× 1
Amazon Alexa Amazon Echo
× 1
LED(汎用)
× 1
マイクロSDカード
× 1

アプリとオンラインサービス

>
AmazonWebサービスAWSIoT
Amazon Web Services AWS Lambda
Amazon AlexaAlexaスキルキット

このプロジェクトについて

動機

Alexaを搭載したスマートミラーを構築して以来、家中のさまざまなハードウェアやホームオートメーションデバイスを接続する方法を探していました。新しいAlexaSmart Home APIを使用すると、カスタムデバイスを直接制御できると聞いたので、試してみることにしました。

このエコー制御のクリスマスツリーは古いバージョンのAPIを使用していますが、優れた出発点として機能し、IoTをターゲットにしたArduinoYúnに私を向けました。これにより、Linuxシステムとマイクロコントローラーがすべて1つの便利なパッケージに収められます。

私が自分で設定したタスクは、スマートホームスキルに相当する「ハローワード」でした...音声を使用してLEDをオンまたはオフにするだけです。 2x3のLEDアレイが横になっているので、スタイルポイントのオンとオフを切り替えることにしました。

詳細は以下にありますが、結果は次のとおりです。

プロジェクトの概要

このプロジェクトは、ArduinoYúnボードをAlexa Smart Homev3スキルに接続することを目的としています。これは、Alexa Smart Home Skill(v3)、AWS Lambda Function、AWS IoT Thing、およびIoTThingにサブスクライブされているArduinoYúnを使用して行われます。

下の図では、ライトをオンにすることに関係するこのプロジェクトのすべての主要な部分を見ることができます。

<図>

私はそれを一度に一つずつ取り、あなたが行く間にテストすることをお勧めします。プロジェクトには非常に難しいものはありませんが、相互に関連する部分がたくさんあります。したがって、これを実行しているときに頭を少し引っかいてもがっかりしないでください。

私は各ステップをミニプロジェクトと考えており、それぞれ1時間以上かかる可能性があります。

ステップ1:スマートホームスキルとコネクテッドラムダを作成します。

ここでは、スマートホームスキルを作成し、ラムダ関数を作成して、これら2つをリンクします。このプロセスは、このチュートリアルで非常によく説明されています。 LWAの手順に従って、スキル構成で使用されるクライアントIDとクライアントシークレットを取得してください。

この段階で、Alexaダッシュボードにログインして、新しいスマートホームデバイス(この時点ではLambda関数の応答のみ)を見つけることができれば、良いスタートを切ることができます。

チュートリアルではPython3.6を使用していますが、代わりにPython2.7を使用していることに注意してください。 handle_discovery をコピーできます 私のラムダ関数の一部ですが、この時点で機能するのはそれだけです。

ステップ2:IoTモノを作成します。

何もできない場合、ディスカバリーはあまり良くないので、AWS IoT Thingを作成して、接続に何かを与えましょう。

これは、このページの手順に従って実行できます。作成したものの「ThingShadow」を使用します。これは、Thingの状態のコピーであり、必要な変更を加えたものです。 Arduinoは、このThing Shadowへの変更(「デルタ」)を公開する通知フィードをサブスクライブします。 Thing Shadowsの詳細については、こちらのリンクをチェックしてください。

Thingを作成したら、Thing IoT Webダッシュボードの[セキュリティ]タブに移動し、公開鍵、秘密鍵、および証明書をダウンロードします。これが完了したら、[アクティブ化]をクリックして、ルート認証局のキーを取得します。これも保存します。これらは、IoTシャドウを認証するためにArduinoによって使用されます。

モノの[シャドウ]タブに移動し、[編集]をクリックします。次のようにシャドウにプロパティを追加します:

  {"reported":{"light": "on"}}  

ステップ3:LambdaをThingに接続します。

Thingを配置したら、Lambdaコードを更新してThingシャドウを更新できます。これで、ラムダ関数から完全なコードをコピーできますが、Discovery関連の変更はすべて保持してください。

また、Lambda関数に関連付けられているAWSIAMロールに「AWSIoTFullAccess」権限があることを確認する必要があります。 Lambda ConfigurationWebダッシュボードの下部に自分の役割が表示されます。この権限により、AWS IoTThingに接続できます。

これが完了したら、Lambda関数の設定ページに移動します。関数の[テスト]タブで、次のv3固有のJSONを使用して「TurnOff」というディレクティブを追加します。ヘッダー名を「TurnOn」に変更するだけで、「TurnOn」と呼ばれる2番目のテストを追加することもできます。

  {"directive":{"header":{"namespace": "Alexa.PowerController"、 "name": "TurnOff"、 "payloadVersion": "3"、 "messageId": "1bd5d003- 31b9-476f-ad03-71d471922820 "、" correlationToken ":" 1234 "}、" endpoint ":{" scope ":{" type ":" BearerToken "、" token ":" some-access-token "}、" endpointId ":" appliance-001 "、" cookie ":{}}、"ペイロード ":{}}}  

TurnOnおよびTurnOffテストを実行すると、ThingShadowがアクションと一致する望ましい状態を報告するのを確認する必要があります。この結果が表示されている場合は、すべて問題ありません。

ステップ4:ArduinoYúnをセットアップします。

ArduinoYúnハードウェアをセットアップする時が来ました。このガイドはArduinoガイドよりも便利だと思いました。いくつかの注意事項-Windowsユーザーの場合、SDをフォーマットするときは、必ずFAT32を使用してください(exFATはサポートされていません)。また、イーサネットに接続するまで、「アップグレード」ページを正しく表示できませんでした。設定すると、wifiは問題なく機能しました。

このオプションを確認し、次の手順を実行すると、この手順が完了します。

<図>

また、ArduinoにSSHで正常に接続できるはずです。 「df-h」も実行して、SDカードが追加されたことを示唆するボリュームを探すことをお勧めします。

Arduino IDEを開いて、Blinkの例を実行できることを確認することも、この段階で適切です。

ステップ6:YúnをAWSIoTに接続します。

Arduinoが稼働している状態で、IoTThingと通信してみましょう。これは、AWS Arduino IoT SDKをインストールし、サンプルスケッチを実行してThingShadowデルタを監視することで実行されます。

SDKのインストールプロセスを順を追って説明するこのチュートリアルから始めることをお勧めします。 Windowsユーザーへの注意:cygwinを使用している場合は、Mac / Linuxの指示に従ってください(「expect」依存関係に問題はありませんでした)。特に、ホストシステムからfollowスクリプトを実行すると、作業がはるかに簡単になります。

./ AWSIoTArduinoYunInstallAll.sh

このチュートリアルは、AWS-IoT-SDKをArduinoIDEに追加することで終了します。これで、Arduino IDEを開くと、ShadowThingの例が[ファイル]-> [例]-> [AWS-IoT-Arduino-Yun-Library]に表示されます。

このスケッチを開き、 aws_iot_config.h を編集します 関連するエンドポイントと証明書/キー名を含むファイル。

このスケッチを実行すると、接続ステータスが成功したことを示すシリアル出力が表示されます。 IoTダッシュボードでモノの影を変更すると、シリアルロガーで通知を受け取る必要があります。

この段階で問題が発生した場合は、証明書が正しいパスにあることを確認し、Root-CAテキストをファイルに正しくコピーしたことを確認してください。

ステップ7:YúnをAWSIoTに接続します。

あとは、ArduinoのThingShadowへの変更を実際に処理するだけです。私のスケッチの内容を簡単にコピーできるはずです。

私のスケッチは、キー「ライト」への変更を特に探すことを除いて、基本的にはThingShadowスケッチの例にすぎません。これらを受信すると、ライトが「オン」か「オフ」かによって、ledArrayのすべてのピンがHIGHまたはLOWに設定されます。

このledArrayにはオンボードピン13が含まれているため、追加のLEDが接続されていない場合は、音声コマンドに基づいてオンボードYUNLEDがオンまたはオフになります。私が使用しているようなより洗練されたLEDキューブが必要な場合は、このプロジェクトをチェックアウトして、配線方法を説明します。次に、スケッチのledArrayに正のピン番号を追加するだけです。

Alexaデバイスにカスタムスマート機能のオンとオフを切り替えるように依頼できるようになると、この手順が完了したことがわかります。

これが期待どおりに機能しない場合は、WebダッシュボードでLambdaTestOn関数とTestOff関数を試してみることをお勧めします。これにより、何がうまくいかないかについての詳細情報が得られます。

カバーされていない問題が発生した場合はコメントを投稿してください。できる限り迅速に対応します。

ステップ9:祝う!

あなたがこれまでにそれを成し遂げたなら、よくやった! Arduinosはあなたが望むことなら何でもできます、そして今あなたはAlexaを通して簡単な音声コマンドでそれを始める方法を知っています。ライトを何度もオン/オフして、達成を祝いましょう。 IoTの世界はあなたのカキです!

<図>

コード

プロジェクトのLambdaおよびArduinoコード
.inoファイルと.hファイルはArduinoSketchに使用され、lambda_functionはAWS LambdaCloudで使用されます

製造プロセス

  1. Chromecastを制御するAmazonAlexa
  2. Bluetoothで制御されるRaspberryPi Robot
  3. MajorTom:Alexa Voice Controlled ARDrone 2.0
  4. ジェスチャー制御のインタラクティブテーブルライト
  5. Arduino + LED + MIDIキーボード+ MuseScore =ピアノチューター
  6. RaspberryPiを介したAlexa制御LED
  7. ジョイスティック制御のRCカー
  8. Nunchuk制御ロボットアーム(Arduino付き)
  9. 音声制御ロボット
  10. イーサネットを介して制御されるロボットアーム
  11. Arduino制御ピアノロボット:PiBot