「データありき」から始めないIoT設計 – ホース脱落監視を例にした思考プロセス

みなさん、こんにちは。

IoTシステムの企画や開発に関わっていると、ついつい最初にやってしまいがちなことがあります。

それは……、「どのセンサーを使おうかな?」から考え始めてしまうことです。

実は、IoTにおいて一番大切なのは「どのセンサーを選ぶか」ではありません。 本来、設計は以下の順番で進めるべきなんです。

  1. 何をしたいのか?(目的)
  2. それはどんな「状態」なのか?(定義)
  3. その状態を判別するには、何を測ればいいのか?(手段)

今回は「外れてはいけないホースが外れたことを検知したい」というシンプルなテーマを例に、失敗しないセンサー選定の思考プロセスを解説していきます。

 


 

「データありき」のIoTがうまくいかない理由

 

少し前まで、IoTの世界ではこんな言葉がよく聞かれました。

「とりあえずデータを集めて、あとでビッグデータ解析をすれば何か分かるはずだ!」

でも、結果はどうだったでしょうか。多くのプロジェクトが、残念ながら実用化(PoC)の壁を越えられずに終わってしまいました。

  • 目的が曖昧
  • 使い道が決まっていない
  • 解析結果をどう現場に活かすか分からない

これらは技術の問題ではなく、「設計の順番」の問題です。プロダクトアウト(技術起点)でIoTを成功させるのは、実はとっても難しいことなんです。

 


 

今回のテーマ – 「ホースが抜けたら教えてほしい」

 

では、具体的な例で考えてみましょう。

  • やりたいこと(目的)
    ホースが抜けていないか監視し、抜けたらすぐに通知してほしい。人間が24時間監視し続けることは事実上不可能なため、まさにIoT向きの目的です。
  • 状態の定義
    正常: ホースがしっかり接続されている
    異常: ホースが抜けている

ここまで整理すると、やるべきことが見えてきます。「ホースが抜けた状態」を、いかに確実かつ簡単に検知するか、が勝負です。

 


 

何を測れば「ホースが抜けた」と分かるのか?

 

次に、ホースが抜けた瞬間に起きる「物理的な変化」を想像してみます。

  • 圧力が変わる?
  • 流量が変わる?
  • 電気的な状態が変わる?

ここで大切なポイントがあります。それは、「精密な測定値はいらない」ということです。 必要なのは、抜けたか・抜けていないか、つまり 「オンかオフか」 だけ。

そこで、ホースが抜けた時に「電流(信号)が流れる/流れない」という状態を作れないか?という問いを立てます。

 


 

問いを解決するセンサー選定の結果 → ホールセンサー

 

「磁気の有無」でスイッチのように反応してくれるのが、ホールセンサーです。モーターの回転数の計測や、ドアの開閉検知などによく使われる、とてもポピュラーで安定したセンサーです。

ホースが抜ける、つまり脱落状態を測定するセンサーとして、これ以上適切なセンサーはありません。

仕組みはこうです。

  1. ホース側に磁石を取り付ける
  2. 接続側にホールセンサーを設置する
  3. ホースが抜けると、磁石が遠ざかり「磁気」が消える

これなら、複雑なデータ解析をしなくても「ホース脱落」を確実にキャッチできますよね。この時点で、センサーは「目的から自然に導き出された答え」になります。

センサー設置イメージ
AIで生成したセンサー設置イメージ

 


 

M5StickCで実際に動かしてみる

 

では実際に実装してみましょう。今回は、手軽にプロトタイプが作れる「M5Stackホールセンサーユニット」と「M5StickC」を使いました。
実際のプロジェクトであれば、ディスプレイは必要ありませんの、M5StickCよりも小型省電力なM5 ATOMS3 Lite あたりが最適かと思います。

公式のサンプルコードをベースに、M5StickCで動くように少しだけ調整します。

主な修正ポイント

  • ライブラリ
    M5Stack.h から M5StickC.h に変更
  • ピン番号
    ADC対応で扱いやすい GPIO 33 を使用
  • 表示
    小さな画面に合わせてレイアウトを微調整

サンプルコード

#include <M5StickC.h>
#define HALL 33

void setup() {
    M5.begin(true, false, true);
    Serial.begin(115200);
    M5.Lcd.setRotation(3);
    M5.Lcd.fillScreen(BLACK);
    M5.Lcd.setTextColor(WHITE);
    pinMode(HALL, INPUT); // プルアップ・プルダウンは内部で処理されているため不要
}

void loop() {
    // ホールセンサーの状態を読み取る(0 or 1)
    bool status = digitalRead(HALL);

    M5.Lcd.setTextSize(2);
    M5.Lcd.setTextColor(WHITE, BLACK);
    M5.Lcd.setCursor(10, 30);
    M5.Lcd.printf("Hall Status: %d", status);

    delay(100);
}

驚くほど短いコードですが、これで「磁石があるかないか」をバッチリ判定できます。あとはこの status の値を使って、「ブザーを鳴らす」「LINEで通知する」といった処理を付け加えるだけです!

 


 

まとめ – センサーは「手段」であって「出発点」ではない

 

今回お伝えしたかったのは、ホールセンサーの使い方そのものではありません。

  1. 何をしたいのか
  2. それはどんな状態なのか
  3. その状態を知るには何を測ればよいのか

この順番で考えれば、使うべき技術やセンサーは自ずと決まってくる、ということです。

IoTは単なる「データを集める技術」ではなく、「現実世界の状態を定義し、分解する技術」だと私は考えています。

世の中には使われないデータが確かに蓄積されています。しかし、それをうまく活用するのは容易ではありません。目的と合致するデータなどそうそうないからです。
「データがあるから何かする」のではなく、「やりたいことがあるからデータを取る」。
そんな、目的志向のIoT設計をぜひ意識してみてください。

 

本日も最後までお読みいただきありがとうございました。

それでは、よいIoTライフを!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール