LoginSignup
0

More than 3 years have passed since last update.

ノンコーディングでIoT

Posted at

概要

ノンコーディングでデータの取得、リアルタイム可視化を行いました!
コーディングいらずなので、エンジニアでない方でも簡単にできちゃいます。
インターン先に設置してあるコーヒーマシンの利用状況を人感センサーで取得し、可視化しました。
元々はコーヒーマシン内の豆が切れたら社員に通知を送るシステムを作ることで、コーヒーマシン周りの業務軽減を目的としてプロジェクトが始まりました。ただ、コーヒーマシンの中身に組み込むのは少し骨が折れるので、センサーを使って人感することで利用状況を把握すれば、豆切れを同定できるのではないかというアプローチをとりました。

ハードウェアはラズパイ、omronのD6Tセンサー(温度センサー)、Groovy-IoT(センサーとラズパイのアダプタ)を使っています。

主な流れは以下の図のフローのようになっています。

image.png

テーマは、「遠隔操作のみで完結」です!
特徴として4つの点があげられます。

  • 簡単にセンサーの変更、保存先の変更、データの形の変更が可能(もちろんリモート!)
  • ラズパイをディスプレイにつなぐ必要なし!sshも必要なし!
  • リアルタイムでデータが可視化できる
  • コーディングいらず!

enebular

フローの全体図に書いてあるようにenebularというソフトウェアを使ってます。上記した4つの特徴のうち、これらの特徴は全てこのenebularによって形成されています。IoTや非エンジニアにはもってこいのソフトウェアです。

各工程の説明

フローのデプロイ

使ったflowはこちらです1
image.png
https://enebular.com/discover/flow/ff95c7bd-a032-4759-a318-87a64c504b8e

一定間隔でトリガーを起動してhttp requestを受け取り、jsonに変換。その後わかりやすく加工してfirebaseに送っているというflowです。

このフローの末尾のノードのみを編集してflowの準備は完了です。
deployして、下図のようにstatusがdeployedになれば成功です。
image.png

kikori

このままではデータは取得できません。deployしたflowはhttp requestを使っていますが、ローカルサーバーが立っていないので、requestが通らないです。
そこでここではkikoriというローカルサーバーを使います。kikoriはGroovy-IoTに対応したローカルサーバーを立てるソフトウェアです。kikoriは https://gitlab.com/myst3m/kikori にてインストールできます。はじめにラズパイにインストールしてください。
shellに自動起動のコマンドを入力しておけばokです。

infomotion

以上が成功していれば、今頃ラズパイに繋がったセンサーからデータを吸い上げてfirebaseに送っているはずです。
image.png
これをリアルタイムで可視化してみましょう。D6Tセンサーは温度センサーなのでサーモグラフィーのようなグラフが見れることが期待できます。

可視化にはenebularの機能であるinfomotionを使います。
infomotionの各種設定をし、LIVEボタンをクリックすれば、、、

リアルタイムデータ可視化の成功です!

解析

3で行った可視化はあくまでパフォーマンス的な可視化です。最後に、蓄積したデータを用いて解析してみました。概要にも書いた通り、社内のコーヒーマシンの利用状況についてデータを取得し、解析します。

データは約22時間取得しました。こんな感じになりました。
image.png

UNIX時間を変換すればわかりますが、夜中の間は検出温度が一定なので、うまくデータが取れていそうです。
ここから、ピークを細かくみて、検知できてるかどうかを確認しましょう。
設置から50eventをみてみると
image.png
ピークがみて取れます。設置後は僕が目の前をうろうろしていたので、人感できているということで問題ないでしょう。

もう少し解析用のコードを修正すれば、より正確に検知を同定できると思います。

終わりに

要点だけをかいつまんで話したので、細かいセットアップとかは別記事に載せようと思います。
そちらもご参考にしてください。
同じようにenebularを使って同僚がデジタルサイネージしてるのでこちらもよかったらどうぞ
https://qiita.com/datsu0/items/19f6447c090aaf8b9f73


  1. http requestのノードが通信エラーを吐いていますが、これはローカルサーバーを立てていないからです。ラズパイにこのflowをdeployしたのちに、ラズパイ内でkikoriというローカルサーバーを立てるので、この時点では気にしないでください。 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0