Bluehornet blog

RaspberryPi, Arduinoを日常生活に活用してみたいブログ

M5Stackを使ったIFTTT物理ボタン

1. 課題

・寝る前や、外出時にエアコン消して、サーキュレータ止めて、ライト消して、加湿器消して・・・がめんどくさい
・sRemo-R3のマクロ機能で”アプリ” or "Google home mini"から、まとめてオフは実現できた
・"OK google"って言いたくない気分のときもある
・手元にスイッチがあれば声を出すよりボタンプッシュの方が早い
・スイッチを押す、というアクションがあったほうが「やった」感があって良い
・いちいちスマホアプリを立ち上げるのがめんどくさい
・sRemo-R3のアプリを子供は使えない(スマホをもたせていないので)
・色々遊ぼうとIFTTTを有料登録したので、できるだけ使い込みたい

2. 解決策

・物理スイッチ→IFTTT→sRemo→各機器
WIFI、画面のあるM5stackを使って実現

f:id:bluehornet96:20201228100335p:plain
イメージ

3. 構成

■準備したもの
・M5stack Basic
・タクトスイッチ(スイッチ、スイッチキャップ、透明カバー)、後で透明カバーの中にわかりやすくイラストを印刷したものを差し込むため
・ユニバーサル基板(家に余っていたなにかのための基板)
・抵抗(余っていたもの)
・M5stackとスイッチを囲う箱(3DPで作成)

f:id:bluehornet96:20201215224533p:plain
M5stack
f:id:bluehornet96:20201215223102j:plain
スイッチキャップ、透明カバー


タクトスイッチはAmazonで購入。
Amazon | タクトスイッチキャップ透明カバー 12mm×12mm用スイッチ 10個入<1sw-080> | スイッチカバー・プレート | 産業・研究開発用品 通販
Amazon | タクトスイッチキャップ 12mm×12mm用 四角キャップ 白 10個入<1sw-072> | スイッチ | 産業・研究開発用品 通販
Amazon | 3a タクトスイッチ<スナップイン 12mm×12mmスイッチ 全高7mm>10個<1sw-057> | スイッチ | 産業・研究開発用品 通販

・赤外線リモコンに対応していない装置(加湿器とか)のためにリモコンスイッチでコンセントでオフ

f:id:bluehornet96:20201228064305j:plain
リモコンスイッチ

■ハードの準備
・M5stackの5VとGNDをユニバーサル基板に配線。
・タクトスイッチを適当な抵抗と合わせてプルアップでユニバーサル基板に9個を固定。
・スイッチからの配線をM5stackのGPIOに接続

f:id:bluehornet96:20201214213235j:plain
タクトスイッチの取り付け

f:id:bluehornet96:20201214213212j:plain
動作テスト

・組み上がったM5Stackとスイッチをくっつけた基板を入れるケースを3DPで作成
(Autodesk Fusion360でモデルを作成、QIDI X-Smartでプリント)

f:id:bluehornet96:20201228065814p:plain
ケース

・スイッチのカバーの内側に、それぞれのスイッチの役割がわかるように絵を印刷
(ほとんどいらすとや)

4. プログラム

・ボタンを押す
WIFIに接続
・Webhookで通知
・ボタンを押した時刻とか確認のため、LCDに表示
WIFIを接続解除
といった手順で動かす

5. 感想

・「ボタンを押す」という行為と「電源ON/OFF」の連動は感覚が合う
Google homeスマホアプリに次ぐ第3の家電制御として便利
・出かける前に子供が我先に、と外出ボタンを押してくれる
・どのスイッチをどのGPIOにつなげたかわかるように目印を付けていたつもりだったが、途中で間違っていたようで、プログラムで一個ずつずらしながら修正することになってしまった
・M5Stackのケース寸法が適当だったので、グルーガンで荒々しく固定してしまい、メンテナンス性がない。プリントし直す

f:id:bluehornet96:20201214213144j:plain
完成画像

■参考にしたページ
・M5StackのGPIOとスイッチのつなぎ方
意外と知られていない?INPUT_PULLUP – スイッチサイエンス マガジン

・M5StackをWifiにつなぐところ
ここWi-Fi飛んでる?目に見えるデバイスをつくってみた(前編) | Device Plus - デバプラ

・M5StackとIFTTTの連携
IFTTTで簡単IoT!M5StackとLINEを連携する方法 | マトリョーシカ的IoTブログ