加工機稼働監視システム-M5StickC編


概要

近年注目されているIoT(Internet of Things)ですが、
弊社でも試験的に加工機の稼働状態を監視するシステムの構築を始めました。

センサやWEBカメラを用いて加工機に取り付けられたシグナルタワーの状態を検出し
社内ネットワークを経由して一定周期でサーバとなるPCに結果を送信、
送られてきたデータからサーバPC内でデータベースを作成し
その内容をブラウザで表示、というのがシステム全体の流れになります。

上記の通り、シグナルタワーの状態検出は2種類行いましたが
今回は光センサによる検出をご紹介いたします。

内容

1. 構成および使用部品
2. M5StickCの設置
3. 専用ソフト”UIFlow”によるプログラム作成
4. 結果・感想

1. 構成および使用部品

今回のシステムの構成は下記のとおりです。(図1)

M5StickC(小型開発モジュール):M5STACK-K016-C 1個
M5Stack用光センサユニット:M5STACK-LIGHT-UNIT 3個
M5Stack用I/Oハブユニット:M5STACK-U041 1個

Node.js (*1):version 14.17.1
Node-red (*2):version 1.3.4
SQLite (*3):version 3.35.5
DB Browser for SQLite (*4):version 3.12.2.0

(*1) ChromeのV8 JavaScriptエンジンで動作するJavaScript環境
(*2) Node.js上の実行環境に構築されるフローベースドプログラミングツール
(*3) パブリックドメインのデータベースエンジン
(*4) SQLiteの編集を行うためのオープンソースツール

図1. 構成イメージ

図1. 構成イメージ図

2. M5StickCの設置

M5StickCとはM5STACKが販売するESP32(*5)を搭載した小型の開発用基板です。
同メーカーからは上記に対応する様々なセンサやAIカメラ等も販売されております。

選定した加工機のシグナルタワーは3色タイプだったので
各色表示灯にそれぞれ1つずつ光センサを取り付け、
3つのセンサをハブで集約しM5StickC本体と接続しております。

また、本機はバッテリも搭載しておりますが24時間監視を行うため
場内コンセント(AC100V)から電源を取り設置場所付近まで配線、
ACアダプタ(1A出力)で変換を行って本体と接続しております。

(*5) Wi-FiおよびBluetoothを搭載した低消費電力のマイクロコントローラ

3. 専用ソフト”UIFlow”によるプログラム作成

プログラミングはArduino IDEやMicroPython等を用いた言語でも行えますが、
M5StackシリーズにはUIFlowという専用ツールも存在し今回はそちらを使用しました。(図2)

  【プログラム概要】
 1. WDT(Watchdog Timer)の設定
 2. 社内ネットワークWiFiとの接続
   - 以下ループ-
 3. 各センサのアナログ値を取得
 4. 任意の閾値で条件分岐し、デジタル値に置換
 5. 3つのセンサの値から加工機の状態を判別
 6. センサのアナログ値、デジタル値、加工機の状態を
    a. JSON形式(*1)に変換しUDP通信を用いてサーバPCに送信
    b. 本体液晶に表示

(*1) JavaScript Object Notationの略で、様々な言語でサポートされており各言語間のデータの受け渡しに用いられる

図2. UIFlow編集画面

図2. UIFlow編集画面

4. 結果・感想

検出結果およびデータの送受信において正常に動作することが確認できました。
調整中Wi-Fiが切断された際にプログラムの再起動が行われないという問題が発生しましたが
M5StickCの起動モードをAppに設定することで解決いたしました。

今回、初めてM5STACKの商品を使用しましたが安価でプログラミングが非常に容易で使いやすく感じました。
取付方法によってはブラケットの製作を行う必要がございますが、IoTの入り口として大変適していると思います。

次回はWEBカメラとRaspberry Piを用いた検出をご紹介いたします。