Upgrade to Pro — share decks privately, control downloads, hide ads and more …

M5Stack Core2とAlexaでインターフォンに自動で対応してくれるIoTデバイスを作りたかった話

Cb88f765dd38cd942c39aacb5abbea06?s=47 ufoo68
December 21, 2021

M5Stack Core2とAlexaでインターフォンに自動で対応してくれるIoTデバイスを作りたかった話

Cb88f765dd38cd942c39aacb5abbea06?s=128

ufoo68

December 21, 2021
Tweet

More Decks by ufoo68

Other Decks in Technology

Transcript

  1. M5Stack Core2とAlexaでインターフォンに自動 で対応してくれるIoTデバイスを作 @IoTLT vol.82

  2. M5Stack Core2とAlexaでインターフォンに自動 で対応してくれるIoTデバイスを作 りたかった話... @IoTLT vol.82

  3. 自己紹介 • 松永勇太(27歳男性) • 滋賀県在住 • エンジニア3年生 • たまにお絵かきをする

  4. 最近の出来事1 滋賀に引っ越しました

  5. 最近の出来事2 転職しました

  6. 今回の内容 12/6のIoTLTアドベントカレンダー投稿分です

  7. 新居でやることは?? そうだね、スマートホーム化だね。

  8. スマートホーム化のオトモ スマートリモコンとAlexa

  9. やりたいこと こんなんをAlexaで操作したい • M5Stack Core2 • M5Stack用Servo2モジュール • サーボモーター

  10. まずはM5Stack一式を購入 合計1万くらい (まあまあの出費)

  11. 開発編

  12. ソースコード全容 https://github.com/ufoo68/alexa_intercom

  13. PlatformIOを使ってみる このArduinoIDEからの卒業♪

  14. PlatformIOのいいところ • vscode拡張なので、vscodeユーザーにとっては使い慣れたエディタでコーディング ができるので快適 • npmのような特定のプロジェクトに特定のバージョンのライブラリを依存させるよう な、モジュール管理ができる • gitでの開発がやりやすいフォルダ構造になっていて、デフォルトで.gitignoreが用 意されている

  15. サーボモーターを動かす 基本的には公式のサンプルコードがあるのでコピペ M5.begin(true, true, true, false, kMBusModeInput); Wire.begin(21, 22); なのですが、M5Stack

    Core2でServo2モジュールを使う場合は、 以下の初期設定をしよう!!
  16. 動いた

  17. OTAで無線開発しよう OTAとは? • Over The Airのこと • アプリケーションを遠隔でアップデートをすることができる仕組み • 今回はWiFiを経由

  18. ネット記事のコードをコピペでOK void otaSetup() { ArduinoOTA.setHostname("m5stack-core2"); ArduinoOTA .onStart([]() { String type;

    if (ArduinoOTA.getCommand() == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; Serial.println("Start updating " + type); }) .onEnd([]() { Serial.println("\nEnd"); }) .onProgress([](unsigned int progress, unsigned int total) { Serial.printf("Progress: %u%%\r", (progress / (total / 100))); }) .onError([](ota_error_t error) { Serial.printf("Error[%u]: ", error); if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed"); else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed"); else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed"); else if (error == OTA_END_ERROR) Serial.println("End Failed"); }); ArduinoOTA.begin(); } PlatformIO向けの記事でなくても 基本は動くと思います
  19. Alexaデバイス化しよう fauxmoESPを使う • ESP32をPhilips Hue化させるライブラリ • 名目上はAlexaからHueへのライトON/OFF(もしくは明るさ)制御を利用してESP32 の周辺機器を制御する • 過去のIoTLTで紹介された有名(だと思う)ライブラリ

  20. Alexaを騙せ!デバイス追加を騙せ! Alexa用アプリで連携する

  21. 動いた

  22. ここから先はおまけ

  23. オチその1 壁紙用両面テープじゃ重さに耐 えきれない🙅

  24. オチその2 サーボモーターの固定が甘いので サーボモーター自体が浮く🙅

  25. まとめ • PlatformIOでvscodeを使った快適なマイコン開発ができる • Servo2モジュールをM5Stack Core2で使うには初期設定の魔改造が必要 • OTAでUSBケーブルいらずのデバッグが可能に • fauxmoESPでM5StackをHue化できる

  26. 残った課題 賃貸の壁であとを残さずに、 M5Stackとサーボモーターを壁に取り付ける方法