温湿度ロガー USBRH
温度や湿度を記録するデバイスが欲しくなったので、ストロベリーリナックスのUSBRHというものを買いました。USB 接続で極めて小型。
しかし、付属ソフトはリアルタイムで温度・湿度の表示を行うもので、ログを取るものではありませんでした。デバイスにアクセスするDLLと、Visual Basic で書かれたサンプルプログラムのソースは付いていましたが、VB の開発環境は持ってません。
仕方がないので、Python + ctypes でちょろっと作りました。
from ctypes import windll, byref, c_int, c_long, c_char_p, c_double from time import strftime, sleep from sys import exit drv = windll.LoadLibrary(r'USBMeter.dll') # USBRH Driver index = c_int() dev = c_char_p(drv.FindUSB(byref(index))) print("device =", dev.value) print("index =", index.value) temp = c_double() humid = c_double() while True: err = c_long(drv.GetTempHumidTrue(dev, byref(temp), byref(humid))).value if err != 0: print("Error") exit(1) print ('"%s", %5.2f, %5.2f' % (strftime("%Y/%m/%d %H:%M:%S"), temp.value, humid.value)) sleep(1)