RaspberryPiの検索で、たまたまUSB温度計を使ってLinuxから室温を計測する を発見
それから、matoken’s wiki. Linux/Device/サンコーレアモノショップ_USB温度計_AKIBA58で、eBay 日本で買うより安いという情報を頂いたので、買ってみた。
同じの品物ないが、類似したものを一個$6.49で買った。送料無料!(しかし安いものがいっぱいあるからついつい、84ドル超える買い物になった。)
届いたら、早速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://linux.uc4.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度くらい、室温に近いかも。
運用
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
- http://www.infiniteloop.co.jp/blog/2012/10/linuxthermometer/
- http://hpv.cc/~maty/pukiwiki1/index.php?Linux/Device/サンコーレアモノショップ_USB温度計_AKIBA58
- http://hitoriblog.com/?p=9835 — Raspberry Piで部屋の温度を定期的にTwitterに投稿 — chen 2013-02-20 (水) 19:53:39
参考:
- http://model.job.affrc.go.jp/FieldServer/ — フィールドサーバ
2 thoughts on “Raspberry Pi wireless 温度計の制作”