【コロナ対策IoT】アルコール消毒状況がひと目で分かるデバイス作ってみた！

#はじめに
こんにちは！
AITOYA株式会社の胡本(えべすもと)です！

さて、昨今では新型コロナウイルスが蔓延し、知らず知らずのうちに感染しているかもしれないという時代になってしまいました。
皆さんは「外食したいけど、感染が怖い……。」そう思ったことはありませんか？
せっかくの外食中に感染してしまったら……。誰でも嫌ですよね？

そんな時、飲食店の店員やお客さんのアルコール消毒をしている状況がひと目でわかれば、
「この店はコロナ対策しっかりしているんだな！」と安心して外食できると思いませんか？
逆にお店や施設側も「当店は感染予防しっかりしてますよ！安心してきてください！」とアピールできるかも？

そこで今回私は、そんな助けとなる「アルコール消毒状況がひと目で分かる」デバイスを作ってみました！
今回は出来るだけ簡単にするため、下の画像のような構成にしました。
<img width="900" alt="system" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/c7e0ceba-b7e6-408c-793d-299d04fce4fe.png">
それでは始めていきます！

#目次
- [製作概要](#製作概要)
- [使ったもの](#使ったもの)
- [ソフトウェアのセットアップ](#ソフトウェアのセットアップ)
  - [Fusion360のダウンロード](#fusion360のダウンロード)
  - [Arduinoのダウンロード](#arduinoのダウンロード)
- [WioLTEの接続設定](#wiolteの接続設定)
- [電気回路の検査と実装](#電気回路の検査と実装)
- [外装部品の設計](#外装部品の設計)
- [システム構成](#システム構成)
- [組立てと完成物](#組立てと完成物)
- [終わりに](#終わりに)



#製作概要
今回は、アルコール消毒をやっているかどうかをひと目で分かるデバイスを作成します！
**アルコール噴射をどれくらい行っているかがSNS（今回はtwitter）で分かる。**
ということが可能なデバイスを作っていきます。

#使ったもの
- ハードウェア系
  - WioLTE…1個
  - 非接触のアルコールスプレー…1個
  - 今回はキングジム様の [tette](https://www.kingjim.co.jp/sp/tette/) を使用させて頂きました。
  - USBケーブル…1本
  - テスター(電圧や電流を測定するために必要)
  - ノギス(各種ハードウェアの寸法を測るために必要)
  - 電源ケーブル
  - はんだごて
  - WioLTE付属のアンテナ…2個
  - ジャンパワイヤ
  - PC(著者はwindows10 home 64bitのPCを使用)
- ソフトウェア系
    - arduino
    - 3DCAD系のソフト(治具を作成する時に必要)
    - 今回はAUTODESK株式会社様の [Fusion360](https://www.autodesk.co.jp/products/fusion-360/overview) を使用しました。

#ソフトウェアのセットアップ
まずは必要なソフトウェアのダウンロードを行いましょう。
以下はwindowsでのインストール方法になります。
macやLinuxの方は個々のPCに合ったインストールを行ってください。

### Fusion360のダウンロード
Fusion360は以下のサイトが分かりやすく書いてあるので、こちらを参考にしながらダウンロードしてください。
[無料でも使える高機能3DCAD Fusion360のインストール手順 | CAD/CAM/CAE研究所](https://cad-kenkyujo.com/fusion360/install/)

###Arduinoのダウンロード
Arduino IDEは以下の公式HPの「ダウンロード」よりダウンロードが可能です。
[Arduino - software](https://www.arduino.cc/en/Main/Software)

図のように、JUST DOWNLOADから最新版をダウンロードしてください。
その後exeファイルを実行してください。
<img width="700" alt="arduino-install" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/6130ccbb-2302-5c0d-6cdb-382ce965b131.png>

exeファイル実行後、「Lisense Agreement」「Installation Options」「Installation Folder」が順に表示されますが、
**なにも変更することなく「Agree」→「Next」→「Install」の順に進みインストールしてください。**
インストールが始まり、少々待つとインストールが完了します。
完了後「close」を押してデスクトップからArduinoを起動させましょう！
これでArduinoが使えるようになります。
　
#WioLTEの接続設定
WioLTEは追加のライブラリやボードをarduinoに追加することで使用できるようになります。
下記のサイトにその手順が分かりやすく書いてあるので、参考にしてみてください！
[jp-training | SORACOM IoT Training](https://soracom.github.io/jp-training/WioLTE/0/prepare-win)

サイト内の手順を踏んでもらった後にWioLTEを DFUモード にすると、
デバイスマネージャーの「ユニバーサル シリアル バス デバイス」の欄に「STM32 BOOTLOADER」が表示されるようになります。

WioLTEの接続準備が完了した後、以下のリンクを通して、WioLTEが動作するか確認してみてください。
[事前準備 | jp-training](https://soracom.github.io/jp-training/WioLTE/0/prepare#check)

#電気回路の検査と実装
さて、噴射状況を監視するためには、
まず **アルコールスプレーが噴射した瞬間の情報を取得する必要** があります。
そこでまず、中の内部構造を見てみましょう！

幸い本体はねじ止めがしてあるだけだったので、本体から見えるねじを５本ほど取りのぞいて中を見てみました……！
その結果中身はこんな感じでした。
<img width="600" alt="tette-upper_detail" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/4be5a3f1-216c-38bc-d702-8ade8ac24108.png>
<img width="500" alt="tette-kiban_detail" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/40d892cd-7c48-9070-868a-1edd60e14088.png>
<img width="400" alt="tette-left" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/0ae182b6-d52e-b531-dbb3-caf9d4943cf2.jpeg>
<img width="400" alt="tette-back" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/0d611f4f-8bff-89a8-7d24-f85c285b466a.jpeg>

追加でスプレーを起動して、内部構造を見てみると、
どうやら **スプレー内部のモーターが動いた回数をマイクロスイッチを用いてカウントし、そのカウントの瞬間をマイコンが取得して制御しているみたい** ですね。
（思っていたより構造はシンプルでとても有り難い！）

ということは、
**マイクロスイッチの電圧を拾うことが出来れば、噴射の瞬間を記録することが出来る** ということです。
噴射の瞬間を記録するためにまず、Seeed KK のwikiを参照しながらソースコードを書きます。
[リファレンスマニュアル | Wiki](https://seeedjp.github.io/Wiki/Wio_LTE_for_Arduino/Reference-ja)
<img width="800" alt="tette-kiban" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/50b63992-1215-ec6e-e8cf-51fb5bc5fc3e.png>
そこで上の写真のピンにジャンパワイヤをはんだ付けし、先程作成したプログラムを用いて制御情報が取得できるか確認してみました。
**WioLTE は D38 ピンが digitalRead の引数に対応しているようなので、その部分とスプレーの信号を取得する配線を取り付けます。**
<img width="300" alt="tette-haisen" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/79032eb1-7a40-32a4-7db4-d4fd62e9b491.jpeg>
<img width="300" alt="tette-demo1" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/5fb09759-b723-48f9-9d2c-39e536eb40f9.jpeg>

<font color="red">__※注意点※
※アルコールスプレー側の回路図はないので、電気的な流れは細かく確認しましょう。
私は確認が上手くできておらず、WioLTE と接続した際にスプレーをひとつ壊しました笑__</font>

情報が取れるか試した結果がこちら！
<img width="700" alt="Arduino-demo-success" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/200abbe3-9375-a08d-5bf4-798a2087ca68.png>

これで、スプレーが噴射した瞬間の情報を取得することが出来ました！

#外装部品の設計
さて、噴射状況が取得できるようになったので、次は外装を設計してみましょう。
私の場合は、まず必要となる部品をモデリングし、そのモデリングした部品にフィットするように外装部品を作っていきます。
ということで、まず「WioLTE」「アンテナ」「アルコールスプレー」の寸法をざっくりモデリングしました。
この時、 **外形寸法やねじ穴寸法など、外装作成時に必要な部分は正確にモデリングしましょう。**
**寸法を適当に測って雑にモデリングすると、はめあいが悪くなります。0.1mm単位で調整しましょう。**
↓ WioLTEのモデル
<img width="300" alt="WioLTE" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/9625595b-c0ea-5ae1-a231-febf22de64c1.png>
↓ アンテナのモデル
<img width="300" alt="anntena" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/7c3721c7-dd72-d30e-bce2-c9123d8784e6.png>
↓ tetteのモデル
<img width="300" alt="spray" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/7e386215-f351-b901-8ddb-bd17148b9553.png>
**今回は液体を扱うので、中身が露出しないような設計** を心掛けました。
また、最初の外装は大体どこかで修正が入るので、
（今回は外装の曲線部とスプレーの曲線部はめあいが合ってなかった 笑）
すぐに修正できるようにパラメトリック・モデリングでの作成を行いました。
その後本体との固定方法を修正した後、完成したモデルがこちら！
<img width="500" alt="model-front" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/c50c73e2-d286-afe2-7d24-d76977428da9.png>
<img width="500" alt="ziguVer2_model-back" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/6ba38741-3781-6056-69ce-9fc44345d7dc.png>
3Dプリンターで出力した結果がこちら。ランドセル背負ってるみたいでかわいい 笑
<img width="400" alt="ziguVer2-front" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/bffe9723-fa56-f71d-181d-f8af4b7355ac.jpeg>
<img width="400" alt="ziguVer2-back" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/f62f81b6-e7c3-f9f1-575e-4d2e4fbe0ff9.jpeg>

これでアルコールスプレーの外装部分も完成しました！

#システム構成
さて、ハードウェア的な問題は解決したので、次はメインとなるシステム構成を考えていきましょう！

今回は便利な **IFTTT** を使用します。
IFTTT とは、**異なるソーシャルメディアやプラットフォームを連携させるwebサービス** です。
（詳しくはこちら：[IFTTT helps your apps and devices work together](https://ifttt.com/) ）
具体的には、アルコールスプレーがプッシュした瞬間の情報を Webhook を通じて Twitter に送信し、ツイートを行うという仕組みです。
Webhook については、こちらの記事に分かりやすく書いてあるのでご覧ください。
（[Webhookとは？ - Qiita](https://qiita.com/soarflat/items/ed970f6dc59b2ab76169) ）
また、とても有り難いことに、SeeedJP の公式ライブラリに WioLTE を用いて Webhook の通信を行うソースコードが記載してあります。
今回ほとんどコードを自作することがなく、とても簡単でした 笑。ほんと有難い……。
[WioLTEforArduino/ifttt-webhook.ino at master · SeeedJP/WioLTEforArduino · GitHub](https://github.com/SeeedJP/WioLTEforArduino/blob/master/examples/http/ifttt-webhook/ifttt-webhook.ino)

<font color="red">__<※注意点※>
IFTTT の仕様上、Twitter は１日25ツイート以上ツイートすると、システムが次の日まで止まります。
安易にツイートしないように気をつけましょう笑__</font>

コードを動かしてみた結果がこちら！
<img width="500" alt="twitter-success" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/7418ac80-0cad-e4c0-d3fd-aafb0054c701.jpeg>
無事、「アルコールスプレーが動いた時間」と、「その日何回目のプッシュなのか」をツイートすることが出来ました！
これでアルコール消毒がどれくらいされているか分かりますね 笑

#組立てと完成物
これで必要な要素は全て完成しました！
では実際に組立ててみましょう！
**電源となるUSBケーブルをアルコールスプレーに並列接続して……
回路周りの配線とWioLTEと外線のねじ止めを行い……**
<img width="400" alt="haisen" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/3fcb59a8-1463-ffee-1e8f-defbb4ac73a7.jpeg>

いざ起動！

……と思ったら動かない！
なんでだ……？
……(検索中)……

調べてみると **WioLTE の通信時に必要な電流が 0.8A ほど必要** なので、
元々の乾電池駆動だと動かないと発覚……。
急遽ACアダプターから給電することに。
<img width="400" alt="ACadapter" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/0c36ae92-c0df-ac93-aeb9-68fde4b5a92e.jpeg>
外部給電にすると、無事、ツイートを行うことが出来ました！
これで完成しました！嬉しい！！！


#終わりに
ここまでお読み頂きありがとうございました！
Webhook を変更すれば Twitter 以外にも様々な用途に使用できるので、是非トライしてみてください！
今回を通してアルコール噴射時の情報が取得できるようになったので、
次はSORACOMのサービスを使って、クラウドで情報管理してみました。
もし興味のある方はご覧ください！
[【SORACOM×コロナ対策】アルコール消毒状況から店の混雑度合いを可視化してみた](#https://qiita.com/smile_besubesu/items/eb1344822f9b5c04d786)

当社は、cm級位置情報測位デバイスの「**iChidori(いちどり)**」シリーズを始めとした、位置情報ソリューションをお客様に提供しています。
製品の説明は [こちら](https://www.aitoya.com/#products) に記載あります。ご興味のある方は是非ご覧ください！
<img width="400" alt="よい、いちどりを。.jpg" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287136/6cc409c4-49cd-2c90-4108-c6659ec874aa.jpeg>
本記事は、AITOYA株式会社HPに掲載している内容と同一のものです。 → [AITOYA株式会社HP](https://www.aitoya.com/)