iOS13のショートカットとNFCタグを使ってiPhoneからM5Stackを操作する
はじめに
朝起きたら深夜のうちにiOSのアップデートが自動的にされていて、私のiPhoneがiOS13.1.2になっていました。画面を開いてみると「ショートカット」というアプリが自動的に追加されていました。
apps.apple.comまた、先日こちらの記事にてショートカットとNFCタグを使って実現しているのを見ていたこともあり、せっかくインストールされたなら何か試してみたいなと思いました。 reliphone.jp
ということで今回はタイトルにもありますが、iOS13のショートカットとNFCタグを使ってiPhoneからM5Stackを操作できるようにしたいと思います。
完成品
iOS13のショートカットとNFCタグを利用してM5Stackの制御を実現しました。デモとしてiPhoneをNFCタグにタッチすることでM5Stackの表示が切り替わります。 pic.twitter.com/HXbJV4Uea6
— クラクス (@kuracux) October 12, 2019
NFCタグにiPhoneをタッチするとショートカットが実行されM5Stackの画面が切り替わっています。
準備物
- iPhone(iPhone XSおよびiOS13.1.2で確認しております。iPhone Xや8では出来ないそうです)
- ショートカットアプリ
- M5Stack
- NFCタグ(交通系ICカード等)
開発環境
- Windows10
- ArduinoIDE
利用するサービス
- IFTTT
処理の流れ
- ショートカットからIFTTTのWebhookを叩く
- IFTTTからBlynkのWebhookを叩く
- M5Stack側でBlynkからの通知を受け取り、処理を実行する
1, 2について、ショートカットからわざわざIFTTTを介さずに直接BlynkのWebhookを叩けばよいのではないか?と思われる方もいると思いますが、試してみたところ上手く動かなかったため、一度IFTTTを経由して実行するようにしています。
実現方法
Blynkの設定および「IFTTT → Blynk」の連携については以下の記事を参考にしました(上記の2に該当) www.mgo-tec.com
ショートカットからIFTTのWebhookを叩く方法は以下の記事を参考にしました(上記の1に該当) gadget-shot.com
上記の3についてはArduinoIDEの「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」から「Blynk」と検索し、Blynkのライブラリをインストールし、その後以下のスケッチを書き込みます。
#include <M5Stack.h> #define BLYNK_PRINT Serial #include <WiFi.h> #include <WiFiClient.h> #include <BlynkSimpleEsp32.h> // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "Blynkのプロジェクト作成時にメールで送られてきたAuth Token"; // Your WiFi credentials. // Set password to "" for open networks. char ssid[] = "各環境のWifiのSSID"; char pass[] = "SSIDに対応するパスワード"; boolean display_flag = false; void setup() { M5.begin(); Blynk.begin(auth, ssid, pass); } void loop() { Blynk.run(); } BLYNK_WRITE(V1) { //Blynk Virtual Pin if(display_flag) { M5.Lcd.fillScreen(TFT_BLACK); } else { M5.Lcd.fillScreen(TFT_WHITE); } display_flag = !display_flag; }
ポイントとしては、IFTTTにてBlynkのWebhookの設定をする際にこちらの記事同様にV1ピンに値を送るようにしましょう。今回のスケッチでは値を見ていないため、以下のようなURLを指定すればよいです。
http://188.166.206.43/(MY_Auth_code)/update/V1?value=hogehoge
おわりに
iOS13のショートカットとNFCタグを使ってiPhoneからM5Stackを操作する方法を紹介しました。今回は画面の切り替えでしたが、M5Stackの各種Unitやサーボモータと連携させれば面白いことができそうですね。また、NFCタグを用いましたがショートカットではその他の方法(時刻や位置情報、Wi-Fiに接続したとき等)をトリガーにすることも可能なため、更に出来ることが増えそうですね。