Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at


USB 温度計で気温を測る(TEMPer; ID=413d:2107)

研究室のサーバールームの空調が止まって大変なことになったことがある.室温が上昇したら slack 通知するようなものを作った.そのときに USB 温度計の扱いに苦労したのでそのことについて書く.

Amazon で購入できる usb 温度計 TEMPer

付属のソフトウェアを使わずに温度を取ってこられるように,いろいろな人が github にプロジェクトを作っている.

どこかのタイミングでマイナーチェンジされており,私が購入したもの(venderID:productID = 413d:2107)は Github のリポジトリを clone するだけでは利用できなかった.



  • Linux CentOS7
  • USB 温度計 TEMPer (venderID:productID = 413d:2107)


購入した USB 温度計のデバイス ID の確認

$ lsusb
Bus 00X Device 00X: ID 413d:2107

USB温度計を接続した状態で lsusb コマンドを打つと, USB機器の一覧が表示される.ID が 413d:2107 のものがあることを確認する.

hidapi のインストール

(USB) HID 機器との通信用ライブラリの hidapi をインストールする.

$ git clone https://github.com/signal11/hidapi
$ cd hidapi/linux
$ make -f Makefile-manual


On Linux, you will need to install development packages for libudev,
libusb and optionally Fox-toolkit (for the test GUI). On
Debian/Ubuntu systems these can be installed by running:
sudo apt-get install libudev-dev libusb-1.0-0-dev libfox-1.6-dev
If you downloaded the source directly from the git repository (using
git clone), you'll need Autotools:
sudo apt-get install autotools-dev autoconf automake libtool

TEMPerd のインストール

この USB 温度計用のライブラリをインストールする.

$ git clone https://github.com/hughesr/TEMPered
$ cd TEMPered
$ git checkout hack-413d-2107
$ git reset --hard 75aa1e2
$ cmake .
$ make
  • USB 温度計のデバイス ID がそもそも対応しているものなのであれば,clone して cmake するだけで良い.
  • cmake がインストールされていない場合はインストールしておく.


USB 温度計を接続して utils 内の tempered を実行する.

$ utils/tempered
/dev/hidraw1 0: temperature 16.12 °C
/dev/hidraw1 1: Failed to get the temperature: Not enough data was read from the sensor.
/dev/hidraw1 1: no sensor data available


Python で温度データを利用する場合


import subprocess

def getTemperature():
    response = subprocess.check_output('/absolute/path/to/tempered', universal_newlines=True)
    temperature = response.split(" ")[3]
    return temperature

temperature = getTemperature()


Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
Help us understand the problem. What are the problem?