「CSVxUDP」は、主にセンサ値のCSVデータを Wi-Fi や Ethernet LAN上でUDP送信するセンサ用データ伝送フォーマットです。
このデータ形式は、筆者がLAN上でのIoT機器の学習用に定義し、CQ出版社のトランジスタ技術2016年9月号で公開し、以降、筆者が製作する様々な機器で使用しています。また、2022年からは「CSVxUDP」と表記しています(CSV Cross UDP Beacon 送信機&受信機)。
本ページでは、CSVxUDP方式の概要と補足情報を掲載しています(GitHub Pagesの「udp:センサーデータ伝送フォーマット「CSVxUDP」(CSV Cross UDP)」にも同様の情報を公開しています)。
具体的な説明については、書籍「ラズパイ/M5Stack用サンプルで学ぶ IPネットワーク通信プログラム入門」の第1章と第2章で解説しています。
カンマ区切りのCSV形式なので、受信データをファイルに保存し、マイクロソフトExcelなどの表計算ソフトで開くことができます。下図はCSVxUDP形式の受信データに受信日時を追加したCSVファイルです。
受信データをモニターする用途にも利用できます。
下記に学習用のサンプル・プログラムを用意しました。各行に簡単な説明があるので、機能追加や修正も容易です。
https://github.com/bokunimowakaru/udp/tree/master/learning
デバイス名 | センサ | データ |
---|---|---|
btn_s | 押しボタン・スイッチ | 状態(0/1) |
pir_s | 人感センサ | 状態(0/1) |
illum | 照度センサ | 照度(lx) |
temp. | 温度センサ | 温度(℃) |
humid | 湿度センサ | 温度(℃),湿度(%) |
press | 気圧センサ | 温度(℃),気圧(hPa) |
envir | 環境センサ | 温度(℃),湿度(%),気圧(hPa) |
accem | 加速度センサ | X(m/s2),Y(m/s2),Z(m/s2) |
rd_sw | リード・スイッチ | 起動時の状態(0/1),送信時の状態(0/1) |
e_co2 | 二酸化炭素センサ | 温度(℃),湿度(%),気圧(hPa),CO2(ppm),TVOC(ppb),測定回数 |
temp0 | CPU内蔵温度センサ | 温度(℃) |
hall0 | CPU内蔵磁気センサ | 値 |
adcnv | A/D変換器 | 値 |
meter | 電力計 | 電力(W),電力量(Wh),経過時間(秒) |
actap | AC100V電流センサ | 電力(W),電力量(Wh),経過時間(秒) |
awsin | Websocketセンサ | 参加者数,累計 |
count | 歩数計 | 歩 |
esp32 | ESP32マイコン | 未定義 |
ident | ネットワーク参加 | 未定義 |
medal | ROHM SensorMedal | デバイス依存 |
ocean | EnOcean 温度センサ | 温度(℃),RSSI(dB) |
river | 河川の水位センサ | 月,日,時,分,秒,水位(cm) |
tftpc | TFTPファイル転送 | 値 |
timer | 時刻 | 年,月,日,時,分,秒 |
voice | 音声 | 値 |
janke | ジャンケン | 手(0~2),指(0,2,5) |
Ping | 呼び鈴(Ping) | - |
Pong | 呼び鈴(Pong) | - |
Emergency | 緊急 | - |
Reset | 解除 | - |
CSVxUDPのパケットが受信できない場合は、以下の原因が考えられます。
ネットワークケーブルやWi-FiのSSIDとパスワードの設定を確認してください。
ルーターでDHCPサーバー機能が有効になっていることを確認してください。
AP Isolation(隔離)機能を備えたルーターで構築されたWi-Fi LAN上に機器がある場合、ルーターを経由してパケットが届かない場合があります。Wi-Fi LANを他のユーザーと共有しない場合は機能をオフにしてください。(AP アイソレーション機能は、ルーター内の端末デバイス間のパケット転送を分離する機能です。)
Wi-Fiルータによっては、端末間でブロードキャストされたパケットを破棄します。その場合は作成した送信のブロードキャストIPアドレス「255.255.255.255」を「192.168.1.XX」などのユニキャストに切り替えてください。ルーターのフィルターをオフにする方法もありますが、セキュリティ対策が不十分になる場合があります。
ネットワーク機器のセキュリティ機能、隔離機能、ループ防止機能の誤動作、またはパケット廃棄機能の誤動作によって、CSVxUDPのパケットが破棄される場合があります。
パケット廃棄機能は、本来、不要な通信パケットを破棄する機能です。CSVxUDPは片方向の UDP 通信のため、ネットワーク機器のブリッジ機能が不要なパケットと誤認識し、破棄してしまう可能性があります。
この場合は、片方向の通信に加えて、双方向通信を併用することで修復や回復することができます。
Pingを利用するのも解決策の一つです。PCやLX Terminal上で「ping 192.168.1.XX⏎」のようなPingコマンドを入力してください。Pingを繰り返すうちに、CSVxUDPの送信が可能になると思います。
または、ゲートウェイ、ワイヤレス アクセス ポイント、またはスイッチング ハブを再起動します。DHCPサーバーを搭載していない機器のみを再起動する場合は、再起動後にpingなどの双方向通信を行う必要があります。
修復後も片方向通信のみが続くと、ブリッジ機能により再度パケットが破棄されてしまいます。この場合、定期的に双方向通信を使用する何らかのアプリが必要です。
by bokunimo.net
下記の書籍の第1章と第2章でサンプル・プログラムを用いて「CSVxUDP」を解説し、後の6章~10章、14章の各章の一部で応用方法を紹介しています。
IoTマイコンの入出力をワイヤレス通信で自由自在 ラズパイ/M5Stack用サンプルで学ぶ IPネットワーク通信 プログラム入門 |
[PR] CQ出版社の販売ページ: https://shop.cqpub.co.jp/hanbai/books/42/42241.html [PR] Amazonの販売ページ: https://www.amazon.co.jp/dp/478984224X ![]()
|
|
B5変型判 256ページ 定価3,300円(税込) JANコード:JAN9784789842242 2023年5月1日発行 2023年4月21日発売 |
当サイト等で紹介したプログラムや製作品のご利用は自己責任でお願いします。