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

Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド

必要なパーツと用品

パーツ 数量
Arduino MKR WiFi 1010 1
Arduino MKR ENV Shield 1
ブレッドボード 1
高輝度白色LED 1
ジャンパーワイヤー 1
RGB LED(共通カソード) 1
抵抗 220 Ω 1

使用するアプリとオンラインサービス

プロジェクト概要

イントロ:はじめに

このチュートリアルではArduino IoT Cloudを使用します。Arduino IoT Cloudが初めての方は、まず入門プロジェクトを参照し、サポートボードのセットアップ、IoT Cloudの「モノ(Thing)」とプロパティの作成、オンボーディングの流れを理解してください。

パート1:Arduino IoT Cloud

メインのIoT Cloudページから、新しい「モノ(Thing)」を作成し、意味のある名前を付けます。次に使用するボードを選択します。ボードが表示されない場合は、デバイスセクションのデバイスの追加ボタンをクリックしてから始める手順をスキップしている可能性があります。

完了したら、3つのプロパティをモノに追加します。最初の2つは照明、最後は温度を表します。

この時点でのダッシュボードビューは以下のようになります:

Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド

重要: プロパティ追加時、スマートホームセクションにリストされているタイプのみを使用してください。それ以外はAlexaで動作しません。

Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド

モノの編集ビューでスケッチを編集ボタンをクリックし、Web Editorを開きます。

パート2:Arduino Web Editor

Web Editorで、自動生成されたスケッチにコードを追加します。

環境データ(温度、必要なら湿度・気圧・光量も)を読み取るため、Arduino_MKRENVライブラリをスケッチの冒頭でインポート:

#include 

ボードピンの定数を定義(コードの可読性向上):

#define PIN_MEETING_ROOM 5
#define PIN_LOUNGE_AREA_R 2
#define PIN_LOUNGE_AREA_B 3
#define PIN_LOUNGE_AREA_G 4

setup()でMKR ENV Shieldを初期化:

if (!ENV.begin()) {
  Serial.println("Failed to initialize MKR ENV shield!");
  while (1);
}

シールドが未装着ならスケッチ実行をブロックします。pinModeをOUTPUTに指定する必要はありません。analogWrite()で白色LEDの強度やRGB LEDの各色を制御するためです。

loop()で毎秒温度を読み取り:

temperature = ENV.readTemperature();
delay(1000);

最後にコールバック関数を実装します。これらは、IoT Cloudからプロパティの値の変更がプルされるたびに実行されます。

onMeetingRoomChangeとonLoungeAreaChangeを実装:

void onMeetingRoomChange() {
  uint8_t brightness = map(meetingRoom.getBrightness(), 0, 100, 0, 255);
  if (meetingRoom.getSwitch()) {
    Serial.println(brightness);
    analogWrite(PIN_MEETING_ROOM, brightness);
  } else {
    analogWrite(PIN_MEETING_ROOM, LOW);
  }
}

クラウドから明るさの値を読み取り、使用可能な値(0-255)にマッピングし、ライトスイッチがオンならその明るさで点灯、オフなら消灯します。

もう一方のコールバックも同じ原理ですが、RGBの3成分を扱います:

void onLoungeAreaChange() {
  uint8_t r, g, b;
  loungeArea.getValue().getRGB(r, g, b);
  if (loungeArea.getSwitch()) {
    Serial.println("R:" + String(r) + " G:" + String(g) + " B:" + String(b));
    analogWrite(PIN_LOUNGE_AREA_R, r);
    analogWrite(PIN_LOUNGE_AREA_B, b);
    analogWrite(PIN_LOUNGE_AREA_G, g);
  } else {
    Serial.println("Lamp Off");
    analogWrite(PIN_LOUNGE_AREA_R, 0);
    analogWrite(PIN_LOUNGE_AREA_B, 0);
    analogWrite(PIN_LOUNGE_AREA_G, 0);
  }
}

Alexaアプリで色を名前で定義すれば、赤・緑・青の量を手動で指定しなくてもよくなります。

パート3:Amazon Alexaスキルのセットアップ

Amazon Alexaアプリが必要です(App StoreまたはGoogle Play Storeからダウンロード)。インストール後、既存アカウントでログインするか新規作成してください。

Arduino Alexaスキルのインストール手順を、以下の画像シーケンスで確認してください。

Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド
Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド
Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド
Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド
Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド
Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド
Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド
Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド
Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド

パート4:Amazon Alexaデバイスのセットアップ

少し待つと、デバイスが検出されます。

Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド

デバイスを選択をタップすると、利用可能なデバイスのセットアップページが表示されます(Arduino IoT Cloudでプロパティに付けた名前で表示されます)。

Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド

デバイスを1つ選び、デバイスをセットアップをタップ。グループに追加することも可能(デバイスの整理・管理が容易になります)。スキップもできます。

Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド

制御したいすべてのデバイスについてセットアップを繰り返します。

最終的にデバイスビューは以下のようになります:

Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド

これで「アレクサ、オフィスの温度は?」「アレクサ、会議室のライトをつけて」などと話しかけられるようになります。

Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド

AlexaとIoT Cloudで遊んでみてください。質問や制作報告はコメントでお知らせください。

Arduinoチーム

コード

完全なスケッチはArduino Web Editorで自動生成されます。上記のコールバック実装を追加してください。

回路図

Arduino IoT CloudとAmazon Alexaの連携:ステップバイステップガイド

製造プロセス

  1. クラウド×IoTの力を解き放つ:シームレスな接続とデータインサイトの実現
  2. Raspberry PiとPythonでAmazon AlexaからChromecastを制御
  3. Alexaでシーリングファンを音声制御:ステップバイステップガイド
  4. ArduinoとMAX30100で作るリアルタイムIoT心拍数モニター
  5. IoTで遠隔操作する自作ロボットアーム:Arduino MKR1000とSimulink、ThingSpeak活用
  6. ラズベリーパイとNode-REDでAlexaからLEDを制御する - 簡単ステップバイステップガイド
  7. ESP32で作るIoT環境モニター:温湿度・気圧・CO2をWebダッシュボードで可視化
  8. Arduino IoT CloudとAlexaでテレビを音声操作:ステップバイステップガイド
  9. Azure IoT対応スマートプール制御システム:水温・気温監視と遠隔ポンプ制御
  10. Infineon、Amazon Web ServicesからAdvanced Technology Partnerに認定
  11. フォグ vs クラウド:IoT展開をスピードとスケールで最適化