FreeBSDで気温センサー
ラズベリーパイで、家電制御させたいので、
http://www.orsx.net/blog/archives/4938
Raspberry Piを使ってスマホ・音声で家電を制御するシステムを作ってみた
さんのサイトを激しく参照していると、気温を測定するUSB Daq的なものがあるとのこと。
TEMPerとかいうやつである。(購入してみると、若干パッケージが胡散臭い。中国語だし。)
引用
TEMPer V23.5制御用コマンドのインストール
$ git clone https://github.com/bitplane/temper.git $ cd temper/ $ 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); $ make $ sudo make install温度を取得する場合は次のように実行します。
$ sudo temper
引用終わり
そうすると、ラズベリーパイで、何のこともなく実行できた。
ところが、我が家の場合は、家にHP Microserverなサーバがある。
だったら、それに温度測定器をつければいいんじゃないかと思い、
さっそく自宅サーバに取り付けてやってみた。
# rm -rf ./bto_ir_cmd/ # ls # git clone https://github.com/bitplane/temper.git Cloning into 'temper'... remote: Counting objects: 73, done. remote: Compressing objects: 100% (43/43), done. remote: Total 73 (delta 27), reused 73 (delta 27) Unpacking objects: 100% (73/73), done. Checking connectivity... done # cd temper/ # vim temper.c
ってな感じで先のサイトで言われている通り、temper.cの44行目と、47行目をいじる。
そしてmake
# make gcc -Wall temper.c pcsensor.c -o temper -lusb temper.c: In function 'main': temper.c:23: warning: implicit declaration of function 'sleep' pcsensor.c: In function 'usb_detach': pcsensor.c:73: error: 'ENODATA' undeclared (first use in this function) pcsensor.c:73: error: (Each undeclared identifier is reported only once pcsensor.c:73: error: for each function it appears in.) *** [temper] Error code 1 Stop in /root/temper/temper.
ややめげそうになるが(別にラズベリーパイからでいいし。というのが大きい)、
大したエラーではなさそうだ。
ENODATAが宣言されていないが、適当にぐぐれば、これは61と定義されているそうなので、
61に変更するとよい。
pcsensor.c 73行目
if(errno == 61/*ENODATA*/) { if(debug) { printf("Device already detached\n"); }
ENODATAをコメントアウトし、61を入れておく。
その後、再度makeすると、プロトタイプ宣言がないよと、注意されるが無事にmakeに成功する。
# make gcc -Wall temper.c pcsensor.c -o temper -lusb temper.c: In function 'main': temper.c:23: warning: implicit declaration of function 'sleep'
最後に、make install cleanしておけば、実行できる。
# make install clean install temper /usr/local/bin rm temper # temper 2014-12-21 19:53:41,28.853712
Windows版はCDがついてきて、グラフとか表示できたりするらしいけれども、試してないからわからんです。
あと、私はスーパーユーザーでやってしまいましたが、別にmake install以外は、一般ユーザーで問題ないと思います。
まぁ、1500円程度にしては楽しめる。
USB接続温度計 つなぐだけ簡単 パソコン画面上にリアルタイムに温度を表示【ポイント10倍】[メ... |