Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

開発編

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

サーボモーターを動かす 基本的には公式のサンプルコードがあるのでコピペ M5.begin(true, true, true, false, kMBusModeInput); Wire.begin(21, 22); なのですが、M5Stack Core2でServo2モジュールを使う場合は、 以下の初期設定をしよう!!

Slide 16

Slide 16 text

動いた

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

ネット記事のコードをコピペで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向けの記事でなくても 基本は動くと思います

Slide 19

Slide 19 text

Alexaデバイス化しよう fauxmoESPを使う ● ESP32をPhilips Hue化させるライブラリ ● 名目上はAlexaからHueへのライトON/OFF(もしくは明るさ)制御を利用してESP32 の周辺機器を制御する ● 過去のIoTLTで紹介された有名(だと思う)ライブラリ

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

動いた

Slide 22

Slide 22 text

ここから先はおまけ

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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