システム構成
今回開発するシステムは下図のように、デバイス・SORACOM・AWS・Slackを組み合わせて構築しています。特筆すべき点として、デバイスからSORACOMプラットフォームへの接続にSORACOM Arcを使うことで、物理SIMを使わずにWi-Fi経由で接続するという特徴があります。
ボタンを押すとSlackには下図のような通知が来ます。リンクをクリックすると減少した消耗品の販売ページに飛び、そのまま発注ができる仕組みになっています。
必要な時間、概算費用
このボタンを作るために必要な時間、費用は以下の通りです。
- 必要な時間: 約120分
- 概算費用: 約7,500円
※概算費用とはSORACOMやAWSの利用料、ハードウェアの購入費用を概算しています。以下は考慮していません。
- サービスの無料枠
- インターネット通信料
- 送料
- Slack利用料
使用するサービス
SORACOM
- セキュアリンクサービス SORACOM Arc
- クラウドファンクションアダプター SORACOM Funk
AWS
Slack
- Slackワークスペース
用意するもの
品名 | 数量 | 費用 | 参考 |
---|---|---|---|
M5Stack Basic | 1 | 5,300円 | |
microSDカード | 1 | 1,000円 | M5Stackに挿してフォントデータを読み込ませるために使用するので、容量が少なくても大丈夫です |
USB電源 | 1 | 1,000円 | M5Stackへの電源供給に使用します |
使い方
作業を始める前に、ソースコード一式を取得してください。
$ git clone git@github.com:fusic/dash-button.git
$ cd dash-button
Slack
本システムを使うためには予めSlack Appを作成しておく必要があります。以下ページより作成・インストールしてください。
- Slack API: Applications | Slack
アプリを作成したら、以下情報をメモしておいてください。
Slack App
のBot User OAuth Token
Slack
の通知先チャンネルID
(Slackのチャンネル名をクリックすると最下部に表示されます)Slack
のメンション先メンバーID
(Slackのプロフィール画面の「メンバーIDをコピー」をクリックすることで取得できます)
AWS
AWSの環境はAWS SAM CLIを使って、コマンドラインでデプロイできるようになっています。
こちら のドキュメントを参考にインストールした上で、以下コマンドを実行ください。
$ sam build
$ sam deploy --guided
Configuring SAM deploy
======================
Looking for config file [samconfig.toml] : Found
Reading default arguments : Success
Setting default arguments for 'sam deploy'
=========================================
Stack Name [fusic-dash-button]: fusic-dash-button # 任意の名前でOK
AWS Region [ap-northeast-1]: ap-northeast-1 # 他リージョンに変更可
Parameter SlackBotToken []: (Slack App の Bot User OAuth Token)
Parameter SlackChannel []: (Slackの通知先チャンネルID)
Parameter SlackMensionId []: (Slackのメンション先メンバーID)
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: y
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]: y
#Preserves the state of previously provisioned resources when an operation fails
Disable rollback [y/N]: n
Save arguments to configuration file [Y/n]: y
SAM configuration file [samconfig.toml]: samconfig.toml
SAM configuration environment [default]: default
SORACOM
SORACOMはコンソールにログインして作業します。
まずSORACOM Arcを使用するため、仮想SIMを作成します。以下ドキュメントを参考に作成してください。
次にデバイスからデータが送信されたときにAWSのLambda関数を実行させるため、SORACOM Funkを有効化します。以下ドキュメントを参考に設定してください。
最後に、デバイスが送信しているバイナリデータをJSONに変更するため、SORACOMのバイナリパーサーを設定します。以下ドキュメントを参考に設定してください。
今回は item:0:uint:32:little-endian
というフォーマットを指定することで、デバイスから送信するメッセージをLambda関数で解釈できるようになります。
デバイス
デバイスのコンパイル、書き込みにはArduino IDEを利用します。以下ページよりお使いのOSに合わせてインストーラをダウンロードし、インストールしてください。
インストールが完了したら、device/main.ino をArduino IDEで開いて、マイコンボードに書き込んでください。
書き込みが完了したら、お手持ちのスマートフォンからM5Stack上で起動しているアクセスポイントへ接続し、M5StackをWi-Fi接続するよう設定します。詳細は以下記事を参照ください。
運用開始
ここまでの手順で準備は完了です。デバイスを消耗品の近くに設置しましょう。
弊社の場合は、社内に周知した上で以下のような張り紙をしておきました。
終わりに
弊社ではFusicダッシュボタンの運用を開始して以降、バックオフィスチームが消耗品を定期的に棚卸しなくても、社員から通知が上がってくるようになりました。(細かい振り返りは こちらの記事 にまとめています)
簡単に始められる社内DXの一例として、皆様の参考になれば幸いです。