EdisonでMQTTを使ってデバイスの設定を同期するIoTで話題に上がるのがIoTデバイスの設定を外部から変えたいというニーズです。いくつかやり方はあると思いますが、今回はMQTTを使ってデータの書き換えを行ってみたいと思います。アーキテクチャ全体のアーキテクチャは次のようになります。Edison側ではMQTTクライアントを使ってconfig/readを購読しています。このトピックを呼ばれたらあらかじめ設定してあるJSONデータを文字列化した上で返します。MQTTではテキストデータしか扱えませんので、JSONデータは送受信側でそれぞれ変換する必要があります。このトピックではconfig/publishというトピックに対して設定を発信しています。次にconfig/writeというトピックも受診しています。このイベントにはデータが入っており、送られてきた設定をファイルに書き込んでいます。JSON.stringify(configFile));}});});[/crayon]サーバの設定サーバ側ではMQTTサーバを立てています。WebSocketsとなっています。MQTTとWebSocketが同居しているサーバです。デスクトップ上ではmcollina/moscaを使うのが便利です。WebコンテンツWebコンテンツは次のようになっています。結果としてconfig/publishが呼ばれて、そこに設定の値が返ってきますので、それをHTML上に表示しています。次に設定の値を書き換えてボタンを押したタイミングで設定の値をconfig/writeとして発信します。Edisonではその値をEdison内にあるファイルに書き込んでいます。静的なファイルを介することで、MQTTサーバが落ちていてもIoTデバイスは動作が継続できます。設定の書き込みはMQTTを使っているだけなのでWebブラウザでもサーバからの実行でもどちらでも問題ありません。MQTTはリアルタイム通信が利点なので、設定が即座に反映されるのが魅力です。ニフティクラウドではMQTTを無料(β版につき)で提供しています。センサーの値をやりとりするだけでなく、MQTTならではのデータの送受信を活かしてみてください。コメントをキャンセルコメントを投稿するにはログインしてください。