Cloudn \ 技術ブログ tech blog

クラウド・エヌの活用方法についてご紹介していきます。
Cloudn Information

前の記事・次の記事

Cloudnを活用したIoT – センサデータのMQTT通信

ブログ記事

こんにちは。NTTコミュニケーションズの近藤です。

今回は、IoT(Internet of Things)をテーマに、CloudnのComputeを活用してセンサデータをMQTT通信でクラウドに送信する方法をご紹介します。

IoTとは、インターネットに接続される対象を大きく広げ、世の中に存在する様々なモノを情報通信の世界に持ち込み、新たな価値を生み出そうとする考え方です。多種多様な場所からデータを送信される可能性があるため、Cloudnのように、グローバルなエンドポイントの提供を行っているクラウドサービスが、情報収集の場所として最適です。また、多くの情報を収集するには、当然ネットワークの通信量の懸念がありますが、Cloudnであればお客様の通信に対する従量課金はありませんので、安心してご利用いただけます。ぜひご利用ください!

情報通信の世界に持ち込むには、対象をセンシングしデジタル化することが不可欠になります。今回は、センサデバイスとしてArduino(Uno)を利用します。インターネット接続はArduinoのEthernet Shieldを介して行います。

Arduino

Cloudn ComputeにMQTTブローカーのMosquittoをインストールし、センサで測定した温度・湿度データをArduinoからPublishします。

overview2

1. VMの作成

VMは以下のOS、プランを利用しました。

  • Ubuntu Server v14.04 64bit
  • m1.small (1CPU / 2GB RAM)

vm_setup

2. Mosquittoのインストール

Mosquittoは執筆時点でversion 1.4.7がインストールされます。インストールした時点でサービスが起動し、デフォルトではPort 1883でMQTTを待ち受けます。

Mosquittoのポート変更などの設定は、/etc/mosquitto配下のConfigファイルで行います。conf.dディレクトリに、/usr/share/doc/mosquitto/examples/mosquitto.conf.gzをコピー・解凍して配置することで、サービス起動時に設定が反映されます。

Mosquittoは2015年2月にリリースされたver1.4からWebsokcetsをサポートしています。Configファイル(local.conf)にExtra listnerとしてWebsocketsを追加すれば、MQTTに加えてWebsocketsによるデータ配送を行うことも可能です。

3. Mosquitto-ClientsのインストールとMQTT通信の確認

Mosquittoのテストをするため、MQTTクライアント(mosquitto-clients)をローカル環境のVMやPCにインストールして、Cloudnに立てたMosquittoに対してPub/Subを行ってみます。

overview3

MQTTのPub/Subは、以下のコマンドでそれぞれ実行します。

ホスト名/IPアドレスは、上記1で作成したVMのIPアドレスを入力してください。

vm_ip

トピック名は、例えば”Sensor/Tamachi/16F”のように「/」(スラッシュ)で区切ることで階層構造を持たせ、メッセージの投げ先・受け先を指定することができます。また、トピック名には「#」(シャープ)をワイルドカードとして利用できます。

CloudnのIPアドレスに対して、Subscribeコマンドを実行した状態でPublishコマンドを実行してください。Subscriber側でメッセージが受信できれば、Cloudnを介したMQTT通信が成功しています。もしできない場合は、IPアドレス、ポート開放、トピック名などを確認してみてください。

4. Arduinoのプログラム作成

今回はDHT22というタイプの温度・湿度センサーを使用します。また、Arduino用のMQTTクライアントには「PubSubClient」、JSONデータの生成用に「ArduinoJson」のライブラリを利用します。DHT22、PubSubClient、ArduinoJsonはそれぞれ以下のサイトからダウンロードを行い、Arduinoディレクトリのlibrariesに配置してください。

Arduinoにアップロードするプログラムは以下の通りです。

5. 結果の確認

Arduino IDEのシリアルモニタを起動すると、センサデータからJSONデータが生成されていることがわかります。

arduino_console

また、<3>でインストールしたMosquitto-Clientsからsubscribeを実行すると、Cloudnに送信されたセンサデータを手元の端末で受信することができます。

今回は、CloudnのComputeを活用してセンサデータをMQTT通信でクラウドに送信する方法をご紹介しました。

※本記事の内容は、Cloudnの活用方法の一例を示したものであり、お客様の環境・構成において動作することをお約束するものではありません。 従いまして、本記事の内容によって生じたトラブルや損害についても、弊社では責任を負いかねますのでご了承ください。
また、本記事の内容に関してのサポートは行っておりませんので、予めご了承ください。

ブログフッダ

投稿日:

カテゴリ:

前の記事・次の記事

サイドニュー

カテゴリー

最近の記事

バックナンバー