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アプリ”ホーム”に、計測した温度が表示されます。この仕組みは、いろいろ応用が効きそうだね。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Raspberry Pi Raspberry PI3 B ELEMENT14パッケージ【RASPBERRYPI3MODELB】
価格:5226円(税込、送料別) (2017/12/23時点)

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

スイッチサイエンス Raspberry Pi Zero W ケースキット
価格:2808円(税込、送料別) (2017/12/23時点)

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

【ラズベリー・パイ】Raspberry Pi Zero W Starter Kit 8GB 国内正規代理店品
価格:4390円(税込、送料別) (2017/12/23時点)

 

Adobe Stock“でベストショットな写真素材を販売中です。是非ご覧下さい。
ホームページ”THE POOH FILES”にも是非お立ち寄り下さい。

tomohiko

長年に渡りMacintosh向けの自作アプリを作り続けているPOOHです。最近はiPhone,iPad向けアプリ開発にも挑戦中。グルメ、旅行、露天風呂、写真、サイクリング、映画、STAR TREKが大好き。レトロでSFなおもちゃを大量にコレクション。プレーリードッグと同居中。

おすすめ

コメントを残す