昨年12月、私はスマートウォッチを自作しようと考え、いろいろ見ていたところ、M5stackを見つけた。
これでスマートウォッチを作れるのではないかと思ったが、画面がでかすぎる。
あきらめるしかないと思っていた時、兄弟版であるM5stickCを見つけた。
手に入れた当初はM5stickCを使って何を作ろうかと思い悩んでいたが、M5stickCで時計付きのLINE Notify発信機を作ろうと決意した。以下やったことを記す。
#1.用意するもの
1.M5stickC
千石電商様より購入。バンドつきで2000円行かなかった。安い。
2.Arduino IDE
3.TypeCのケーブル
M5stickCを充電するときに使う。データ書き込みのケーブルでは、たまに充電されないときがあった。
4.LINE Notifyのトークン
#2.完成するまでに実施したこと
今回のコードは著作権上の都合で記載できないため、限りなく近いことが再現できるように、以下に参考にさせていただいたサイトを記す。
1.M5stickCとArduino IDEとの接続方法
itiB_S144様の記事を参考にさせていただきました。
2.「Hello World」の表示
itiB_S144様の記事を参考にさせていただきました。
3.Wi-Fiとの接続
以下サイトを参考にさせていただきました。
※M5stickCの仕様?でステルスWi-Fiとの接続はできないようです。
4.Wi-Fiに接続し、ntpサーバから時刻を取得、それをM5stickCに表示する
さとやまノート様のサイトを参考にさせていただきました。
5.オフラインで時計を表示する
いさな工房様のサイトを参考にさせていただきました。
6.バッテリー残量を可視化する
こちらのサイトを参考にさせていただきました。
7.LINE NotifyでLINEに通知する
こちらのサイトを参考にさせていただきました。
#3.完成
検証を重ねた結果、上の画像のような時計となった。
また、Bボタンを押すとLINE notify経由で指定されたLINEグループに通知が送られる設定にした。
#4.検証
タイトルにある通り、普段使いができないと困るので、検証を行った。
1.初期条件
初期条件では、ディスプレイの明るさを最大値(12)で設定をして検証した。
充電は30分も持たなかった。記録を取り忘れたので後日再検証をする。
2.次に、ボタンが押されていないときはディスプレイの明るさを最小値?(1)に設定し、ディスプレイを切る設定で検証を行った。
これで1時間持つか持たないかの瀬戸際にまで成長した。前述のとおり記録を取り忘れたので後日再検証をする。
3.次に、ボタンが押されたときのディスプレイの明るさを10に下げた。
これで1時間半持つようになったが、まだ実用化には程遠い。
4.次に、CPU周波数を動作が干渉しない程度に下げた
Wi-Fiを使わないときのCPU周波数を40MHz、Wi-Fiを使うときだけ80MHzに設定した。
これを行ったところ、バッテリーは4時間以上持った。
電池を長持ちさせるために、以下のサイトを参考に検証を進めた。
#5.これから実装したいこと
実現したい機能を2点挙げる。
1.BlueToothを用い、外出先でスマートフォンと連携し、スマートフォンにM5stickCからの通知が届くようにする
2.BlueToothを用い、いちいちWi-Fiにつながなくても、スマートフォンのRTCと時刻同期を行い、外出先でも時刻を合わせられるようにする。