USB温度計『TEMPer』を使ってRaspberryPiで温度を測定する。

raspberrypi-temper












こんにちは,ちゆりです。

以前流行りに乗っかって,Raspberry Piを購入したのですが,特に何をするでもなく放置していたので,そろそろ動かしてみようと思い立った。

「そうだ,温度でも測定してみよう。」

そこで,手頃な価格(1000円程度)でGPIOpinを使わない(ハード系は苦手なため)温度モジュールを探してみた。あるじゃん。いいやつが。しかも,USBで動くんだってよ。

USB温度計! USB thermometer-528018

 

価格帯は約1000円!!
GPIOを使わずにUSBで温度を測定できるので非常に扱いやすいです。ラズパイに直挿しだとラズパイの熱が周り,温度が高くなってしまうので,USBハブをかませることをおすすめしますよ。

 

律儀にCDROMまで付いている(Windowsで使う場合)のだが,今回は使わないのでディスクブーメランとしてぶっ飛ばすか,カラスよけのために畑に吊るしといてください。

ラズパイでTEMPerを使う

さて,温度を測るためにもいくつかのコマンドを打って行きますよ。
難しくないから逃げないでね。

まずは,必要なライブラリをインストールしておきます。
もうすでに入っている方はこちらは,省略で構いません。

sudo apt-get install gcc libusb-dev
sudo apt-get install build-essential libusb-0.1.4 libusb-0.1.4-dev

次にgitからソースをクローンしていきます。
(どこかの誰かさんの開発のおかげで簡単に利用させていただきます。)

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

ローカルタイムへ修正

みなさんが苦手なviエディタの出番ですよ。このままでは,日付がグリニッジ標準なのでローカルタイムへと変更していきます。

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);

いよいよビルド

あとはこのコマンドを打ってエンターキーを思いっきり叩きましょう。

sudo make

makeコマンドのあとになんかエラーが出てきた。

pcsensor.c:50:18: warning: ‘reqBulkLen’ defined but not used
[-Wunused-const-variable=]
 const static int reqBulkLen=8;

ですが,これはざっと無視で構わない。
「temper」ってやつが作成されていたら問題ないです。

さて,実行してみようではないか。

./temper

・・・

。。。ん?応答が帰ってこないのだが。。

本当はこんな感じで応答が帰ってくるのだが..

2019-09-20 11:39:23,32.453729

TEMPerが動作しないとき

うーん。特に悪いことはしてないはずだが,温度が表示されないぞ。

READMEを読んでみる

困ったときは,READMEを読んでみよう。temperディレクトリ内にあるREADMEを開いてみる。

To allow non-root users access
==============================
1. Add the udev rule set in /etc/udev/rules.d/ using the 60-temper.rules 
( 60-temper.rulesというudevルールを/etc/udev/rules.d/に配置)

2. Add a 'temper' group (using groupadd or edit the /etc/group file)
(groupadd or /etc/group fileを編集して'temper'グループを追加)

3. Add users to the 'temper' group
(ユーザーを'temper'グループに追加)

4. Reload the udev rules 
  udevcontrol reload_rules
(udevルールのリロードコマンド udevcontrol reload_rules)

5. Unplug and replug the TEMPer device
(TEMPerデバイスの抜去挿入)

しかし,これは,ルートユーザーでなくても実行できるために行う手順のようだ。試してみたが,特に動く様子はなかった。

で,結局

奇跡的に2機のTEMPerを購入していた僕は,もう1機のTEMPerに交換してみた。すると,どうだろう。温度が表示されたではないか。

てことで,個体不良か?と思ってのだが,実際そうではないらしい。

(venderID:productID = 413d:2107)のTEMPerは単純にgitのクローンだけでは動かないのだとか…。

じゃあそのvenderIDはどうやって確認するの?このコマンドで良い

lsusb
:
Bus 001 Device 007: ID 413d:2107  

あぁ。見事にいわく付きのTEMPerを引いちまった。しかし,1機はこの難を逃れた。

では,413d:2107は使えないのか?そんなことはない。
いろいろ調べて動かせるようになったので,次の記事で紹介しようと思う。

追記2019/09/28

413d:2107(venderID:productID)のセットアップはこちらの記事からどうぞ。

raspberrypi-temper2

ラズパイとUSB温度計「TEMPer」(413d:2107)で温度を監視したいのだが,うまく動かない!?

2019年9月28日

参考記事

  1. https://qiita.com/nekyo/items/bf5d22f3741e23d3679d
  2. https://tech-mmmm.blogspot.com/2017/10/amazonusbtemperraspberry-pi.html

★人気の記事一覧

合法的に女の子に精液の匂いを嗅がせる方法

【精子を食べる!?】食ザーが理にかなっているというお話

[Froala Design Blocks ]無料でオシャレなサイト作成ができるHTMLのテンプレート

スムージーは本当に健康に効果があるのか化学の観点でのみ考えてみる












★人気の記事一覧

合法的に女の子に精液の匂いを嗅がせる方法

【精子を食べる!?】食ザーが理にかなっているというお話

[Froala Design Blocks ]無料でオシャレなサイト作成ができるHTMLのテンプレート

スムージーは本当に健康に効果があるのか化学の観点でのみ考えてみる

気に入ったらLet's Share!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

ちゆり

6年間化学を専攻していたのになぜか一部上場のIT企業のエンジニアへ。脱サラ田舎暮らしに憧れ,なんだかんだプログラミングが好き。口癖は仕事辞めたい。凡人にはなりたくない凡人。