これの続き。
http://d.hatena.ne.jp/kinneko/20130123/p1
MAS-345、1つ買う。
箱はこんな感じ。


カバーはスタンドになる。

温度センサーもついてる!

なかなか遊べそうな買い物ですよ。
シリアルは、こんな風に挿す。


穴は上から以下のようになっている。
RxD DTR RTS TxD SG
USBシリアル変換は、USB-RSAQ5でふつーに使えた。
たけーよ!

使い慣れた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になると回路的に切れるので、電源部を測定しているときにはデバイスがリセットになっちゃう。