スキップしてメイン コンテンツに移動

簡単にできるIoT~振動の測定①


先日(といっても随分経ってしまっていますが…)とある方から、M5StickCというデバイスをいただきました。それで、どんなことができるのかと試してみたことを紹介します。

M5StickC


このデバイスは親指(より少し小さい?)くらいのサイズですが、中にESP32-PICOというモジュールが搭載されていて、WiFiやBluetoothの通信ができます。また、MPU6886というモジュールも載っていて、加速度、ジャイロ、(デバイス内部の)温度センサーが使えます。液晶画面やボタンもついています。要するに、いくつかのセンサーと、操作や通信をする機能がコンパクトにまとまっているデバイスです。

そして、このデバイスのいいところは、デバイスを制御するためのソフトウェアを作るのも非常に簡単ということです。ネットワークにつながる部分が既に作り込まれていて、少し追加で設定するだけで、すぐにWiFi(そしてWiFiを経由してインターネット)との接続も可能です。

この手の電子工作モジュールがよく売られているSWITCH SCIENCEでも扱っています。

何を作るか

機械などに取り付けたセンサーから得られるデータを、クラウドに収集して分析して、人の行動の参考にしたり、他のシステムを動かしたり、機械のコントローラーにフィードバックして自動制御したり、というのがよくあるIoTの全体像です。M5StickCを使えば、このようなIoT的なシステムが簡単に構築できることが期待できます。

とはいえ、このデバイスでどんなデータを取得したら役に立つのか、というのは意外と難しい話です。昨今、ノーコード/ローコードで、プログラマでなくてもプログラミングができる!ということがよく言われます。しかし、システムを作る上で難しいのは、コードを書くところよりも、何を作るかを決めるところです。これはプログラマやエンジニアでも上手くできる人が少ないですし、ユーザー企業で現場の業務をよく知っている人ならできるというわけでもないです。課題をよく吟味して、業務やビジネスがどう変化すると良いのかを全体最適の視点から捉えないと、間違ったものを作ってしまいます。

本来は、課題があって、それから手段が検討されるわけですが、今回は手段が手元にあって、そこから何ができるか考えています。完全に間違いパターンです。そのため、実際に役に立つかどうかは分かりませんが、よくあるIoTの課題である、ネットワークに接続されていない設備の稼働状況を監視したい、というものを漠然と想定してみます。
設備の稼働状況を見るのには、電気の流れや使用電力の変化、計器の変化を監視するケースがありますが、今回は振動に着目してみます。設備の特徴から考えているのではなく、もちろん手元のM5StickCに加速度センサーがあるからです。

物理的に動く設備には多かれ少なかれ振動が発生します。うちにあるサーキュレーターも稼働中に触ってみると振動が感じられますし、風力の違いによって振動も変わるようです。そこで、その振動をM5StickCの加速度センサーで捉えることで、稼働状況を監視できるのではないか、という仮説を立てました。

どれくらいデータを取るのがいいか

振動データはクラウドに送って分析できるようにします。そうすると、デバイスからインターネット経由でデータを送る通信が発生しますが、あまりたくさんのデータを通信するのも、通信の回数が多くなるのも大変です。そこで、一定の時間おきに、ごく短い時間の振動データをサンプルとして取得して送ることにします。

機械の状態変化を、どのくらいの時間おきに取ればいいかは、どんな機械をどのように使っているかによります。うちのサーキュレーターの稼働状況を監視するには、10分に1回、どうなっているか見れば十分です。また、振動データは10分間ずっと取得するのではなく、ごく短い時間のデータでも、どれくらいの振動が起きているか分かるのではないでしょうか。

ただ、どれくらい細かくデータを取るのが良いかは、精緻に考えると難しそうです。ひとまず簡単に考えてみます。うちのサーキュレーターはそんなに回転しないと思いますが、もし1分間に3000回転する機械が、回転ごとに振動を起こすとしたら、50Hzになるでしょうか(正確なところは僕には分かりません…)。50Hzだと20ミリ秒に1回の振動があるので、それより細かく振動データを取らないと、振動を検知できません。今回は、5ミリ秒ごとに振動データを取ってみます。あまり細かすぎるとセンサーが対応できなくなる可能性もありますが、センサーの仕様を調べてみると低電力モードでも2ミリ秒(500Hz)に対応できるようなので余裕があります。

データの取得数は、コンピューターの世界では2のn乗が都合が良いので、256個とします。5ミリ秒ごとに256個データを取ると、時間にして約1.28秒間のデータになるはずです。1秒以上のデータが取れれば、1秒に1回動く時計のような機械でも動きが検知できる可能性が高いです。
ところで、このデータを1年間集め続けるとどうなるでしょうか。10分につき256個のデータが蓄積されるので、1日で36,864個、1月で1,105,920個、1年で13,455,360個のデータが集まることになります。世の中でビッグデータと言われるほどのものではありませんが、ちょっとしたデータ量にはなります。1年分のデータをExcelに記載すると、だいぶ動きが重くなるでしょう。

どこにデータを集めるか

さて次は、データを蓄積する場所についても考えてみます。クラウド上でデータを扱う方法はいくつもありますが、今回は簡単に実現したいので、Googleスプレッドシートに書き込んでみます。Google App Script(GAS)という仕組みでデータを受け取る口を作ることができて、そこから受け取ったデータをスプレッドシート内に自由に配置できます。

また、データを集めたあとに、どのような分析をすると、設備の状態を判断することができるのかは、データを集めて試行錯誤しながら検討することになります。取得したデータを眺めてみる際にも、スプレッドシートにはグラフを作る機能や、数式を扱う機能があるので、便利です。

ひとつ問題があるとしたら、データ量です。Googleスプレッドシートには、ひとつのファイルに500万セルまでしか保持できないという制限があります。今回、1年間で13,455,360個のデータが集まるという計算があったので、1年分の振動データはスプレッドシートに入り切りません。ただ、今回は試しに作ってみるだけなので、1年間も運用しません。まずは簡単に実現することを優先して、Googleスプレッドシートを使います。

設計メモ

ここまでのところを図にまとめてみます。
いよいよ、これから作り始めよう!というところですが、前置きが長くなってしまったので、つづきはまた次回とします。

このブログの人気の投稿

営業マネジメントを整える①

(以前、noteに書いた記事をこちらに転載します) 【注意】この一連の記事では、具体的にどのアプリがいいか、ということは書きません。営業マネジメントの考え方をベースに、どのような観点からアプリを検討するか、ということを書きます。 さて、どのようなアプリ、システムを導入するにしても、まずはそれで「何をしたいのか」という目的が大事です。 これまで導入していなかった営業支援アプリを、いま導入したいと考える事業者には、何かしら営業活動を変えていきたい、という想いがあると思います。 では、どう変えたいのか。事業者によって、いろいろな表現が出てくると思いますが、多くの場合、営業支援アプリは「営業マネジメントを整える」ために導入されます。 ここでいう、自社の「営業マネジメントが整っている」というのは、どういうことでしょうか。このシリーズ記事では、「営業マネジメントを整える」方法を説明しながら、営業支援アプリの役割を改めて確認することで、アプリを選ぶ際のヒントを示していきたいと思います。 営業マネジメントは、なんとかして「to be」に近づけること そもそも、なんで営業活動をやっているのか、と言ったら、商品やサービスを売りたいからですね。でも、なんで売りたいのか、と言ったら、お金が欲しいから、ということでもあるのですが、根本を考えていくと、会社や事業のありたい姿、あるべき姿を実現するためです。 何もしないでいる状態(as is)と、あるべき姿(to be)には差分(Gap)があるから、営業活動によって、その差分を埋めていくわけです。 経営の話をするときに、よく出てくる図 営業活動は、この「to be」に近づく活動、ということですね。 そして、マネジメントというのは「なんとかする」ということなので、営業マネジメントは、なんとかして「to be」に近づけること。 それが整うということは、営業活動によってホントに「to be」に近づいているか、確かめられて、もっと近づけるように工夫できる状態になっている、ということです。 トップダウンとボトムアップを統合する この「to be」は、会社や事業のありたい姿、あるべき姿である、ということをさきほど書きました。ということは、営業マネジメントの出発点には、会社や事業の未来をどうしていきたいかを明確にすることがあります。そして、その未来に向かって、...

営業マネジメントを整える⑤

  (以前、noteに書いた記事をこちらに転載します) 営業マネジメントを掘り下げながら、それぞれのマネジメントレベルで営業支援アプリに必要な機能が何かを示していくことで、いろいろ考えるヒントにしたい、というシリーズ記事の第5回です。 前回の記事はこちらです。 営業マネジメントを整える④ 今回は、個別の案件や、営業担当者の活動にフォーカスした営業マネジメントである、営業活動管理について考えてみます。このシリーズ記事の最初の方で、営業活動は事業の「to be(ありたい姿)」に近づく活動と書きました。... 前回の終わりに「次回は、データ分析的な営業活動の改善について、考えてみたいと思います。」と書きました。それが、このシリーズで毎度出している、この図の最後の部分にあたります。 ついにこの難しい図の最後の説明まで到達 組織としての営業能力の向上 これまでの営業マネジメントの話においても、データ分析的なところはあって、例えば「パイプライン管理」では、営業の流れを段階(プロセス)として定義して、それぞれの段階ごとに案件がどれだけ滞留しているかを数字で見ていました。「営業活動管理」においても、重点顧客へのアプローチ頻度を月何回などと数値で見ていくことがあるでしょうし、営業担当者のカレンダーの中で、重点顧客への訪問が何日あるかなども、見える化していくことがあるでしょう。数値化されていなくても、どの顧客にどのようなコミュニケーションや対応をしたのか、という記録もデータの一種です。 ただ、ここまでの話では、個別の活動を改善する機会や必要性を見つけるためにデータを使っていました。営業マネージャーが「この案件がストップしているな。担当者をサポートしたほうがいいな。」とか、「この営業担当者は、重点顧客に会いに行けてないな。何か問題があるのか聞いてみないと。」とか、というように営業担当者をサポートする機会を、営業支援アプリを活用することで、リアルタイムに発見していこうという感じです。 それに対して、この最後の部分では、「営業機会の発見 ノウハウの確立・共有」と書いていて、これは組織としての営業能力の向上にフォーカスした話になっています。 組織...

営業マネジメントを整える④

  (以前、noteに書いた記事をこちらに転載します) 営業マネジメントを掘り下げながら、それぞれのマネジメントレベルで営業支援アプリに必要な機能が何かを示していくことで、いろいろ考えるヒントにしたい、というシリーズ記事の第4回です。 前回は、案件が受注に向かっていく流れを見ていく「パイプライン管理」について確認しました。 営業マネジメントを整える③ >前回は、営業マネジメントの基本の「き」というべき、「目標と実績の管理」について確認しました。今回は、そこからひとつ下に進んで、ちょっと専門用語っぽい「パイプライン管理」について、考えていきたいと思います。... 恒例のフロー図 今回は、個別の案件や、営業担当者の活動にフォーカスした営業マネジメントである、営業活動管理について考えてみます。 そもそも営業活動とは このシリーズ記事の最初の方で、営業活動は事業の「to be(ありたい姿)」に近づく活動と書きました。事業活動のすべてが、「as is(現状のまま)」と「to be」とのギャップを埋めるための活動なのですが、特に営業活動と言ったときには、顧客に変化を生み出す活動を指すことが多いと思います。 この「変化を生み出す活動」というのは、顧客に、新しい価値の必要性に気づいてもらって、こちらが提供できる製品・サービスを活用してもらうことで、顧客の事業や生活をより良くしていくということです。それが実現するためには、以下のようなことが重要になるはずです。 適切な顧客とコミュニケーションできているか 適切な情報や支援を提供できているか 営業活動管理というのは、この2点のマネジメントと言えます。 自分たちの事業だけでなく、顧客の事業の「to be」も実現する活動へ 誰に会えているか まずは「適切な顧客とコミュニケーションできているか」という点です。これをマネジメントするには、営業担当メンバーの活動予定と実績を把握する必要があります。 営業を担当している人は誰しも、お客さんに会っていないと不安になります。いつも席に座っていると、ちゃんと営業活動をやっていないと怒られるのではないか、というプレッシャーもあります。そのため、やみくもに会える人に会ってい...