LoginSignup
4
4

More than 3 years have passed since last update.

ローカルWebサーバーからSesameをそこそこ早く施錠・解錠する。

Last updated at Posted at 2020-08-05

スマートロック「Sesame」を使っている人なら感じたことがあるでしょう。
クラウドにアクセスするのが遅すぎる…と。
かといってBluetoothに接続するも遅い…と。
これだったらリアル鍵を取り出した方が早いんじゃね…と。

SesameはWebAPIを公開してくれています。
なのでそれをPHPからcURLで叩いてそこそこ早く施錠・解錠したいと思います!

準備

・SesameとWifiアクセスポイント
今このページを見ている人なら既に持ってると思いますが一応

・無線LANルーター
スマホでローカルWebサーバーにアクセスするのに要ります。

・PHPでcURLが動かせるローカルWebサーバー
構築方法はググって下さい。
IPアドレスはスマホからアクセスできるように固定しといて下さい。
自分はRaspberryPiにNginxを入れてます。WebサーバーにできるNASとかもありますし何でもいいと思います。

・SesameIDとAPIキー
下記URLを参照しSesameIDとAPIキーを取得して下さい。
APIキー取得方法とセサミIDの確認方法

PHPファイルをローカルWebサーバーに配置

SesameIDとAPIキーは書き換えて下さい。

・施錠用PHP

lock.php

<?php
$url = 'https://api.candyhouse.co/public/sesame/<SesameID>';
$apikey = '<APIキー>';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

$data = array('command'=>'lock');
$data_json = json_encode($data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: ' . $apikey, 'Content-Type: application/json'));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);

curl_exec($ch);
curl_close($ch);
?>

・解錠用PHP

unlock.php

<?php
$url = 'https://api.candyhouse.co/public/sesame/<SesameID>';
$apikey = '<APIキー>';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

$data = array('command'=>'unlock');
$data_json = json_encode($data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: ' . $apikey, 'Content-Type: application/json'));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);

curl_exec($ch);
curl_close($ch);
?>

上記PHPファイルを作成したらドキュメントルートに配置します。
/var/www/html/lock.php
/var/www/html/unlock.php

施錠・解錠方法

スマホのWifiで無線LANルーターに接続し、ブラウザから
http://<ローカルWebサーバーのIPアドレス>/lock.php
にアクセスします。すると体感3秒位で施錠してくれます。

解錠も同様の手順でunlock.phpにアクセスします。

(ショートカットを作っておくと便利!)

参考文献

Sesame API

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4