脱サラのすすめ

ダムとバイクとSEの記録


【オブナイズ】Obniz(IoT Home Kit)外部連携で遊ぶ

こんにちは、しばってぃです。  前回はObnizを触った所感を述べました。

(下記参照)

 
 また、チュートリアルなどの動画は、公式に全て用意されていますので、これさえ見ればたちまち組上げることが可能となります。(丁寧) ​Obnizeガイド_公式ページ
 
 ​さて今回は、サーバレスイベントの「Webhook」連携に触れてみたので、そのやり方などを含めて述べていきたいと思います。​
 
 ​​​流れは、Obnizの手引きにある「IFTTT」連携という題ですね。
この中ではスケジューラ連携をしていたのですが、自分の中でピンと来なかったので自分なりに触ったやり方を紹介しようと思います。
 
追伸:
 新型コロナで外出自粛となっている昨今ですが、そんな時こそこのオブナイズで暇つぶしでもしてみませんか?
 前回も述べていますが、ブロックプログラミングが採用されていますし、チュートリアルやサンプルプログラムも充実していて、導入ハードルがめちゃ低いです。
 子供のプログラム教育にも使われていたりしますので、お子さんがいる方とか、プログラムを勉強し始めたい方にはうってつけなのではないかなと、思ったり。
 今回はリモコンの遠隔操作を例に取りあげています。 自宅やオフィスのエアコンを遠隔操作できるようになり、夏場は帰ったらすぐ涼しい部屋の中へ・・・冬場は暖かい部屋の中へ・・・みたいなことが実現できます。
 あ、エアコン消し忘れちゃった! みたいなときにも、外からピっと消すことも可能。
 なんなら風量や温度調節できちゃったりなんだりラジバンダリ。
 ​工夫次第では何でも操作できます。
WiFi環境が必須です
 
 興味がある方は、一旦公式ホームページを見ると吉です。
それではどうぞ。
 

 

 
目次

​​1.IFTTT(イフト)とは​​

 ​​​​IF This Then That.​​​​ の頭文字から。
 もしそうしたなら、こうする。
 要は、WebアプリWebアプリを連携するWebアプリです。
 
 例えば、Twitterスプレッドシートを連携する、というシーンですと、Twitterで特定のワードが呟かれたら、スプレッドシートにその内容を転送する、などといった使い方ができるようになります。
 この例で言うと、「Twitter」と「スプレッドシート」のアプリ間のデータの橋渡しをする役割を担う、というアプリとなります。
 
 全てのアプリが連携できるかというと、厳密にはそうでないのですが、IFTTTに登録されてあるアプリであれば、ほぼ自由に組み合わせて連携アプリが簡単に作ることができるようになります。
 
​ さて、今回はその中でも、「​Webhook​」と「​ButtonWejet​」を連携させた、「遠隔エアコンスイッチアプリ」を作ろうと思います。​
 

 

 

​2.Webhookとは​

 HttpでGet&Postを通信する仕組み。
 
 Obnizはこの「​Webhook​」を使って外部のアプリケーションと連携する仕様となっているようです。
 

 

 

​3.実際の設定の様子​​​ ​​

 前提として、Obnizのプログラムを作成し、そのプログラムをXML出力、そのXMLファイルをレポジトリにアップロードしておく必要があります。
(公式サンプルプログラムを改造すると楽です。)
 
 その上で、サーバレスイベントを作成し、WebhookのイベントURLを生成します。 (このURLは後で必要になるので、メモ帳などにコピペしておくといいです。)

f:id:shibatty:20200701173404p:plain

 
 また、Obnizに何を行わせるかにもよりますが、POST/GETの操作文をソースプログラムに直接記述必要があります。
 ただし今回は、エアコンのオン、オフだけを操作するので、POST/GETは特に意識しません。
 
 まずは「IFTTT」の無料登録を行い、「Make Your Own Applet・・・」で連携アプリの選択を行います。
 
 今回は、「This」に「ButtonWejet」、「That」に「Webhook」を選択します。
 
 「ButtonWijet」は特に設定等ありません。 「Webhook」の設定は、Obnizチュートリアルに記載の通りにします。 POST/GETの操作には、「{"":true}」と記載し、空の文字列を送るようにしています。
(実際には受け取りの処理をソースに書いていないのでどのような文字列でもいいと思います。)
 
 連携が作成されると、以下の画面のようになります。
 (エアコンの On と Off で2つ作ってあります。)

f:id:shibatty:20200701173653j:plain

 
 最後に、スマホ側で「IFTTT」の「Wejet」を呼び出します。 すると上記の画面が出て、作成したどの連携を、ボタンウィジェットに設定するか問われるので、登録したい連携を選択すれば完成となります。
 
 下記画面は作成後の画面の様子です。

f:id:shibatty:20200701173736j:plain

 
 スマホウィジェットアイコンを押下すると、エアコンのオンオフが遠隔で操作できる、という仕組みが完成しました。
 
 これで家に戻る前にエアコンのスイッチを入れて、帰ったら部屋があったかい、涼しい、なんてことが簡単に実現できます!
 

 

 

​4.所感

 センサー、プログラムとも経験者ですので、30分あれば作れました。 未経験者でも数日悩めば作れるレベルだと感じます。
 連携できるアプリは多岐にわたります。
 センサーモジュールも多く存在するので、組み合わせ方によっては色々なことができるようになりますね。
 
 ただし、アプリ連携まで来ると流石にプログラムのソースに手が入ることとなるので、初学習者には一気に難易度が上がることが想像できます。
(ブロックプログラムだけでは不十分で、ゴリゴリプログラムを書くこととなる。)
 
 有識者や、初学習者でも根気のある方であれば、アイデア次第で色々なサービスが作れそうですね!
 
 私も引き続き色々試行錯誤していきたいと思います。
(と思うけど、時間がないねんな・・・)
 
 監視カメラとか作れちゃうんだよねー
 
以上​​