ENTOTSU44

IT系のことを中心に更新してます。

Homekit対応の温湿度計を作る。

目標

RaspberryPiとDHT11を用いて、部屋の気温と湿度をiOSやiPadOSのHomeアプリで確認できるようにする。

環境

作成

DHT11をRaspberryPiに接続する

下の表のように配線する。

DHT11 ピン番号 DHT11 ピン名 RaspberryPi ピン番号 RaspberryPi ピン名
1 Vcc 1 3.3v
2 Data 7 GPIO4
3 NC - -
4 GND 9 GND

f:id:ENTOTSU44:20200818154853p:plain
DHT11とRaspberryPiの配線図

RaspberryPiにBCM2835をインストールする

  1. 下のサイトからbcm2835-1.xx.tar.gz(xxは数字)というファイルをダウンロードする。 http://www.airspayce.com/mikem/bcm2835/

  2. 下のコマンドを実行する。

tar zxvf bcm2835-1.xx.tar.gz
cd bcm2835-1.xx
./configure
make
sudo make check
sudo make install

RaspberryPiにHomebridgeをインストールする

npmをインストールし、下のコマンドを実行する。
(npmのインストールの仕方は省略)

sudo npm install -g --unsafe-perm homebridge
sudo npm install -g --unsafe-perm homebridge-dht 

ここで--unsafe-permを付けないで実行すると下のようなエラーが出るので注意

$ sudo npm install -g homebridge-dht

> node-dht-sensor@0.4.3 install /usr/lib/node_modules/homebridge-dht/node_modules/node-dht-sensor
> node-gyp configure

gyp WARN EACCES current user ("nobody") does not have permission to access the dev dir "/root/.cache/node-gyp/12.18.3"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/lib/node_modules/homebridge-dht/node_modules/node-dht-sensor/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error 
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/homebridge-dht/node_modules/node-dht-sensor/.node-gyp'
gyp ERR! System Linux 5.4.51-v7+
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure"
gyp ERR! cwd /usr/lib/node_modules/homebridge-dht/node_modules/node-dht-sensor
gyp ERR! node -v v12.18.3
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-dht-sensor@0.4.3 install: `node-gyp configure`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the node-dht-sensor@0.4.3 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-08-17T04_42_12_927Z-debug.log

homebridgeの設定をする

homebridgeの設定は~/.homebridge/config.jsonを書き換えることでできる。

  1. デフォルトでは.homebridge/がないので、まずこのコマンドでディレクトリを作る。
mkdir ~/.homebridge
  1. お好みのエディタで~/.homebridge/config.jsonに下の内容を書き、保存する。

    ~/.homebridge/config.jsonの内容

{    "bridge": {
     "name": "HomeBridge",
     "username": "CC:22:3D:E3:CD:33",
     "port": 51826,
     "pin": "031-45-154"
    },

"description": "HomeBridge",

"platforms": [],

"accessories": [
        { "accessory": "Dht",
        "name": "dht11",
        "name_temperature": "Temperature",
        "name_humidity": "Humidity",
        "service": "dht11" }

]}

homebridgeを起動する

下のコマンドを実行する。

homebridge

コマンドラインQRコードが出力されるのでそれをiPhoneiPadで読み取り、Homeアプリに機器を登録する。

参考

https://github.com/NorthernMan54/homebridge-dht/blob/master/Build.md