SSブログ

Raspberry Pi+USB温度計 設定メモ

我が家の飼い鳥(白文鳥)は先々月に10歳を迎えたご長寿さんであり、冷えが身に染みるお年頃だ。夜間はひよこ電球と電気あんかを併用し、ケージを30度程度に保って寝かせている。暖房器具を多重化しているのは、万一どちらかが故障してもケージが冷え切らないようにするため。

それでも心配で夜中にケージの温度を度々確認しているが、毎回ケージまで見に行くのも結構面倒だ。てなわけで、せっかく手に入れた Raspberry Pi で文鳥ケージの温度を計測・記録したい。

本日は、下記先達のサイトを参考にしつつ、上海問屋で購入した「USB接続式 温度計」(以降、TEMPer)を Raspberry Pi で使えるようセットアップを行った。

徒労日記 / Raspberry Piと980円USB温度センサーで北海道の冬をロギングしてみる
GitHub / bitplane/temper


1. GitHubから temperコマンドのソースを入手する。
TEMPerから温度を読み出す temper コマンドを make するため、GitHubからソース一式をダウンロードする。
~ $ sudo git clone git://github.com/bitplane/temper.git



2. libusb-dev をインストールする。
temper コマンドを make する際には、libusb-dev に含まれる usb.h が必要となる。libusb-dev(USBアプリケーション プログラミング用ライブラリ) をインストールする。
~ $ sudo aptitude install libusb-dev




【2014/12/16追記】
※注意

TEMPerで正確な温度を計測するには校正作業が必要となる。3へ進む前に「USB温度計TEMPerの校正を行う」に従って、校正を行うこと。




3. temper.c に改造を施す。
temper コマンドの出力形式は「日-月-年 時:分,温度」(グリニッジ標準時)となっている。Excel等で扱いやすいよう、temper.c をプチ改造して「年/月/日[tab]時:分[tab]温度」(日本標準時)形式とし、温度の有効数字を小数点第一位までとする。
~ $ cd temper
~/temper $ vi temper.c


変更箇所は以下のとおり。

《44~49行目 改造前(出力形式…11-Dec-2014 00:00,20.840825)》
               utc = gmtime(&t);

                char dt[80];
                strftime(dt, 80, "%d-%b-%Y %H:%M", utc);

                printf("%s,%f\n", dt, tempc);


《44~49行目 改造後(出力形式…2014/12/11 09:00 20.8)》
                utc = localtime(&t);

                char dt[80];
                strftime(dt, 80, "%Y/%m/%d\t%H:%M", utc);

                printf("%s\t%.1f\n", dt, tempc);


※strftime関数の詳細は、C言語関数辞典 strftime を参照。


4. コンパイルとインストールを行う。
temper.c をコンパイルして temperコマンドを作成し、/usr/local/binにインストールする。
~/temper $ sudo make
~/temper $ sudo make install



5. temperコマンドにsuidを設定する。
/usr/local/bin にインストールした temper コマンドに suid を設定し、root 以外のユーザーにも使えるようにする。suid を設定しないと、一般ユーザーが temper を実行しても値が返ってこない。
~/temper $ sudo chmod u+s /usr/local/bin/temper
~/temper $ temper
2014/12/12	00:06	41.8



141836486254360695180_DSCF0535b.jpg
↑temperコマンドを実行すると、41.8℃が返ってきた! なるほど、本体直挿しだと本体の発熱を拾ってしまうのだなー。拙者が購入したTEMPerにはUSB延長ケーブルが付属していなかったので、買ってこなければならぬ。


USB温度計! USB thermometer-528018

USB温度計! USB thermometer-528018

  • 出版社/メーカー: OEM
  • メディア: エレクトロニクス



Sponsored Link


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。