連載
» 2016年05月23日 07時00分 UPDATE

MQTTで始めるIoTデバイスづくり:MQTTで始めるIoTデバイスの作り方 第1回:「MQTT」を知り「Mosquitto」を導入する (1/3)

この連載では「MQTT」を利用して簡単なIoTデバイスを製作して、ネット上のサービスに接続できるまでを紹介します。電子工作やアナログ制御に不慣れでも読み進められる内容としますので、気軽に挑戦してみてください。

[今岡通博,MONOist]

はじめに

 軽量プロトコルとしてIoT分野で注目を集めているMQTT(Message Queue Telemetry Transport)を取り上げ、「MQTTで始めるIoTデバイスの作り方」と題した連載を始めます。

 この連載では、IT系あるいはWeb系のエンジニアが実際に簡単なIoTデバイスを製作し、ネット上のサービスに接続できるまでを目標にしています。デバイス側のマイコンはArduinoを用いますが、「Lチカ」程度は経験があり、TCP/IPについても基本的なところは習得されていることを前提に進めていきます。

目次

・第1回 MQTTの概要とMosquittoの導入

・第2回 MQTTプロトコル解析

  • 第3回 ESP8266でMQTT
  • 第4回 ArduinoをMQTTブローカーに接続
  • 第5回 Arduinoで部屋の明るさをPublish
  • 第6回 スマホからLEDをON/OFF

連載で扱うデバイスとシステム構成について

  • デバイス
「Arduino Nano」 「Arduino Nano」

 IoTデバイスに搭載する核となるマイコンは「Arduino Nano」、組み合わせる通信モジュールにはWi-Fiモジュール「ESP8266」を用います。センサーと制御デバイスはアナログフォトセンサーと発光ダイオードのみ。回路構成にはブレッドボードを用いますので、はんだ付けなしで作業できます。

  • システム

 MQTTのメッセージ配信サーバであるmosquittoはLAN内に構築します。ほぼ同じ操作で外部のMQTTブローカー(メッセージ配信サーバ)も使えますが、外部MQTTブローカーや商用サービスとの連携については別の機会に紹介したいと思います

 MQTTプロトコルの基礎を押さえるという観点から既存のプロトコルスタックやライブラリーは用いず、直接TCPでメッセージをやりとりします。そのため、Arduinoへ書き込む実行ファイルは非常にコンパクトなものとなりました。

「MQTT」とは何か 特徴的な「Pub/Subモデル」

 MQTTはIoTの世界で注目されているプロトコルの1つです。比較的軽量であるために処理能力の低いマイコンなどでも実装可能といわれています。それでは概要から見ていきましょう。

 MQTTは1999年にIBMとEurotechによりドラフトが作製された規格です。ベースはTCP/IPですが、HTTPサーバとWebブラウザのようなユーザーインタフェースを介した人に対するサービスではなく、M2M(Machine to machine)いわゆる機械同士の通信に使われるプロトコルを指向しています。

 通信モデルはメッセージを送信する「Publisher」(出版者)と受け取る「Subscriber」(購読者)、それらのメッセージを仲介する「Broker」(仲介者)を模した「Pub/Subモデル」と表現されます。

photo MQTTの「Pub/Subモデル」

 これは私たちが新聞や雑誌を購読するのに例えられます。読者がSubscriberで新聞や雑誌を発行するのがPublisherです。Brokerは本屋だったり新聞配達所だったりします。これらのメッセージは「トピック」により分類されます。

 Publisherとsubscriberの間で示し合わせた任意のトピックを介して、メッセージをやりとりします。このトッピクはPublisherあるいはSubscriber固有の物でもなく、またBroker内でユニークである必要はありません。

 同一のトピックに対して複数の異なるPublisherがメッセージを投稿することもできますし、複数のSubscriberがそれを購読することも可能なのです。トピックは“ topic/section/sub ”のようにスラッシュで区切られた文字列が用いられます。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.