先日、AWS IoTボタンでRemoを動かすという記事を書きました。
しかし、このIoTボタンはすでに販売中止。。。代替品も値段が高くて手が出しづらいので、NFCタグで動かすようにしました。
NFCタグとは?
超ざっくりいうと、スマホでデータがやり取りできる、すごく容量の小さいメモリーカードみたいなものです。NFCタグにURLを書き込んでおいて、スマホでタッチしたらそのURLを読み取ってそこに行く、みたいな使い方です。
名前などのテキスト情報なんかも書き込めるので、名刺代わりに使えたりもするそうです。
ちなみに、おサイフケータイが入っているスマホだったら大体対応しているようです。iPhoneだとSEの第二世代くらいから使えるみたい(嫁のiPhoneSEで実証済み)。
NFCタグを使えばタスクの自動化などいろいろなことができます。https://goworkship.com/magazine/smartphone-nfc-tag/
もっと詳しく知りたい方は、「NFCタグ」でググってみてください。
どのNFCタグを買うか?
NFCタグには、Ntag213とか215とかの種類があります。容量が違うだけのようです。
https://www.asiarfid.com/ja/difference-ntag213-ntag215-ntag216.html
今回紹介するやり方は、NFCタグにURLを書き込むだけなので、215で十分です。(213だとちょっと不安)。
ちなみに、タスク実行機能を使って、直接RemoのAPIを叩くやり方だと、215でも足りませんでした。もうちょっと容量の大きいNtag216を買いましょう。Switchbotが出しているNFCタグは、こいつです。NFCタグはSwitchbot製でも、ちゃんとRemoも動きますよ。ただ3枚で1,000円弱と、ちょっとお高め。
今回の仕組み
上の記事にあるようなタスク実行機能を使って、RemoのAPIを直接実行させることもできます。このやり方であれば、Lambdaを使う必要もありません。
がしかし!それだと自分のスマホだけでしか動かせないんです。。。今回したいことは家の電気を消すこと、すなわち嫁のiPhoneでも動いてくれないといけない。でも、タスク実行機能だと、嫁のスマホでは動かない。。。(実際試してダメでした)
ということで、以下のようなやり方にしました。
NFCタグに、電気を消すためのLambdaを動かすURLを書き込む
↓
スマホでNFCタグにタッチしたら、そのURLを読み込んで、そこへ行く
↓
Lambdaが動いて、「電気消せ」とRemoに指示を出す
↓
Remoが電気を消す
Lambdaを動かすURLを作る
いわゆるAPI化ってやつです。電気を消すためのLambda関数をAPI化し、特定のURLを開いたらこの関数が動き出すようにします。
電気を消すためのLambda関数を作る
AWS IoTボタンで電気を消すときに作ったものがそのまま流用できます。
以下の記事を参考にしてください。
一番最後に書いてある「おまけ:実際に使っているコード」を使ってみてください。
Lambdaを動かすURLを作る
画面の上のほうに、「関数の概要」というところがあり、その近くに「トリガーを追加」というボタンがあるので、それをクリック。

トリガーの種類で「API Gateway」を選ぶ。

その他の設定は以下の通り。入力したら、右下の「追加」ボタンをクリック。

すると、画面下に「トリガー」欄がでてきているはずです。赤で囲った部分が、Lambda関数を動かすためのURLです。そのURLへ行くだけで、この関数が動き出します。

このURLをこぴって、ブラウザのURL欄に貼り付けて、実際にそのURLに行ってみてください。それで電気が消えれば、成功です。
ちなみに、このURLに行ければ、だれでも動かせます。セキュリティもへったくれもありません♪
URLをNFCタグに書き込む
スマホアプリを使います。僕はNFC Toolsというアプリを使いました。「書く」タブから「レコードを追加」を選択し、「URL」→上記のURLをペースト。
あとは「書く」ボタンを押し、NFCタグにかざすだけでOKです。
ちなみに、NFCタグは何回でも書き換えられるので、安心して書き込みテストしてもらってOKです。
これで設定完了!
NFCタグで電気を消す
スマホの画面ロックを解除し、NFCタグにスマホをかざしてください。画面ロック状態だと動かないのでご注意を。
NFCタグにタッチしたサイン音がピロッとなり、数秒後にRemoが動き出したら成功です。