Arduino OPTAとNode-redをシリアル通信(USB)で接続
1.はじめに
データ収集装置が収集したデータをExcel VBAを使ってシリアル通信を行う方法について盛んに検索が行われています。
Windows95からのレガシーライブラリー(DLL)をExcel VBAに組み込んで、シリアル通信をする方法です。
2022年9月頃に、Excelが大きくアップデートしました。
Excel VBAからシリアル通信をしてデータを取り込むマクロを、以前からメンテナンスしていましたが、そのアップデート以降、うまく動作しなくなってしまいました。
一方、オープンソースのアプリでは、簡単にシリアル通信が確立でき、USBで接続したデバイスと通信できるようになっています。
当然、ExcelにAdd-ONしたりはできませんが、CSV形式やJSON形式で保存されたデータでのやり取りは可能になっています。
2023年にもなって、約30年も前に作られた1995年のWindowsライブラリーに固執する理由もありません。
それに、30年も経過しています。
IoTなどのDXを推進している立場から考えると、周りのツールとの兼ね合いから、Excel VBAによるシリアル通信マクロは使い道がなくなってきています。
その一方で、オープンソースなどのツールを試しながら探っていたら、Node-REDにシリアル通信用のブロックを組み込むことでシリアル通信ができることがわかりました。
その時の様子が以下の写真になります。
2. 実験内容の説明
これは、Arduino OPTAの事例研究で試していた実験の様子です。
M5Stick-CをUSB接続モードで起動すると、電源供給端子からDC 5 V と、DC 3.3 Vの電源電圧が供給されます。
上図の写真では、緑の配線が DC 5.0 V。
黒の配線には DC 3.3 Vが供給されています。
Arduino OPTAの入力端子に、M5Stick-Cから供給される電源電圧を入力信号として入力しています。
OPTAの入力端子は、デジタル入力端子としても、アナログ入力端子(10V DC)としても利用できます。
スケッチ(制御プログラム)上で、デジタル/アナログの入力特性を決める必要があります。
この場合、アナログ入力で設定し、入力された電圧をシリアルポート(USB)に出力するようにしています。
Arduino IDE(Ver. 2.1.0)のシリアルモニターを使えば、シリアルポートに出力されている信号を確認することができます。
この実験の最中、ふと考えました。
Node-Redでシリアルポートに出力されるデータを読み取れるのではないか?
ということで、早速、Windows PCに Node-Red をインストールし、シリアル通信用のブロックを組み込んでみました。
そのNode-Redの画面が以下のようになります。
OPTAから送信されたデータがデバッグ・ウィンドウに表示されています。
表示されている内容は、Arduino IDE シリアルモニターに表示された内容と同じものでした。
今回はWindows PCですが、Raspberry PIでも、センサーをUSBで接続しシリアル通信できるのであれば、データをダイレクトに取り込むことができます。
また、MQTTでWi-Fiなどを通じ送信されたデータも一緒にして、CSV形式に保存することも可能なので、EXCELよりも汎用的です。
Dashbord機能を使えば、収集したデータをリアルタイムで、社内の関連部署で共有できます。
ノーコードでシリアル通信でデータ収集するブロックプログラムが構築できます。
3. おわりに
基礎的な実験なので、実践的な内容ではありませんが、Excelは使わなくてもデータ収集は可能なようです。
収集したデータに対し、より詳細な分析を行うために使うのがEXCELだと思います。
リアルタイムでのデータの可視化はNode-Redのグラフ機能を利用すればよく、しかもExcelのようにコードを組む必要もありません。
ノーコードで、データ収集が可能です。
この記事が気に入ったらサポートをしてみませんか?