続デジタルマルチメーターの出力を取り出す
これの続き。
http://d.hatena.ne.jp/kinneko/20130123/p1
MAS-345、1つ買う。
箱はこんな感じ。
カバーはスタンドになる。
温度センサーもついてる!
なかなか遊べそうな買い物ですよ。
シリアルは、こんな風に挿す。
穴は上から以下のようになっている。
RxD DTR RTS TxD SG
USBシリアル変換は、USB-RSAQ5でふつーに使えた。
http://www.amazon.co.jp/gp/product/B000QW7NH0?ie=UTF8&camp=1207&creative=8411&creativeASIN=B000QW7NH0&linkCode=shr&tag=kinnekosblog-22
たけーよ!
使い慣れたminicomだと600bpsは指定できないので、pyserialで操作することに。
前のログのPythonの例は完成していなくて使えない。
DTRをONに、RTSをOFFにしないとうまく通信できない。
ハマった。
一発目には、先頭に必ずゴミが入る。
とりあえずデータは無事なので問題なしか。
リクエストしてデータが拾えるまでには5秒強かかるので、リアルタイムの情報ではない。
つらい...
#!/usr/bin/python import serial class MAS345(object): def __init__(self, port="/dev/ttyUSB0"): self.port = port self.com=serial.Serial( port, 600, bytesize=7, parity="N", stopbits=1, timeout=5, xonxoff=0, rtscts=0, dsrdtr=None ) self.com.setRTS(0) self.com.setDTR(1) def _read_raw_value(self): self.com.write("\n") data = self.com.readline() return data if __name__=="__main__": output = MAS345() print output._read_raw_value()
温度に設定してると、こういう感じが出る。
$ ./temp.py
TE 0022 C
"|"はゴミ。
ループで複数回取得すると二回目からは出ない。
ゴミ箱のマンガン乾電池を測ってみる。
V, 400mA, 10A、Ω。
DC 1.065 V DC 007.9 mA DC 00.00 A OH 000.3 Ohm
OLになると回路的に切れるので、電源部を測定しているときにはデバイスがリセットになっちゃう。