MESH + IFTTT
先日SonyのMESHを使う機会がありました。
MESH単体だけでなく、外部サービスとの連携も簡単にできたのでまとめておきます。
MESHとは
Sonyが販売しているお手軽IoTデバイスです(だと思う)。
紹介ムービー見てください。
もっと詳しいことを知りたい方は公式へ。
カラフルなMESHタグはそれぞれ特性があります。
- LEDタグ: 光る
- ボタンタグ: 押せる
- 人感タグ: 周囲の動きを感知する
- 動きタグ: タグ自身の動きを感知する
- 明るさタグ: 光を感知する
- 温度・湿度タグ: 温度・湿度の変化を感知する
- GPIOタグ: 様々なデバイスとつなぎ入出力の信号を扱う
専用アプリ上でこれらの連携を組み合わせることで子供でも簡単にIoTデバイスを実現できます。
例えば、「廊下に人感タグを設置し、反応したら自室のLEDタグが光るように設定することで訪問者を事前に察知する」なんて、部屋に鍵の設置を許してもらえない思春期男子的用途にも使えます。
GPIOタグ以外は基本的にMESH内で完結しているのですが、アプリ上でソフトウェアタグを利用することでロジックを持たせたりIFTTTなどの外部サービスと連携させることが可能になります。
MESHとIFTTTを連携する
Pythonプログラムの中からIFTTTを叩き、IFTTT経由でMESHを起動させます。
これができればもはやMESHを何とでも接続可能です。
公式ページを参考にIFTTTと連携しておきます。
IFTTTで新しいレシピ作成
自分のアプリからIFTTTを叩きたい場合はWebhooks(旧: Maker Channel)を使います。
(今回はPythonスクリプトからIFTTTを叩きます。)
「My Applets -> New Applet」で作成開始。
thisをクリックして発信側の設定を行います。
webhooksで検索します。
1つしかないのでそれを選択。
適当なEvent Nameを入力します。
ハイフンやアンダーバーがあるとmesh側のイベントIDで怒られるので注意。
Webhookのページに移動してDocumentationを開きます。
PythonからIFTTTのWebhookを叩く
こんな感じのPythonスクリプトを作成して実行すればIFTTTのWebhookを叩くことができます。
Python 2系を使っている場合はprintの括弧を外します。
import requests data = {"value1": "abc", "value2": "def", "value3": "ghi"} headers = {'Content-Type': "application/json"} url = 'https://maker.ifttt.com/trigger/your_app_name/with/key/your_key' response = requests.post(url, json=data, headers=headers) print(response.status_code)
こんな感じ。
試したら1分強でMESHが反応しました。
これで例えばPythonプログラムで顔認識をして、表情認識なり個体識別なりで条件を満たした時にMESHに送信ということができます。
頑張れば、顔認識による自宅の解錠、笑わないと開かない冷蔵庫などをMESHで実装できそうですね。
ただ、IFTTTを経由するとどうしても時間がかかるので、そこは難点だなぁと思いました。
参考
- PythonスクリプトからIFTTTのWebhookに投稿する – Bye Bye Moore
- PyPI: ifttt, PyPI Package: ifttt 0.0.4, Python – HotLibs
- Connect a Python Script to IFTTT – mai più senza – Medium
- How to configure and use Python web requests and IFTTT to trigger email alerts. Use CSS to customize your alerts.
- IFTTTにMaker Channelができました | スイッチサイエンス マガジン
- Introducing the Maker Channel