「高価なDAQボードの代わりにESP32を使いたい」「無線でセンサーデータをLabVIEWに集約したい」といったご要望に対し、マイコンのファームウェアからLabVIEWのUI設計までワンストップで開発します。
ESP32のWi-Fi機能を利用し、離れた場所にある複数のセンサーデータを無線でLabVIEW上にリアルタイム集約・ロギングします。
PCとESP32をUSBで直結。安定したUART通信により、高頻度なセンサーデータの取得とグラフィカルな波形表示を実現します。
LabVIEWの操作画面(UI)からコマンドを送信し、ESP32のGPIO経由でアクチュエータや電磁バルブを正確にドライブします。
高価な産業用計測機器の代替としてESP32を採用し、システム全体のコストを大幅に抑えつつ近代的なPC制御へ移行します。
ESP32のWi-Fi機能とNTPサーバーを連携させ、正確な現在時刻を自動取得してLabVIEW側へ1秒ごとに送信するArduinoスケッチ(プログラム例)です。
【開発のポイント】 TCP通信はデータが連続して流れる(垂れ流しになる)特性があるため、受信側(LabVIEW)でデータの区切りを見失わないよう、改行コード(LF)をデリミタとして利用する堅牢な実装が重要になります。
#include
#include
const char* ssid = "**今お使いのWIFI ssid";
const char* password = "**WIFIのssidパスワード";
// LabVIEW PCのIP
const char* serverIP = "192.168.*.*";
const int serverPort = 5000; //Windowsファイアウォールの解除が必要
WiFiClient client;
// 日本時間設定
const char* ntpServer = "ntp.nict.jp";
const long gmtOffset_sec = 9 * 3600;
const int daylightOffset_sec = 0;
void setup() {
Serial.begin(115200);
// WiFi接続
WiFi.begin(ssid, password);
Serial.print("WiFi接続中");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi接続完了");
// NTP時刻取得
configTime(
gmtOffset_sec,
daylightOffset_sec,
ntpServer
);
Serial.println("時刻取得中");
delay(2000);
// LabVIEWへ接続
while (!client.connect(serverIP, serverPort)) {
Serial.println("LabVIEW接続失敗");
delay(5000);
}
Serial.println("LabVIEW接続成功");
}
void loop() {
// 接続が切れていたら再接続
if (!client.connected()) {
Serial.println("LabVIEWへ再接続中...");
while (!client.connect(serverIP, serverPort)) {
Serial.println("接続失敗");
delay(5000);
}
Serial.println("LabVIEW接続成功");
}
struct tm timeinfo;
if (getLocalTime(&timeinfo)) {
char timeString[30];
sprintf(
timeString,
"%04d/%02d/%02d %02d:%02d:%02d",
timeinfo.tm_year + 1900,
timeinfo.tm_mon + 1,
timeinfo.tm_mday,
timeinfo.tm_hour,
timeinfo.tm_min,
timeinfo.tm_sec
);
client.println(timeString);
Serial.println(timeString);
}
delay(1000);
}
このように、ESP32のWi-Fi機能やNTP時刻同期を活用すれば、安価かつ柔軟なネットワーク型の計測・ロギング環境を構築することができます。しかし実際の現場では、「LabVIEW側のTCPリスナーのバッファ処理でつまづいた」「複数台のESP32から同時にデータを受信して管理したい」「ノイズ対策や異常時のフェイルセーフを堅牢に作り込みたい」といった課題に直面することも少なくありません。
測定代行株式会社では、元・横河電機のR&Dエンジニアが持つ計測制御の知見と、LabVIEW受託開発における豊富な実績を掛け合わせ、ハードウェア(マイコン選定・ファームウェア実装)からLabVIEWの画面設計・データ保存システムまでトータルでサポートいたします。「自社の実験装置を無線化したい」「既存の計測システムを低コストで刷新したい」といったご要望がございましたら、仕様書がまとまった段階でなくても、まずはお気軽にご相談ください。
「こんなセンサーをLabVIEWで読み取りたい」「無線化の構成を相談したい」など、
概算見積もりや技術的なご相談は無料で承っております。お気軽にお問い合わせください。