ブラーバジェットm6は最新機種のルンバi7などと連携させることにより、ルンバの清掃が完了したらブラーバジェットm6の清掃を自動で開始するという設定ができます。
ただし、公式的にはこの連携は一部のハイグレードモデルのルンバに限られており、スタンダードモデルでは設定することができません。(後述するIFTTTを活用すればwi-fi対応のルンバであれば比較的簡単に連携可能のようです。)
そこで、今回は小型IOTデバイスを使用することにより、wi-fi未対応のルンバでもブラーバジェットm6と連携させ、ルンバの清掃が完了したらブラーバが自動で清掃を開始するシステムを考案したので解説したいと思います。さらにルンバ、ブラーバの稼働状況をLINEで自動通知させる方法もご紹介します。
本記事の内容を実施することで下記のことが出来るようになります。
- ルンバが清掃完了したら自動でブラーバジェットm6が清掃開始するように設定
- ルンバが清掃開始したことをLINEに通知
- ルンバが清掃完了したことをLINEに通知
- ブラーバジェットが清掃開始したことをLINEに通知
- ブラーバジェットが清掃完了したことをLINEに通知
そして、事前につぎのモノ・知識が必要になります。
- iRobotとLINEのアカウント
- 小型IOTデバイス(NefryBT)と磁気スイッチ(費用が6,000円程度かかります)
- webサービス「IFTTT」のアカウント(googleアカウントで代用可能)
- 少しだけプログラミングの知識が必要(手順通りすれば初心者でも出来ます)
- 設定を行うためのPCが必要(mac、windowsどちらでも可。本記事ではmacを前提に説明します。)
それでは見ていきましょう。
ルンバが清掃完了したら自動でブラーバジェットm6が清掃開始する設定方法
STEP1 : NefryBTにプログラムを書き込むための環境構築
まずは、こちらの参考リンクの記事を参考にしてNefryBTにプログラムを書き込むためのPC環境設定をしておきます。
こちらの記事で紹介されているプログラムについてはそのままだと、ルンバの清掃開始と同時にブラーバジェットも清掃開始してしまうため、少し修正させていただきました。(修正したプログラムは後述)
STEP2 : NefryBTへのプログラム書き込み
書き込むプログラムは下記のコードになります。
#include <Nefry.h> #include <NefryIFTTT.h> String SecretKey; #define PIN_MAGNET D2 int temp; int state; void setup() { Serial.begin(9600); pinMode(PIN_MAGNET, INPUT); Nefry.setStoreTitle("SecretKey",0); SecretKey = Nefry.getStoreStr(0); temp = LOW; } void loop() { state = digitalRead(PIN_MAGNET); if (state == HIGH) { if(state != temp){ Nefry.setLed(255, 255, 255); //LED:白色 bool sendData = IFTTT.send("roomba_complete", SecretKey); if (!sendData) { Nefry.reset(); } temp = state; } } else if (state == LOW) { if(state != temp){ Nefry.setLed(0, 0, 255); //LED:青色 bool sendData = IFTTT.send("roomba_start", SecretKey); if (!sendData) { Nefry.reset(); } temp = state; } } }
- IFTTTへのデータ送信で送信エラーが多発していたので、データ送信に失敗したらNefryBTが再起動するようにプログラムしています。
- 参考リンクではNefryポータルにSecretKeyとEventを予め登録してありましたが、今回は2種類のEventを実行させるためプログラムにEvent名を記入しています。(roomba_completeとroomba_start)
無事、上記のプログラムをNefryBTに書き込むことができたら、試しに磁石を磁気センサーに近づけたり、遠ざけたりしてみましょう。
近づけたときにLEDが白く発光し、遠ざけたときにLEDが青色に発光すれば、正常にプログラムが書き込みできています。(これだけでも少し感動しますよね。)
これでNefryBTに接続した磁気センサーが磁石を感知したら、IFTTTにデータを送ることが出来るようになりました。
次はIFTTTサービスを使ってNefryBTから送られたデータを起点にして、ブラーバジェットが清掃を開始するように設定します。
参考リンクのwebhooksでEvent Name「nefry_magnet」のtriggerを作成するまでは同じですが、+thatの部分から異なるのでこちらの記事内で解説します。(ちなみにEvent nameは「nefry_magnet」ではなく「roomba_complete」で登録してください。)
+thatを選択したあと、Choose action serviceでirobotを検索し、一番右端のStart robotを選択し、Create action→Finishをクリックすればレシピ完了です。
また、参考リンクにもあるようにIFTTTで作ったレシピとNefryBTをひも付ける設定が必要になるので、参考リンクの「連携用のKey取得」〜「NefryBTにIFTTTの情報を設定」までの手順を参考に設定してください。(このときNefry DataStore SetupにEventの登録は不要です。)
STEP3 : NefryBTの取り付け
STEP3-1 : 磁気センサーをホームベースに取り付け
ルンバがホームベースに帰還したときに磁気センサーが磁石を感知できる位置であればどこでもいいです。
私の場合はホームベース下部に設置してみました。
また取り付けには念の為、絶縁テープで取り付けています。
STEP3-2 : NefryBTをホームベースに取り付け
ホコリなどを防止できればどのようなケースに入れても構いません。
私は家にあったモノで工作しました。(何気にハマってしまってこれに一番時間かかったかも。。。)
このときNefryBTの動作状況をひと目で分かるようにするため、NefryBTのLEDを確認しやすい位置に取り付けましょう。
STEP3-3 : ルンバに磁石をセット
画像のように磁石をルンバに取り付けます。
取り付けには両面テープを使用しました。
おそらく通常の両面テープで問題ないと思いますが、下の商品は接着性が強く、剥がしたときにノリ残りもしにくいのでおすすめです。
STEP3-4 : NefryBTに給電
USB延長ケーブルを使ってコンセントからNefryBTに給電しましょう。
給電後、NefryBTのLEDが青色に発光すればスタンバイ完了です。
設定完了!試しに動かしてみよう
お疲れ様でした。
ここまでくれば連携自体は完了できています。
試しにルンバをホームベースから離して、連携ができているか確認してみましょう。
動画のように無事、連携ができたかと思います。
もし上手くいかない場合は磁石の位置なども見直してみてください。
あとは本連携をより快適に使うための設定方法をご紹介します。
ルンバが清掃開始(または完了)したらLINEに通知する設定方法
- IFTTTのHOME画面にあるExploreをクリックします。
- 検索窓の下の「+」をクリックします。
- 「This」を選択し、検索窓で「webhooks」と検索し、webhooksのアイコンをクリックします。
- 「Complete trigger fields(step 2 of 6)」にてEvent Nameに「roomba_start」を記入しCreate triggerをクリックします。
- 「That」を選択し、検索窓で「line」と検索し、LINEのアイコンをクリックします。
- 「Send message」を選択し、Recipientは「1-on-1 line chat with notify」でもいいですが、line側で予めグループを作成しておくと便利です。私は予め「ルンバ&ブラーバ清掃状況」というグループを作成しています。グループのメンバーにご家族を指定しておけば、清掃状況を家族で共有できたりもします。
また、このように特定のグループに通知するように設定する場合はLINE Notifyを招待しておきましょう。 - message欄はLINEに通知する内容ですので、そのままでもいいですが、私は画像のように記載しています。
- 最後にCreate action→Finishと進めばレシピの完成です。
- 試しにブラーバジェットのStartボタンを押してみてください。Start後、LINEに通知がくれば正常に設定できています。
ルンバの清掃が完了したときのLINE通知についても上記手順の通りに進めて、手順4でEvent name「roomba_complete」と記入すれば設定できます。
ブラーバジェットが清掃開始(または完了)したらLINEに通知する設定方法
- 「This」を選択し、検索窓で「irobot」と検索し、iRobotのアイコンをクリックします。
- 「Choose trigger(step 2 of 6)」にて「Robot Started」を選択します。
- 「Braava jet」が選択されていることを確認し、「Create trigger」をクリックします。
- 「That」を選択し、検索窓で「line」と検索し、LINEのアイコンをクリックします。
- 「Send message」を選択し、Recipientは「ルンバ&ブラーバ清掃状況」を選択します。
- 最後にCreate action→Finishと進めばレシピの完成です。
- 試しにブラーバジェットのStartボタンを押してみてください。Start後、LINEに通知がくれば正常に設定できています。
ブラーバジェットの清掃が完了したときのLINE通知についても上記手順の通りに進めて、手順2で「Job complete」を選択すれば設定できます。
最終的に下の写真のようにルンバとブラーバの清掃開始時刻と清掃完了時刻の通知がくるようにできます。
まとめ : 古いルンバでもブラーバジェットとの連携は可能!
IOTデバイスを活用したルンバとブラーバの連携方法とLINE通知について解説しました。
連携することでルンバが清掃完了後、すぐにブラーバを清掃開始することが出来るようになりました。
さらにIFTTTを活用することで、清掃の状況をLINE通知することが出来たかと思います。
また、外出時でもルンバ&ブラーバの清掃状況が確認しやすくなるのでとても有益な情報になっていれば幸いです。
実は今回の連携方法を考案する前に、当初はドアセンサーなどの既製品で代用することも検討していました。
ただ、ドアセンサーで代用した場合、ドアセンサーメーカーのサーバーを通しての方法になるため、メーカー側の都合で急にサービスが中止されることになったら困ります。
そんな中、今回のNefryBTの記事を見つけ、少しだけプログラミングをかじっていたためチャレンジしてみました。
私自身としては色々なサービスを組み合わせただけで、そこまで一人で作り上げているわけでもないのですが、それでも意図した機能を実現できたときは嬉しいですね。
コメント