この記事では、MQTT Brokerサービスである「Shiftr.io」を使い始める手順を説明します。
主なステップは、
- ユーザ登録
- namespaceの作成
- tokenの作成
です。
ユーザはnamespaceを複数個持つことができます。namespaceは1つの独立したMQTT Brokerとして機能します。同じトピック名を複数のnamespace内で使用しても、通信データが混じることはありません。
namespaceには複数のtokenを定義できます。tokenはMQTT Brokerにメッセージを読み書きする権限です。「送信、受信の両方ができるtoken」とか「受信だけのtoken」といったように行える操作に制限を設けることができます。tokenにはKey(ID)とSecret(パスワード)とが割り当てられます。
ユーザ登録
Shiftr.ioのWebページ https://shiftr.io を開き、右上にある「Sign Up」をクリックします。
必要項目を入力し、ロボットでないことのチェックを受け、利用規約に同意して、最後に「Sign Up」ボタンをクリックします。
メールアドレス確認メールが届くので、メール本文にある「Confirm my account」をクリックします。メールが届かない場合は、迷惑メールフォルダに入っていないか確認してください。
Sign Inページが開くので、Sign Upで登録したメールアドレスとパスワードを入力し、「Sign In」ボタンをクリックします。
Namespaceの作成
Sign Inに成功すると次のようなページが表示されます。右上にあるアイコン(ロボットの顔?)の上にマウスカーソルを持って行くとメニューが表示されます。
メニューにある「New Namespace」をクリックしてNamespace作成ページに移動します。メニューを使わずに、ページ本文にある「create a namespace」リンクをクリックしても同じページに移動できます。
namespaceは1つの独立したMQTT Brokerとして機能します。同じトピック名を複数のnamespace内で使用しても、通信データが混じることはありません。
「Create a new Namespace」ページが開いたら、「Name」を記入します。Nameには、アルファベット、数字、ハイフンが使えます。どんな名前でもいいですが、IoTハンズオンの説明資料では「iot-handson」という名前を付けた場合の例を使っています。「Description」は記入しなくても構いません。ここにnamespaceの用途を記入しておくと、Namespace一覧でnamespaceを選択するとき迷わずに済みます。
「private」にチェックを入れ、「Create Namespace」ボタンをクリックします。
namespaceの作成に成功すると、Namespaceページが開きます。左上には
ユーザ名/namespace名
が表示されています。ページの下部にはMQTT BrokerとClientのメッセージ送受の様子がアニメーション表示される領域があります。まだメッセージを送っていないので、中央に円が表示されているだけで、動きはありません。
Tokenの作成
Namespaceページの右上にある「Namespace Settings」をクリックします。
Namespace Settingsの設定項目の1つであるTokensページが表示されます。このページには、このNamespaceで定義されているtokenの一覧が表示されます。Namespaceを作成した直後は、「Graph」という名前のtokenだけが作られています。このtokenはメッセージ送受のアニメーションの作成に必要な情報を取得するのに使用されます。
tokenはMQTT Brokerにメッセージを読み書きする権限です。「送信、受信の両方ができるtoken」とか「受信だけのtoken」といったように行える操作に制限を設けることができます。tokenにはIDとパスワードが割り当てられます。
tokenを追加するために、右上にある「Add Token」ボタンをクリックします。
Add Tokenページが開きます。Key(ID)とSecret(パスワード)にはシステムが割り当てた文字列があらかじめ記入されています。KeyとSecretは自分で値を書き込むこともできます。ただし、Keyはshiftr.ioの他のユーザが作成したKeyと被ってはいけません。システムが割り当てた値を使えば被ることはありません。
Descriptionには、Tokenの用途を記入します。ここに記入しなくてもtokenは作れますが、何に使うtokenか分からなくなるので、記入しましょう。
まずBrowserからメッセージを送信するためのtokenを作りたいので、Descriptionは「Browser」にします。
ClientプログラムでKeyとSecretを使用するので、表示された値を控えておいてください。
「Create Token」ボタンをクリックしてtokeを作成します。
Tokensページが表示されます。作成したBrowser tokenが追加されているのがわかります。MQTTのURIも表示されています。URIはkeyとsecretを含んだ構造になっています。
mqtt://key:secret@broker.shiftr.io
同じ手順で、ESP8266というtokenを作成します。こちらのKeyとSecretも控えておいてください。
TokensページにESP8266が追加されました。
左上の「iot-handson」をクリックしてiot-handsonのnamespaceページに移動してください。
io-thandsonのnamespaceページが表示されました。
以上で、ハンズオン用のshiftr.ioの設定は完了です。
参考:tokenのkeyとsecretを再確認する方法
方法1:DashboardページからTokensページを開く
Tokenページを開くとKeyとSecretを確認できます。DashboardページからTokenページへのページ遷移は次の通りです。
Dashboard → Namespace → Namespace Settings → Token
shiftr.ioにログインするとDashboardページが表示されます。
別のページを開いていてそこからDashboardに移動する場合は、右上のアイコン上にマウスカーソルを置き、表示されたメニューからDashboardを選択します。
Dashboardページには、所有しているnamespaceがアニメーション領域付きで一覧表示されます。namescape名をクリックするとNamespaceページに移動します。
「Namespace Settings」ボタンをクリックするとNamespace Settingsページに移動します。
Namespace Settingsページを開くと、最初はTokensページが表示されます。このページにはそのnamespaceで定義されているtokenのリストが表示されています。token名をクリックするとtoken情報変更ページが開きます。
このページはtoken新規作成ページと同じです。Key、Secret、Permission、Descriptionの確認、変更ができます。
方法2:Your ProfileページからTokensページを開く
Your ProfileページからTokensページへのページ遷移は次のとおりです。
Your Profile → Namespace → Namespace Settings → Token
右上のアイコンにマウスカーソルを持っていってメニューを表示させ、メニュー内のYour Profileページを開けます。アイコンをクリックしてもYour Profileページを開けます。
Your Profileページの右側にnamespaceのリストが表されているので、見たいnamespaceをクリックします。
Namespaceページ以降のページ遷移は方法1と同じです。