Memo/Raspberry_Pi/DNSB-35137

https://dexlab.net:443/pukiwiki/index.php?Memo/Raspberry_Pi/DNSB-35137
 

上海問屋 USB温度計 DNSB-35137(TEMPerV1.4)

TEMPerV1.4.jpg

  • 上海問屋 USB温度計 DNSB-35137 を使う場合。1,209円(本体999円 + メール便210円)。引っ張ると外側の金属ケース部分が簡単に外れた。
  • /var/log/messages の表示は TEMPerV1.4 でした。
  • Windowsの場合、ドライバ&ソフトウェア TEMPer V24.3.zip / Hid TEMPer V10.6.0 TEMPer V24.3.zip だけあれば使えた
    • Win7での認識 デバイスマネージャ: ユニバーサル シリアル バス コントローラー > USB Composite Device : バスによって報告されるデバイスの説明: TEMPerV1.4
    • 通知:Email, Skype, MSN Messenger
  • Twitter / askn37: TEMPerの個体問題、やっと解った。購入直後の何もしてない ... 精度に関して気になるツイート。購入直後は9bit 0.5C精度 / Windowsアプリで一度使うと 12bit 0.0625C精度。自分が購入した物は、いきなりLinuxに差しても0.13Cの差分が出ていたので違うかも。
  • calibration(校正)する必要がある。別の正しい温度計を用意して温度の離れた2点(室内/室外等)を測定する。
  • 温度取得エラーの際、オフラインとなり別デバイスとして再度認識される。58/1000回の割合で失敗した。そのたびにデバイスIDが1増える
    # pcsensor-1.0.2の場合
    USB interrupt read: Resource temporarily unavailable
    Fatal error> USB read failed
  • RaspbianにTEMPerを取り付ける
    # 認識
    sudo lsusb
    Bus 001 Device 004: ID 0c45:7401 Microdia
    
    sudo less /var/log/messages
    Jan 10 10:28:19 raspberrypi kernel: [5004440.042720] usb 1-1.3: new low-speed USB device number 4 using dwc_otg
    Jan 10 10:28:19 raspberrypi kernel: [5004440.152687] usb 1-1.3: New USB device found, idVendor=0c45, idProduct=7401
    Jan 10 10:28:19 raspberrypi kernel: [5004440.152721] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    Jan 10 10:28:19 raspberrypi kernel: [5004440.152737] usb 1-1.3: Product: TEMPerV1.4
    Jan 10 10:28:19 raspberrypi kernel: [5004440.152752] usb 1-1.3: Manufacturer: RDing
    Jan 10 10:28:19 raspberrypi kernel: [5004440.167475] input: RDing TEMPerV1.4 as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/input/input0
    Jan 10 10:28:19 raspberrypi kernel: [5004440.168322] hid-generic 0003:0C45:7401.0001: input,hidraw0: USB HID v1.10 Keyboard [RDing TEMPerV1.4] on usb-bcm2708_usb-1.3/input0
    Jan 10 10:28:20 raspberrypi kernel: [5004440.178819] hid-generic 0003:0C45:7401.0002: hiddev0,hidraw1: USB HID v1.10 Device [RDing TEMPerV1.4] on usb-bcm2708_usb-1.3/input1
  • bitplane/temper GitHub の場合。一つのデバイスのみ対応。TEMPerが接続されていない場合、応答が帰ってこない
    • パッチ: filetemper.localtime.patch localtimeを使う, 校正値の初期化, rootユーザ以外でも実行
      # コンパイルに必要なパッケージをインストール
      sudo aptitude install libusb-dev
      
      cd /tmp
      git clone https://github.com/bitplane/temper.git
      cd temper/
      patch -p1 < ../temper.localtime.patch
      make
      sudo make install
      
      # rootユーザ以外でも実行できるようにする
      sudo cp 99-tempsensor.rules /etc/udev/rules.d/
      # 再起動(sudo service udev reload, sudo udevadm control --reload-rules してTEMPer抜き差ししてもダメだった)
      sudo reboot
      
      # 実行
      temper
      10-Jan-2014 11:26,28.000000
  • calibration(校正)する。別の正しい温度計を用意して、温度の離れた2点(室内/室外とか)を計測。10分程度放置して安定した時の値を読む。
    Windowsアプリと、Linuxアプリでの測定で結果にかなり差がある(4℃位)ため、Linuxだけで測定する必要がある。
    測定1測定2差分
    他温度計26.122.04.1…(1)
    TEMPer29.87527.7502.125…(2)
  • 校正値を計算して再インストール
    • Scale : (1)/(2) = 1.929
    • Offset: 22.0 - (27.750x1.929) = -31.530
      vim temper.c
      ----
      static float scale = 1.929;
      static float offset = -31.530;
      ----
      make clean
      make
      sudo make install
  • Zabbixの監視に追加する場合
    • Zabbix Agentに追加
      sudo vim /etc/zabbix/zabbix_agentd.conf.d/userparameter_roomtemp.conf
      ----
      UserParameter=sensor.RoomTemp[*],/usr/local/bin/temper | grep -o -P '\d+\.\d{2}'
      ----
      sudo service zabbix-agent restart
      
      # テスト
      zabbix_agentd -t 'sensor.RoomTemp[]'
      sensor.RoomTemp[]                             [t|21.99]
    • Zabbix Server にItem追加
    • グラフの例

TEMPerV1.4-zabbix.jpg


  • pcsensor-1.0.2 for TEMPerV1.2 with multi device support | OSAKANA TAROのメモ帳 の場合。マルチデバイス対応だが、calibration(校正)設定が無い。temperのソースを見るとデバイス1つなら3行追加すれば済むが、マルチデバイスやデバイスエラー毎にID変わったりするのを考慮して補正設定を入れる必要があるのでちょっと面倒か。
    # コンパイルに必要なパッケージをインストール
    sudo aptitude install libusb-dev
    
    # ソースからコンパイル
    cd /tmp
    wget http://blog.osakana.net/sw/pcsensor/pcsensor-1.0.2.tar.gz
    tar xvfz pcsensor-1.0.2.tar.gz
    cd pcsensor-1.0.2/
    rm pcsensor
    make
    sudo cp pcsensor /usr/local/bin/
    
    # rootユーザ以外でも実行できるようにする
    sudo make rules-install
    
    # 再起動(sudo service udev reload, sudo udevadm control --reload-rules してTEMPer抜き差ししてもダメだった)
    sudo reboot
    
    # 実行
    pcsensor -d
    2014/01/10 10:44:54 Bus 001 Device 004 Temperature 81.28F 27.38C

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-10-01 (月) 18:37:42 (75d)