急な体調不良時に使えるかもしれないボタン

# プロダクト概要
シンプルに、装着者は体調不良時にM5StickCのボタンを押すことで、スマホアプリを介して予め登録したアドレスにメールを送信することができます。

![IMG_4762.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521602/f2e14f94-137d-ba60-3dae-e52f26cd3998.png)
***

# 背景ーなぜ作ったか？
実家では私の父、母、弟の３人が同居しているのですが、ある日、父が家で一人で倒れ意識を失っていたそうです。
母、弟は外出していたため、発見は倒れてから数時間後とのことでした。
幸い命に別状はなかったのですが、この話を聞いたとき、「急な体調不良時にも誰かに通知できるガジェットがあったら良いのではないか？」と思って作ってみました。

技術的に突出したものはありませんが、課題解決のためにプロダクトを作り切る、ということを目標に行いました。

![背景.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521602/4738e1b1-1886-ec70-4d0d-87f4f0fb2068.png)
***
# プロダクト名- LifeStone -
LifeStoneと名付けました。
M5StickCが何となく石っぽく見えたという理由だけです。
***

# 全体の仕組み
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521602/33b6d3ba-344c-0a13-60ec-45e9cebe5688.png)

M5StickC → Androidスマホアプリ　→相手方のスマホへメール送信

M5StickCのボタンが押下されたことをトリガに、シンプルなフラグ(1とか)をAndroidスマホアプリに送信します。
フラグを受け取ったスマホアプリは、予め登録されたメールアドレスとメッセージ内容に基づき、メール送信します。

iOS版は新規でアプリ登録までの道のりが長そうだったので断念しました。
***
# M5StickCの実装
・ボタンプッシュをトリガに、BLEによりフラグを送信します。
・「LStone」の文字と電池残量をディスプレイ表示します。本当はLifeStoneにしたかったけど、文字サイズや改行との兼ね合いでこうなりました…。
・フラグ送信された場合はディスプレイを点滅させ、送信されたことをユーザーが認識できるようにします。

<img width="400" alt="IMG_4855.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521602/533eac67-1156-2e7d-3438-9e59d8cc0667.png">
***
# Androidアプリを作る
・M5StickCからフラグを受け取ったらメールを送信します。
・メールの送信先アドレスと、どのような本文を送信するかをユーザーが設定できるようにしました。
・設定可能なメールアドレスはとりあえず2件としました。
・間違ってアプリを終了した場合も、すぐに前回の入力内容を呼び出せるよう、「保存」「読み込み」機能を付与しました。
・メールの送信方法は、gmailを用いて私の個人アドレスから送信するようにしました。
参考文献：http://nosix.hatenablog.com/entry/2018/11/12/153359


<img width="300" alt="Screenshot_20201203-005644.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521602/36bd52ca-d16e-de64-a457-0a4728bb641e.png">

※メールアドレス入力欄のプレースホルダ(薄い文字)が異なっているのは単なる誤字です…
***
# 実装時のトピック
## 初めてのBLE通信の実装
BLE通信を今まで触ったことがなかったため、M5StickCからちゃんとBLEが発信できているか、スマホがちゃんと受信できているか、それぞれ確かめる必要がありました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521602/6b5c0f73-5d22-4a2a-1f6b-3fa4f90afd40.png)

まず、M5StcikCからのBLE発信ができることを確認しました。
BlueJellyというブラウザでBLE受信できるライブラリがあるため、まずはこちらのBLE受信をそのままコピペして、M5StickCから正しく送信されていることを確認しました。
参考文献：https://jellyware.jp/kurage/bluejelly/notify.html

その後、Android側でBLE受信のプログラムを実装、という流れになります。
参考文献：(すみません、忘れました。思い出したら追記致します)
***
## バッテリー持ちの改善
M5StcikCはデフォルトの状態で使用していると30分も持たないことがわかっていました。
プロトタイプとはいえ、流石にこれでは使い物になりません。

こちらのサイト(https://make-muda.net/2019/09/6946/) を参考に、以下の２点を実施した結果、M5StcikCのバッテリーの持ちが30分弱→約150分へと改善しました。
・モニタのバックライトを暗くする
・CPUクロック数をMax → 80MHzへと下げる(M5StickCの仕様上10Mhzまで下げられますが、BLEでは最低80Mhzとする必要があります。実際に10MHzで試したところ、BLEは動きませんでした)
***

# いざ、動作確認
まず、アプリ側でメールアドレスと本文を入力します。
<img width="300" alt="Screenshot_20201203-010430.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521602/96bb93dd-0fbe-f940-1dd7-f0e3b9e94d80.png">

そして、M5StcikCのボタンを押します。
<img width="300" alt="IMG_4857.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521602/9ae51eb4-c45e-7ebc-dd3e-4fb2ea0c15ce.png">

送れました！
<img width="300" alt="IMG_4856.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521602/56f4ee05-9cba-04c1-63d4-e4b33d84d423.png">
***

# 使えるか？
正直なところ微妙かなと考えています。
理由１：このデバイス動作のタイミングは、急激に体調不良を感じた時を想定しています。一生のうちに何度あるかわからない体調急変のために、常に腕または首にこのようなデバイスを装着し続ける必然性があまり感じられませんでした。
理由２：高齢者向けのIT,IoTというのは、レクチャーの必要がありそうだと感じたため（知人の親御さんにテストをお願いした際の感触）
理由３（追記）：この記事は2020年に初回投稿したのですが、その後iPhoneでこの機能はデフォルト実装されました。なので、さらにこのデバイスを身に纏う必要性が無くなりました。

実際、私の両親にこのデバイスを見せたところ、「もう体調は良くなってしまったから大丈夫！」というリアクションが・・・

多分、使っていただけるとすれば、IoTを使い慣れていて、脳卒中リハビリ施設や入院患者さんのような「常に急変のリスクを懸念していて」「こういう医療的デバイスをつけることに抵抗がない」というような方々なのではないかと思っています。
***

# 諦めきれずユーザーテストをしようとした
* over70歳の女性の方で、脳卒中経験あり
* 娘さん（アラフィフ）のご協力で、お母さんのスマホにインストールする許可を得た
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521602/3a02a741-8b91-f00d-16cb-21cf93d3b635.png)

* **しかし、らくらくスマホはデフォルトで制限かかっていてごく一部のアプリしかインストールできない**
* **結局、解除方法がわからずに、ユーザーテスト断念**

# それでも、得たものはある（と思っている）
小さいながらもプロダクトを「作りきる」という経験は良かったです。
最初は知人にお願いして電子回路基板を作ってよくあるウェアラブルデバイスから作って見たかったのですが、動作確認に結構時間かかりそうだった。とくにBLE周りはなかなか上手くいきませんでした。
M5StickCを知って、ニーズ検証だけならこれでいいじゃん、ということで比較的早く形にできたのは良かったです。

また、ユースケースを想定

一方で、すぐに検証できるということは、デバイス単体での収益化はほぼ不可能なのかな？という感じもしています。同じものを作るのであればM5StickCを作れる会社の方が強いから。
***
# あとがき
一応、GooglePlayStoreでアプリを公開しております。
https://play.google.com/store/apps/details?id=com.lstonez.lifestone

アイコンは知人のデザイナー見習いの人に作ってもらいました！

また、予備のM5StickCがありますので、万が一「使ってみたい」という方はご連絡ください。