Raspberry Pi wireless 温度計の制作

RaspberryPiの検索で、たまたまUSB温度計を使ってLinuxから室温を計測する を発見

それから、matoken’s wiki. Linux/Device/サンコーレアモノショップ_USB温度計_AKIBA58で、eBay 日本で買うより安いという情報を頂いたので、買ってみた。

同じの品物ないが、類似したものを一個$6.49で買った。送料無料!(しかし安いものがいっぱいあるからついつい、84ドル超える買い物になった。)

P2190091

届いたら、早速RaspberryPiに刺してみたら、

[702457.972061] usb 1-1.2: new low-speed USB device number 5 using dwc_otg
[702458.078478] usb 1-1.2: New USB device found, idVendor=0c45, idProduct=7401
[702458.078511] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[702458.078528] usb 1-1.2: Product: TEMPerV1.4
[702458.078543] usb 1-1.2: Manufacturer: RDing
[702458.093433] input: RDing TEMPerV1.4 as /devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input0
[702458.094931] hid-generic 0003:0C45:7401.0001: input,hidraw0: USB HID v1.10 Keyboard [RDing TEMPerV1.4] on usb-bcm2708_usb-1.2/input0
[702458.104938] hid-generic 0003:0C45:7401.0002: hiddev0,hidraw1: USB HID v1.10 Device [RDing TEMPerV1.4] on usb-bcm2708_usb-1.2/input1

認識された。

こちら(http://hpv.cc/~maty/pukiwiki1/index.php?Linux/Device/サンコーレアモノショップ_USB温度計_AKIBA58)を参考に、ソースコードを取得し、カスタマイズする。

詳しい製作過程は、WIKIへ(http://digilib.net/xoops/modules/xpwiki/)どうぞ。

# apt-get install build-essential libusb-0.1-4 libusb-dev git

一部パッケージが見つからない、失敗に終わった。パッケージ更新する。

# apt-get update

# apt-get install build-essential libusb-0.1-4 libusb-dev git

今度上手く完成した。

temper ソースをgit から。

# git clone git://github.com/bitplane/temper.git

# ls temper

60-temper.rules  log.sh  Makefile  pcsensor.c  pcsensor.h  README  temper.c

# cp -p temper.c temper.c.org

# vi temper.c

# 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

# mv temper /usr/local/bin/

# chmod u+s /usr/local/bin/temper

# temper

2013-02-16 03:48:08,30.396763

ちゃんと温度の表示ができた。しかし30度は高いね!USB延長ケーブルを付けて再度計測。

$ temper

2013-02-16 03:55:17,23.710213

23度くらい、室温に近いかも。

運用 anchor.png

PHPでWEBに表示するため、UNIX通算時間の表示、ログの生成、cron に登録、ログの解析が必要。

# vi temper.c

# 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);
49c49
<               printf("%s,%fn", dt, tempc);
---
>               printf("%ld,%s,%fn", t, dt, tempc);

5分置きに、/var/log/temper.logにログを吐き

*/5 * * * * /usr/local/bin/temper >> /var/log/temper.log

最後は、PHPでWEBに表示する

オーダーした、Webカメラもそろそろ届くので、無線で画像、音声、温度、湿度を送るフィールドサーバみたいなものを作りたいね!

Ref anchor.png

参考:

  1. http://model.job.affrc.go.jp/FieldServer/フィールドサーバ

One thought on “Raspberry Pi wireless 温度計の制作”

Leave a Reply

Your email address will not be published. Required fields are marked *