Skip to content

Latest commit

 

History

History
289 lines (207 loc) · 8.78 KB

readme.rst

File metadata and controls

289 lines (207 loc) · 8.78 KB

USBRH driver for Linux

USBRH driver for Linux

USBRHストロベリーリナックス から発売されている温度・湿度測定 ユニットです.USB 経由でセンサーの値を取得できます.

USBRH

USBRH の詳しい仕様については こちら を参照してください.

このページでは,USBRH の Linux 用ドライバを配布しています.

GNU General Public LicenseGNU General Public License の翻訳 )に従います.

https://github.com/kimata/usbrh

Linux Kerel 2.6 以降で動作します.udev を使用していることを想定していま す.

開発は, Ubuntu Linux Kernel 3.11.0 で行っています.

$ make
$ su -
% sudo make install

ドライバをインストールした後,USBRH をパソコンに接続すると /proc/usbrh/[番号] というディレクトリが生成されます.[番号]は 0 から 始まり,接続される USBRH の個数が増える度に 1 ずつ増えます.

USBRH のセンサーの値はこの中にある以下のファイルを読み出すことで取得で きます.

temperature
温度(C) を出力します.
humidity
相対湿度(%RH) を出力します.
status
「t:温度 h:相対湿度」の形式で,温度と相対湿度の両方の値を出力します.
$ ls -la /proc/usbrh/0
合計 0
dr-xr-xr-x 2 root root 0 2008-04-05 02:46 ./
dr-xr-xr-x 3 root root 0 2008-04-05 02:46 ../
-rw-r--r-- 1 root root 0 2008-04-05 02:46 heater
-r--r--r-- 1 root root 0 2008-04-05 02:46 humidity
-rw-r--r-- 1 root root 0 2008-04-05 02:46 led
-r--r--r-- 1 root root 0 2008-04-05 02:46 status
-r--r--r-- 1 root root 0 2008-04-05 02:46 temperature
$ cat /proc/usbrh/0/temperature
30.05
$ cat /proc/usbrh/0/humidity
35.02
$ cat /proc/usbrh/0/status
t:30.07 h:34.95

USBRH を接続しても /proc/usbrh が現れない場合は以下の点を確認してください.

下記のように lsusb を実行して,ID 1774:1001 のデバイスが表示される ことを確認してください.

$ su -
# lsusb -d 0x1774:0x1001
Bus 004 Device 002: ID 1774:1001

下記のように lsmod を実行して,usbrh が表示されることを確認してくだ さい.

$ lsmod
Module                  Size  Used by
usbrh                   5636  0
  • ドライバがデバイスを認識しているかどうか

dmesg を実行して,下記のように「USBRH device now attached to /dev/usbrh[番号]」という出力がある事を確認してください.

$ dmesg
[    6.377870] usb 1-1.4: USBRH device now attached to /dev/usbrh1

無い場合は,USBRH を一旦 PC から外し,再び接続してみてください.

make install によってドライバをロードしてから,デバイスを接続してくだ さい.デバイスを接続してからドライバをロードした場合,うまくデバイスを 認識できません.その場合,一旦デバイスを抜き差ししてください.

RRDtool などと組み合わせれば,温度と湿度の変化を簡単にグラフ化できま す.以下は,部屋の温度と湿度,そしてコンピュータ内の温度をプロットした ものです.

温度と湿度のグラフ

このドライバでは,USBRH についている 2 つの LED とセンサーに内蔵されて いるヒータを制御する事も可能です.

/proc/usbrh/[番号]/led に値を書き込むことで LED の制御が行えます.

$ sudo su
[緑色の LED を点灯]
# echo 1 > /proc/usbrh/0/led
[赤色の LED を点灯]
# echo 2 > /proc/usbrh/0/led
[緑色と赤色の LED を点灯]
# echo 3 > /proc/usbrh/0/led

/proc/usbrh/[番号]/heater に値を書き込むことで LED の制御が行えます.

$ sudo su
[ヒータをオン]
# echo 1 > /proc/usbrh/0/heater

# cat /proc/usbrh/0/temperature
30.78
# cat /proc/usbrh/0/temperature
31.69
# cat /proc/usbrh/0/temperature
32.19

[ヒータをオフ]
# echo 0 > /proc/usbrh/0/heater

# cat /proc/usbrh/0/temperature
29.42
# cat /proc/usbrh/0/temperature
28.74

このドライバは,以下の情報に基づいて作成しました.

  • USBRH に付いてくる,サンプルアプリケーション usbrhdemo/Project1.exe の表示
  • SnoopyPro で取得した USB の通信ログ
  • USBRH のセンサーチップ SHT11データシート

センサーの値を取得する際の通信ログを下記に示します.

SnoopyPro のログ