enebularで布センサーからLINEに通知できるようにしたよ

こんにちは
どたてつや(@tendots)と申します。

先日の[LINE BOOT AWARD](https://www.line-community.me/awards/)に~~賞金につられて~~応募したところ
光栄なことに[enebular](https://www.enebular.com/)賞をいただきました。
これを機に人生初のqiita投稿を行いたいと思います。


![45770972_2320432417984865_6769684145799954432_n.jpg](https://qiita-image-store.s3.amazonaws.com/0/242072/504c8806-0210-c291-b8d1-4d5725710b53.jpeg)
（BOOT AWARD授賞式でウフルの山崎さんと2ショット）

LINE BOOT AWADのときの作品ページはこちら→ [Care Thing](https://www.line-community.me/awards/workdetail/5bb64b70851f74632343ddc5)


## Care Thing について

![ConceptLogo_アートボード 1.png](https://qiita-image-store.s3.amazonaws.com/0/242072/a86a633b-1126-52a8-ed23-4fbd269b7a7b.png)


Care Thingは介護向けに考えたサービスです。
ベッドに設置した__導電布センサー__およびClovaと連携して、介護を過ごしやすいものにしたいと考えています。
以下のムービーで雰囲気はわかってもらえるかと思います。

https://youtu.be/gkjSOdanRZE

もともと[スワイプエプロン](http://swipeapron.info/) という作品や別のプロジェクトでも導電布を使っており、
この素材の別の切り口の使い方ができないかと考えて制作しました。

超高齢化社会と言われる中で、30年後自分も介護される側に回った時に少しでもその時間が快適になってほしい、そのきっかけにしたいなと思っています。


## 導電布センサーについて
![DSC_0780.png](https://qiita-image-store.s3.amazonaws.com/0/242072/74954658-19a5-dba7-7371-57a9e8916713.png)

「nüno」（ニューノ）というタッチコントローラ搭載基板と導電布がセットになっているモジュールです。
導電布経由で静電容量を読み取り、触れている場所が一軸で検知でき、センサー部と基板部分がスナップホックで接続されているので、外して洗濯も可能。
色んな人に協力してもらい作成したデバイスで、Maker Fair Tokyo 2018でテスト頒布をおこないました。


こちらのgithubにサンプルコードを上げています。
https://github.com/tendots/nuno

今回のCare Thingでもこのnünoの中に入っている基板を使って制作しています。

## システム構成
こんな感じ

![Construction.png](https://qiita-image-store.s3.amazonaws.com/0/242072/5e2410df-a698-3af5-e479-2ba19385c9d6.png)

シンプルですね。
Cloudと書いている部分がenebular。
Sensor側のマイコンには[M5Stack](http://m5stack.com/)を使用しています。
LINEはLINE Developers(https://developers.line.biz/) からMessaging APIを登録します。




## M5Stack
M5Stack側では
- ベッドの上に人がいるか
- ベッドの上の人が動いているか
の検知を行っています。
その上で、異常がある場合はenebular宛にPOSTします。

値のとり方は移動平均ぽいものを取りながら、一定以下の値が続いた場合に異常検知のフラグを立てています。
このへんはまだまだ改善の余地アリ。


## enebular
enebularのフローは下の画像のとおりです。
postされた値で場合分けを行い、状態に応じたテキストをLINEにPUSHしています。

余談ですが、最近リリースされた[enebular editor](https://docs.enebular.com/ja/enebulareditor/)が非常に便利でした。

<img width="1640" alt="スクリーンショット 2018-12-13 3.51.46.png" src="https://qiita-image-store.s3.amazonaws.com/0/242072/932b0807-7e66-0347-1644-3ff6dd02688b.png">


メッセージのPUSHには、LINE messaging APIのアクセストークンが必要ですので、次のステップで取得します。


## LINE messaging API

#### チャネル管理画面
LINE Developers(https://developers.line.biz/ja/) から登録して、Messaging APIチャンネルを作成します。
<img width="1365" alt="スクリーンショット 2018-12-15 1.31.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/242072/412a3b6d-78b9-da5f-b74a-9f66e143b58a.png">

#### Messaging APIの管理画面

<img width="1132" alt="スクリーンショット 2018-12-13 3.22.12.png" src="https://qiita-image-store.s3.amazonaws.com/0/242072/8853d7af-3bc1-eab1-9d55-c583f99d085e.png">


ここで取得したアクセストークンをenebularのfunctionノードに記載して設定完了です。

実際の動作テストの様子は下記の動画にあります。
布の上で動かしている手がとまって、数値が一定以下の状態が続くことで、LINEにメッセージを送信しています。

https://www.youtube.com/watch?v=tCNyIzT-JRg&feature=youtu.be



## 今後したいこと

### ハードウェアのブラッシュアップ
ハードウェアもまだまだ分厚くなってしまっているので、実際のベッドで使用できる薄さにして、動作検証を行いたいです。

### データを貯めてビジュアライズ
データの可視化ができるInfomotionに一度トライしたのですが、
ちょっと僕にはハードルが高くできていないのでそこを再トライしたいです。教えてくれる人大募集です。

### 機械学習を使って姿勢判断ロジックの精度アップ
今はM5Stack内でしかデータを持っていませんが、
ネットワーク側にデータを貯めていけば、より制度の高い姿勢判断のロジックが作れると思うので、
そこも鋭意やってみたいです。というか一緒にやってくれる人欲しい。



## まとめ
そんな感じで、今回はとりあえず動くプロトタイプを作ったという感じですが、
来年はどんどんブラッシュアップして再度LINE Boot Awardにもリベンジしたいと思っています。
（うえぞうさんの[いもうとBOT](http://imoutobot.com/) みたいな感じで）

もし面白そうだなーと思った人がいたら是非声かけてください。


では皆様、良き enebular ライフを！


### 追伸
![32275881798_66f0c2e057_k.jpg](https://qiita-image-store.s3.amazonaws.com/0/242072/99750590-430a-b3c7-dbb0-a3631ef6c690.jpeg)

[Mashup Awards 2018](https://ma2018.we-are-ma.jp/) でもAutodesk賞いただきました！