980円でお部屋の温度をHomeKitをベースに外出先でもモニターできるようにしてみました
“9月から配信開始になったNETFLIXの”スター・トレック: ディスカバリー”を何で観るか! “Fire TV Stick”編”
“Apple Watch Series 3(GPS + Cellularモデル)とApple TV 4K(32GB)が届きました!! (3)”
“Koogeekスマートコンセント HomeKit 遠隔操作 電力を監視 1800W AC120V 米国の規制 ホワイト”
“ルートアール 30灯 USB LED バーライト 拡散カバータイプ 昼光色 RL-BAR30DD”
“ダイソンのPure Hot + CoolをGoogle AssistantとHomeKitでリモコン操作できるようにしてみました”
“Homekitアクセサリを外出先からリモートコントロールする方法をまとめておきますね“の続きです。
昨年暮れから、何かと”HomeKit“にハマっている感のある今日このごろ。今回のTALKでは、以前、アマゾンで買った”USB温度計! USB thermometer-528018“または”SODIAL(R)ゴールド 温度 PCノートパソコン USB センサー 温度計 温度データ ロガー レコーダー” (以前買ったやつは見つからなかったのでこちらを紹介しておきます。)を使って、書斎の温度を測り、その値をiOSアプリ”ホーム”に表示する電子工作を試してみたので、その辺りの様子をご紹介します。
以前、”Temper”を買った時に書いたTALKは、”Raspberry Piで航空機のADS-Bを受信してみました “状態の定期チェック Postfix cron USB温度計 temper” (8)“になります。
(1) 最初にお断りしておきますと…
今回使った”Temper” (USB温度計のこと)は、”Raspberry Pi“のUSB口に接続するだけで、ハードウェア的な準備は完了。本来あるべき電子工作で見かける配線、半田付け等の作業がない分、メチャメチャお気軽なのは良いのですが、”Temper”で測る温度の精度はあまり良くないみたいです。温度を計測してみると、実際の体感温度よりも高めな値をアウトプットする傾向が多そうです。ですので、トライアル程度のアプローチだったら問題ないと思いますが、この仕掛けを、シビアな場面に活用しようとしないで下さい。もし、計測した温度を条件に、エアコンをコントロールしたりする場合は、計測精度の高い電子パーツを使って、ちゃんと電子工作して下さいね。
p.s>
“irMagician-T“というモジュールも気になるなあ。
p.s>
アマゾンであわせ買い販売対象商品として格安に販売されている”iBUFFALO USB2.0延長ケーブル (A to A) スリムタイプ ブラック 0.5m BSUAASM205BK“を使って、”Raspberry Pi“本体と”Temper”との距離をある程度離してみました。
ケーブル長が50cmなので、こんな感じでぶら下げてみたところ、
かなりリアルな温度を計測できるようになりました。”Raspberry Pi“本体のUSB口に直接接続した場合と比較すると、4℃から9℃ぐらい低い数値を示すようになったので、延長ケーブルで接続した方が良いみたいですね。追加コストが184円なので、試してみる価値は大いにありかと思います。
(2) Raspberry Piにソフトウェアをインストールします
まず最初に、USB制御用のライブラリをインストールします。
sudo apt-get install build-essential libusb-1.0-0 libusb-dev
続いて、”Temper”から温度を取得するソフトウェアをインストールするのですが、今回はソースコードをちょっと変更するので、Cベースのソースコードをダウンロードします。
wget https://github.com/bitplane/temper/archive/master.zip
unzip master.zip
続いて、ソースコードを修正します。
sudo nano temper-master/temper.c
今回は気にする部分ではないのですが、オリジナルのままだと、GMTの時刻表示”gmtime(&t);
“になってしまうので、ローカルゾーン時間”localtime(&t);
“の時刻表示に変更しておきます。
続いて、”Make”します。”Make”の過程で、使用しない変数が定義されているというワーニングが表示されるかもしれませんが、実害はないので無視して下さい。
cd temper-master
sudo make
sudo chmod u+s temper
sudo mv ./temper /usr/local/bin
インストール作業が終わったら、コマンドを実行してみて下さい。
temper
(3) Pythonでちょっとしたプログラムを書いてみます
“Raspberry Pi”本体のCPU温度と、”Temper”から取得したお部屋の温度を、それぞれのテキストファイルに記録するプログラムを書いていきます。
nano /home/pi/get_temperature.py
—–
#!/usr/bin/env python
# coding: utf-8
import os
cmd = '/opt/vc/bin/vcgencmd measure_temp'
line = os.popen(cmd).readline().strip()
temp = line.split('=')[1].split("'")[0]
file = open('/home/pi/cpu_temp.txt', 'w')
file.writelines(temp)
file.close()
cmd_2 = "sudo /usr/local/bin/temper | awk -F, '{print $2}'"
line = os.popen(cmd_2).readline().strip()
file = open('/home/pi/room_temp.txt', 'w')
file.writelines(str(line))
file.close()
—–
この簡単なプログラムを実行してみて、エラー等がないことを確認しておいて下さい。
python get_temperature.py
(4) 温度を定期的に測定して記録するようにしてみます
先程書いたプログラムを、10分毎に実行するよう”cron”に登録します。
“Raspberry Piで航空機のADS-Bを受信してみました “状態の定期チェック Postfix cron USB温度計 temper” (8)“で、詳しく説明していますので、興味がある方はご覧下さい。
“cron”の定義を編集します。
crontab -e
10分毎に、”get_temperature.py”を実行するようにする場合は、こんな感じで”cron”を定義します。
*/10 * * * * python /home/pi/get_temperature.py
“cron”を起動して完了です。
sudo /etc/init.d/cron start
(5) HomeKitに計測した温度を表示してみます
“Raspberry Pi“で動作する”Homebridge“を使って、”iPhone” (iOSデバイス)上のiOSアプリ”ホーム”に、測定した温度を表示するようにします。”Homebridge“周りの詳しい内容は、”ダイソンのPure Hot + CoolをGoogle AssistantとHomeKitでリモコン操作できるようにしてみました“をご覧下さい。
”Homebridge“のインストールが済んでいることを前提に、TALKを進めます。
”Homebridge“のプラグイン”homebridge-temperature-file“をインストールします。このプラグインは、ファイルに記録したディジタル温度センター(DHT-sensor)から取得した温度の数値を、”HomeKit“に渡すための手助けをしてくれます。ただ仕掛けそのものは単純で、ファイルに書き込んだ数値に”°”を付けて、iOSアプリ”ホーム”にそれっぽく表示するといったプラグインなので、温度周りの数値なら何でもOKです。また、別の数値に対応したプラグインもリリースされているようなので、表示したい数値にフィットしたプラグインを探してみるのも楽しいかもね。
“homebridge-temperature-file“をインストールします。
sudo npm install -g homebridge-temperature-file
続いて、”Homebridge“の設定ファイルを編集します。
nano /home/pi/.homebridge/config.json
今回、設定ファイルに追加した内容は、こんな感じ。
{
"accessory": "TemperatureFile",
"name": "書斎の温度",
"description": "The temperature of CPU in Raspberry Pi",
"file_path": "/home/pi/room_temp.txt"
}
“accessory”欄は、”TemperatureFile”固定です。
“name”欄は、iOSアプリ”ホーム”に表示するアクセサリ名です。
“file_path”欄には、温度を記録しているファイルのパスを記述します。
設定ファイルを保存。
さあ、これで全ての準備が整ったので、”Homebridge“を起動します。
homebridge
正常に実行できると、QRコードが表示されるので、iOSアプリ”ホーム”でアクセサリを追加する際、このQRコードを読ませます。
すると、iOSアプリ”ホーム”に、計測した温度が表示されます。この仕組みは、いろいろ応用が効きそうだね。
|
|
|
“Adobe Stock“でベストショットな写真素材を販売中です。是非ご覧下さい。
ホームページ”THE POOH FILES”にも是非お立ち寄り下さい。