インフィニットループ 技術ブログ

2012年10月18日 (木)

著者 : matsui

980円のUSB温度計を使ってLinuxから室温を計測する

社内見える化委員会のmatsuiです。
最近は少しマシになりましたが、部屋が暑いということで、適切な温度計測を行うため、Linuxマシンから温度測定をできる仕掛けを作ってみました。
使ったUSB温度計はこちら。Amazonで980円です。

Amazon USB温度計! USB thermometer

セットアップ

付属のCDには、Windows用のドライバしか入っていませんので、とりあえず捨てましょう。
セットアップにはこちらのページを参考にさせていただきました。
→ matoken’s wiki. Linux/Device/サンコーレアモノショップ_USB温度計_AKIBA58
環境はUbuntu12.04LTSで試しましたが、ここに書いてあることそのままで大丈夫です。
ありがたいです。
USBを指すと普通に認識します。

$ dmesg | grep TEMP
[    1.795200] input: RDing TEMPer1V1.2 as /devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/input/input4
[    1.804362] generic-usb 0003:0C45:7401.0001: input,hidraw0: USB HID v1.10 Keyboard [RDing TEMPer1V1.2] on usb-0000:00:1d.0-2/input0
[    1.822847] generic-usb 0003:0C45:7401.0002: hiddev0,hidraw1: USB HID v1.10 Device [RDing TEMPer1V1.2] on usb-0000:00:1d.0-2/input1

必要なパッケージをインストールします。

$ sudo apt-get install build-essential libusb-0.1-4 libusb-dev git

温度測定コマンドのソースコードはgithubで公開されているようです。
→ github bitplane / temper
githubからチェックアウトします。

$ git clone https://github.com/bitplane/temper.git

日本人向けにソースコードを修正します。
上の参考ページそのままです。

$ vi temper.c

44行目の utc = gmtime(&t); を utc = localtime(&t); に
47行目の strftime(dt, 80, “%d-%b-%Y %H:%M”, utc); を strftime(dt, 80, “%Y-%m-%d %H:%M:%S”, utc); に
diffで書くとこんな感じ

$ diff temper.c.org temper.c
44c44
< utc = gmtime(&t);
---
> utc = localtime(&t);
47c47
< strftime(dt, 80, "%d-%b-%Y %H:%M", utc);
---
> strftime(dt, 80, "%Y-%m-%d %H:%M:%S", utc);

makeして出来たバイナリを/usr/local/binあたりに設置します。
今回は一般ユーザからも利用したかったので「chmod u+s」しています。

$ make
$ sudo mv temper /usr/local/bin/
$ sudo chmod u+s /usr/local/bin/temper

使ってみる

実行するとこんな感じです。日付と温度がカンマ区切りで出力されます。

$ temper
2012-10-15 22:01:48,27.825012

あとはこれを適当なアプリケーションから利用してやればOKです。
弊社ではマザーゆっくりという自作SkypeBotに、温度をしゃべらせる機能をつけて使っています。

また温度のグラフをcactiに出しています。

< ?php exec("/usr/local/bin/temper", $output); list($dummy, $temper) = explode(',', $output[0]); echo round($temper, 1); [/sourcecode] こんなスクリプトで取得して、cactiでグラフにしています。
安いお値段で楽しめますので、興味のある方は試してみてはいかがでしょうか。

お古のノートPCをサーバにしています。

ブログ記事検索

このブログについて

このブログは、札幌市・仙台市の「株式会社インフィニットループ」が運営する技術ブログです。 お仕事で使えるITネタを社員たちが発信します!