ユーザ用ツール

サイト用ツール


サイドバー

最新の10件
一覧
linux:gadget:iodata_ud-co25

Amazonで3000円切りで中のセンサより安いねということで一部で話題に.

センサはこれらしい.データシートもある.

1	$ 64.4
5	$ 61.18
10	$ 56.34
25	$ 49.91
50	$ 48.3

dmesg

[ +20.031877] usb 1-3: new full-speed USB device number 88 using xhci_hcd
[  +0.151847] usb 1-3: New USB device found, idVendor=04d8, idProduct=e95a, bcdDevice= 1.00
[  +0.000008] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  +0.000003] usb 1-3: Product: UD-CO2S
[  +0.000002] usb 1-3: Manufacturer: IO DATA
[  +0.659847] cdc_acm 1-3:1.0: ttyACM0: USB ACM device
[  +0.000065] usbcore: registered new interface driver cdc_acm
[  +0.000004] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

API

次のページに情報を入力すると,指定したメールアドレスにURLが送られてくる

アーカイブ内のファイル名は日本語なので注意

$ unzip -l ./UD-CO2S_protocol.zip
Archive:  ./UD-CO2S_protocol.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
   182973  2022-01-20 10:46   UD-CO2S_VA-MvgR_2.pdf
---------                     -------
   182973                     1 file
$ unzip ./UD-CO2S_protocol.zip
Archive:  ./UD-CO2S_protocol.zip
  inflating: UD-CO2S_VA-MvgR_2.pdf
$ xdg-open ./UD-CO2S_VA-MvgR_2.pdf
gio: file:///home/matoken/Downloads/UD-CO2S_VA-MvgR_2.pdf: ファイル“/home/matoken/Downloads/UD-CO2S_VA-MvgR_2.pdf”の情報取得中にエラーが発生しました: そのようなファイルやディレクトリはありません
$ ls -l ./UD-CO2S_VA-MvgR_2.pdf
ls: './UD-CO2S_VA-MvgR_2.pdf' にアクセスできません: そのようなファイルやディレクトリはありません
$ ls -l ./UD-CO2S_*
-rw-r--r-- 1 matoken matoken 182973  1月 20  2022 './UD-CO2S_'$'\342''V'$'\342\350\342''A'$'\342\357\306''-'$'\311''M'$'\342''v'$'\342\354\342''g'$'\342''R'$'\342\357''_2.pdf'
-rw-r--r-- 1 matoken matoken 175338  3月 17 17:46  ./UD-CO2S_protocol.zip
$ unar ./UD-CO2S_protocol.zip
./UD-CO2S_protocol.zip: Zip
  UD-CO2S_シリアル通信プロトコル_2.pdf  (182973 B)... OK.
Successfully extracted to "./UD-CO2S_シリアル通信プロトコル_2.pdf".
$ xdg-open ./UD-CO2S_シリアル通信プロトコル_2.pdf
$ pdftotext ./UD-CO2S_シリアル通信プロトコル_2.pdf -
【シリアル通信設定】
ボーレート

:115,200

データビット

:8

パリティ

:なし

ストップビット

:1

フロー制御

:なし

【通信プロトコル】
※ コマンドやリターンの後には、CRLF が付きます。
※ n は数値、x は文字列
コマンド

リターン

ID?

… ID を問合せします
OK ID=UD-CO2S

VER?

… ファームバージョンを問合せします
OK VER=1.1

STA

… データ送信を開始します
OK STA
データフォーマット → CO2=n,HUM=n.n,TMP=n.n
(HUM は湿度、TMP は温度)

STP

… データ送信を停止します
OK STP

FRC?

…UD-CO2S のフォースキャリブレーション値を取得します
FRC=nnnn … UD-CO2S の FRC 値

FRC=nnnn

… UD-CO2S のフォースキャリブレーション値を設定します(nnnn:400?2000)
OK FRC

… 設定出来ました

NG FRC >>

… 設定出来ませんでした

NG FRC

… 設定値範囲外

$ convert -monochrome -density 150 ./UD-CO2S_シリアル通信プロトコル_2.pdf ./UD-CO2S_シリアル通信プロトコル_2.jpg

serial を叩いてみる

$ stty -F /dev/ttyACM0 -a
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
 cu -l /dev/ttyACM0 -s 115200
Connected.
OK ID=UD-CO2S
OK VER=1.2
OK STA
CO2=418,HUM=65.3,TMP=20.4
CO2=416,HUM=65.1,TMP=20.5
CO2=415,HUM=64.9,TMP=20.5
CO2=415,HUM=64.6,TMP=20.5
CO2=413,HUM=64.5,TMP=20.5
CO2=412,HUM=64.4,TMP=20.6
CO2=411,HUM=64.4,TMP=20.6
CO2=411,HUM=64.4,TMP=20.6
CO2=410,HUM=64.5,TMP=20.6
OK STP
FRC=400
~.

Disconnected.
$ stty 115200 -F /dev/ttyACM0
$ echo 'STA' > /dev/ttyACM0
$ cat /dev/ttyACM0
CO2=411,HUM=54.8,TMP=23.3

CO2=411,HUM=54.9,TMP=23.3

CO2=411,HUM=54.9,TMP=23.3

CO2=411,HUM=55.0,TMP=23.3

CO2=411,HUM=55.0,TMP=23.3

^C
$ gpscat /dev/ttyACM0
CO2=429,HUM=63.3,TMP=20.8

CO2=429,HUM=63.3,TMP=20.8

CO2=429,HUM=63.3,TMP=20.8

CO2=429,HUM=63.3,TMP=20.8

^C

\r\n で改行が多いのかな?と思ったけど\n\n になっている.

$ cat /dev/ttyACM0 | od -xc
0000000    4f43    3d32    3134    2c33    5548    3d4d    3435    342e
          C   O   2   =   4   1   3   ,   H   U   M   =   5   4   .   4
0000020    542c    504d    323d    2e33    0a33    430a    324f    343d
          ,   T   M   P   =   2   3   .   3  \n  \n   C   O   2   =   4
0000040    3431    482c    4d55    353d    2e34    2c35    4d54    3d50
          1   4   ,   H   U   M   =   5   4   .   5   ,   T   M   P   =
0000060    3332    332e    0a0a    4f43    3d32    3134    2c34    5548
          2   3   .   3  \n  \n   C   O   2   =   4   1   4   ,   H   U
0000100    3d4d    3435    362e    542c    504d    323d    2e33    0a33
          M   =   5   4   .   6   ,   T   M   P   =   2   3   .   3  \n
0000120    430a    324f    343d    3431    482c    4d55    353d    2e34
         \n   C   O   2   =   4   1   4   ,   H   U   M   =   5   4   .
0000140    2c37    4d54    3d50    3332    332e    0a0a    4f43    3d32
          7   ,   T   M   P   =   2   3   .   3  \n  \n   C   O   2   =
0000160    3134    2c34    5548    3d4d    3435    372e    542c    504d
          4   1   4   ,   H   U   M   =   5   4   .   7   ,   T   M   P
^C

消せない?

$ cat /dev/ttyACM0 | tr --squeeze-repeats \n
CO2=414,HUM=54.8,TMP=23.3

CO2=415,HUM=54.9,TMP=23.3

CO2=415,HUM=54.8,TMP=23.3

CO2=415,HUM=54.9,TMP=23.3

CO2=414,HUM=55.0,TMP=23.3

CO2=415,HUM=55.0,TMP=23.3

^C
$ cat /dev/ttyACM0 | tr --delete \r
CO2=425,HUM=55.5,TMP=23.3

CO2=424,HUM=55.4,TMP=23.2

^C
$ cat /dev/ttyACM0 | tr --delete \n
CO2=420,HUM=55.4,TMP=23.3

CO2=418,HUM=55.2,TMP=23.2

^C
$ stdbuf -i 0 -o 0 cat /dev/ttyACM0 | stdbuf -i 0 -o 0 ts -m "%F %T" | stdbuf -i 0 -o 0 grep CO2 | tee -a co2.log
2023-03-18 06:34:08 CO2=435,HUM=63.0,TMP=20.9
2023-03-18 06:34:10 CO2=435,HUM=63.0,TMP=20.9
2023-03-18 06:34:14 CO2=435,HUM=62.9,TMP=20.9
2023-03-18 06:34:16 CO2=435,HUM=63.0,TMP=20.9
2023-03-18 06:34:18 CO2=434,HUM=63.0,TMP=20.9
2023-03-18 06:34:20 CO2=435,HUM=63.0,TMP=20.9
2023-03-18 06:34:22 CO2=435,HUM=63.0,TMP=20.9
2023-03-18 06:34:24 CO2=434,HUM=63.0,TMP=20.9
^C

タイミングやしばらく動かしているとNGが帰ってくるようになる?一回Ctrl + c で止めてcat するととりあえず直る.

NG

NG

NG

NG

NG

NG

^C

Argos

$ cat co2.+5m.bash
#@/bin/bash
#set -x

TIME=`date +%T`
echo 'STA' > /dev/ttyACM0
sleep 2
DATA=`head -1 /dev/ttyACM0`

co2=`echo ${DATA} | cut -d ',' -f 1`
hum=`echo ${DATA} | cut -d ',' -f 2`
tmp=`echo ${DATA} | cut -d ',' -f 3`

echo "${co2}"
echo ---
echo ${TIME}
echo ${co2}
echo ${hum}
echo ${tmp}

echo 'STP' > /dev/ttyACM0

Android

ダイソーのUSB C-A のOTG アダプタ経由でログが取れる.max 100mA なので宮殿もなしで動いた.

自動車内で乗員1人内気循環の状態で30分ほど走った後確認で1500ppm無いくらい.

コメント

コメントを入力. Wiki文法が有効です:
   ___    ____ ______   __   _____
  / _ \  / __//_  __/  / /  / ___/
 / , _/ _\ \   / /    / /__/ (_ / 
/_/|_| /___/  /_/    /____/\___/
 
linux/gadget/iodata_ud-co25.txt · 最終更新: 2023/03/18 14:13 by matoken