【誰でも簡単】SESAME / セサミをNFCタグで開閉する方法

スマホで家の鍵を開閉できるスマートロック「SESAME / セサミ」を導入した。

スマホでセサミの鍵を解錠するには、通常では次の4ステップが必要。

  1. スマホのロック解除
  2. セサミのアプリを探す
  3. アプリを立ち上げる
  4. アプリをタップして解錠する

これが意外に手間がかかる。

IFTTT の Button widget を使った場合のステップは

  1. スマホのロック解除
  2. Button widgetのアイコンを探す
  3. アイコンをタップして解錠する

ステップは短くなるけど、アイコンを探す手間が残る。

もっとスマートにしたいので、NFCタグを導入した。
NFCタグを使ったステップは2つまで短縮できる

  1. スマホのロック解除
  2. NFCタグにスマホをタッチして解除する

NFCタグとセサミの連携方法はいろいろあるけど、 技術的な知識がなくても簡単にできる方法を構築してみた。

概要は以下の通り。

  • セサミ開閉のトリガーをIFTTTのWebhooksで作成
  • cURL関数でWebhooksが実行されるPHPファイルを作成
  • 自宅NASのWebサーバーにPHPを保存
  • PHPファイルをプライベートIPアドレスで運用
  • NFCタグにPHPファイルのURLを書き込む

難しい言葉が並びますが、必要なハードウェアさえ揃えば簡単に設定できるはず。

(間違いなどあれば、ご指摘いただけると幸いです)

準備

まずは必要なハードウェアとソフトウェアを準備する。

ハードウェア

ソフトウェア

1:セサミの設置と設定

ここはすでに完了済みの方が多いと思うので割愛。
まだの人はこちらを参照。

2:セサミのクラウド連携

IFTTTなどを使うために「クラウド連携」をONに設定する。

セサミのクラウド連携

アプリ → セサミの管理 → クラウドの連携をON(セサミオーナーのみ可能)

3:IFTTTでWebhooksの設定

IFTTTとはさまざまなWebサービスやアクションを連携できるサービス。
WebhooksとはWebアプリケーションでイベントが実行された際に外部サービスへHTTP で通知するサービス。

ここではIFTTTで「WebhooksのリクエストURLが開かれるとセサミが解錠する」仕組みを作る。

3-1:トリガー「This」の設定

 

【1】IFTTT画面で「Explore」をタップ
【2】「+」アイコンをタップ
【3】「This」をタップ
【4】「Webhooks」を検索して表示されるWebhooksのアイコンをタップ
【5】「Receive a web request」をタップ
【6】「Event Name」を記載。解錠のイベントとするので例えば「Open-Sesame」と記入
【7】「Create trigger」をタップ

3-2:アクション「That」の設定



【1】「That」をタップ
【2】「Sesame」を検索して表示される「Sesame by CANDY HOUSE」アイコンをタップ
【3】解錠のアクションなので「Open Sesame」をタップ
【4】セサミで設定した「鍵の名前」を選択
【5】「Create action」をタップ
【6】「Finish」をタップ

これでIFTTTの設定は完了。

3-3:WebhooksのリクエストURLを作成

セサミを解錠するためのリクエストURLを作成する。
このURLにアクセスすることで、IFTTTのWebhooksが起動してセサミの鍵が開く。

【1】IFTTTの設定完了の次に表示される画面で「Webhooks」のアイコンをタップ
【2】「Documentation」をタップ
【3】「Make a POST or GET web request to:」のURLをコピー
【4】URLの{event}に「Event Name」を記載してURLを完成させる

今回のサンプルでは次のようになる。
https://maker.ifttt.com/trigger/Open-Sesame/with/key/Hogehogehoge
※「Hogehogehoge」部分には「Your key is」に記載されたキーが入る

このURLをそのままNFCタグに書き込むと、誰でも鍵を開けられるので注意!

安全に運用するには、家の近く(自宅Wi-Fiが繋がる範囲)で、家族のみがこのURLを実行できる状態にする必要がある。
つまり、自宅NASのWebサーバーにリクエストURLが実行されるファイルを保存して、プライベートIPアドレスで運用する。

そのための手順が以下となる。

4:cURL関数を使ったPHPファイルの作成

NASに保存するPHPファイルを作成する。
このファイルにはcURL関数で「ファイルにアクセスしたらWebhooksのリクエストURLが開く」という命令を記載する。

下記ソースの「https://XXXXXXXXXX」部分を「3-3」で作ったWebhooksのリクエストURL「https://maker.ifttt.com/trigger/Open-Sesame/with/key/Hogehogehoge」に書き換えて保存する。
例では、ファイル名を「open.php」とする。

<?php
$url = "https://XXXXXXXXXX";
//cURLセッションを初期化する
$ch = curl_init();
//URLとオプションを指定する
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//URLの情報を取得する
$res =  curl_exec($ch);
//結果を表示する
var_dump($res);
//セッションを終了する
curl_close($conn);
?>

参考:【PHP入門】cURL関数の使い方をマスターしよう! | 侍エンジニア塾ブログ

5:NASのWEBサーバーを設定

「4」で作った「open.php」を運用するためのWEBサーバーを構築する。
ここでは Synology DiskStation で「Web Station」を使うための方法を解説。

5-1:「Web Station」インストール

パッケージセンターから「Web Station」をインストール

5-2:パッケージのインストール

Web Stationを起動して、足りないパッケージをインストール。
ApacheとPHPの最新バージョンが有ると良い。

5-3:全般設定

サイドメニューの「全般設定」を選択。
「HTTP バックエンドサーバ」でApacheの最新バージョンを選択。
「PHP」でPHPの最新バージョンを選択。

5-4:PHP設定

サイドメニューの「PHP設定」を選択。
「PHPキャッシュを有効にする」をチェック。
「拡張」の一番上のチェックボックスにチェックを入れてすべてを有効化する。

5-5:仮想ホスト設定

サイドメニューの「仮想ホスト」を選択。
名前ベースの「ホスト名」と「ドキュメントルート」を設定する。

5-6:ファイルの保存

「File Station」をタップして、5-5で作成したドキュメントルートのフォルダに「open.php」を保存する。
例では「web > sesame_key」フォルダの中に保存。

参考:Synology にWebサービスを立ち上げる。|ホームNW研究所

6:NFCタグに書き込むURLの作成

「File Station」に保存した「open.php」を右クリックして「プロパティ」を開き、「場所」のパスをコピーする。
パス①「/volume1/web/sesame_key/open.php」

ブラウザのURL欄からWeb Stationのパスをコピーする。
パス②「http://192.168.XX.XX:5000/」

パス②の末尾「5000」を「80」に書き換える。
「http://192.168.XX.XX:80/」

パス②の後ろにパス①のweb/以降を繋げる。
「http://192.168.XX.XX:80/sesame_key/open.php」

これでNASに接続された自宅Wi-Fiに繋がっていないとアクセスできないURLが完成。

テストとして、このURLに自宅Wi-Fiからアクセスしてセサミが解錠されることを確認する。
次にWi-Fiを切ったスマホでURLにアクセスして、外部環境では機能しないことを確認する。

施錠のURLも同様に作っておく。

7:NFCタグへの書き込み

スマホにNFCタグ書き込みアプリをインストールする。

おすすめアプリは「NFC Tools」

NFC Tools - AppStore NFC Tools-GooglePlay

基本的な使い方は「WRITE」>「Add a record」>「URL/URI」から書き込むと良い。

8:NFCタグの設置

最後にNFCタグを設置すれば完了。

ドアの近くにシールタイプのNFCタグを貼るのがオススメ。

ただ、NFCタグは金属面に貼ると効かなくなるので、金属以外に貼る必要がある。
どうしても金属面に貼りたいときは、NFCタグと金属面の間にゴムシートを貼ると良い。

自宅では金属の手すりにゴムシートを貼り、その上にNFCタグを貼った。
ゴムシートの厚みが3mmだと効かなかったため、2枚重ねにして厚さ6mmにしたら機能するようになった。
ゴムシートは対候、耐熱性に優れたクロロプレンゴムがオススメ。ホームセンターで200円前後で売っている。

玄関まわりに設置するのが不安な場合は、キーホルダータイプのNFCタグを使ったり、手持ちのアイテムにNFCタグシールを貼るのも良い。

これでスマホでのセサミ開閉がかなり楽になった。

コメント

タイトルとURLをコピーしました