M5Stack Core2とAlexaでインターフォンに自動で対応してくれるIoTデバイスを作@IoTLT vol.82
View Slide
M5Stack Core2とAlexaでインターフォンに自動で対応してくれるIoTデバイスを作りたかった話...@IoTLT vol.82
自己紹介● 松永勇太(27歳男性)● 滋賀県在住● エンジニア3年生● たまにお絵かきをする
最近の出来事1滋賀に引っ越しました
最近の出来事2転職しました
今回の内容12/6のIoTLTアドベントカレンダー投稿分です
新居でやることは??そうだね、スマートホーム化だね。
スマートホーム化のオトモスマートリモコンとAlexa
やりたいことこんなんをAlexaで操作したい● M5Stack Core2● M5Stack用Servo2モジュール● サーボモーター
まずはM5Stack一式を購入合計1万くらい(まあまあの出費)
開発編
ソースコード全容https://github.com/ufoo68/alexa_intercom
PlatformIOを使ってみるこのArduinoIDEからの卒業♪
PlatformIOのいいところ● vscode拡張なので、vscodeユーザーにとっては使い慣れたエディタでコーディングができるので快適● npmのような特定のプロジェクトに特定のバージョンのライブラリを依存させるような、モジュール管理ができる● gitでの開発がやりやすいフォルダ構造になっていて、デフォルトで.gitignoreが用意されている
サーボモーターを動かす基本的には公式のサンプルコードがあるのでコピペM5.begin(true, true, true, false, kMBusModeInput);Wire.begin(21, 22);なのですが、M5Stack Core2でServo2モジュールを使う場合は、以下の初期設定をしよう!!
動いた
OTAで無線開発しようOTAとは?● Over The Airのこと● アプリケーションを遠隔でアップデートをすることができる仕組み● 今回はWiFiを経由
ネット記事のコードをコピペでOKvoid otaSetup(){ArduinoOTA.setHostname("m5stack-core2");ArduinoOTA.onStart([](){String type;if (ArduinoOTA.getCommand() == U_FLASH)type = "sketch";else // U_SPIFFStype = "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向けの記事でなくても基本は動くと思います
Alexaデバイス化しようfauxmoESPを使う● ESP32をPhilips Hue化させるライブラリ● 名目上はAlexaからHueへのライトON/OFF(もしくは明るさ)制御を利用してESP32の周辺機器を制御する● 過去のIoTLTで紹介された有名(だと思う)ライブラリ
Alexaを騙せ!デバイス追加を騙せ!Alexa用アプリで連携する
ここから先はおまけ
オチその1壁紙用両面テープじゃ重さに耐えきれない🙅
オチその2サーボモーターの固定が甘いのでサーボモーター自体が浮く🙅
まとめ● PlatformIOでvscodeを使った快適なマイコン開発ができる● Servo2モジュールをM5Stack Core2で使うには初期設定の魔改造が必要● OTAでUSBケーブルいらずのデバッグが可能に● fauxmoESPでM5StackをHue化できる
残った課題賃貸の壁であとを残さずに、M5Stackとサーボモーターを壁に取り付ける方法