IoT機器向け通信プロトコル「MQTT」で新サービスを作る

2020年11月20日 16:52

  • LINEで送る
IoT機器向け通信プロトコル「MQTT」で新サービスを作る

自分もですが、多くの企業が参入している IoT機器分野では、「MQTT(Message Queue Telemetry Transport)」が注目されており、エンジニアの方々の話題にもちょくちょく出てきます。技術的な難易度も低いので、特に WEB 系というか IT 系の人でも実装できるライブラリもあり、小規模な企業でも安価に IoT 機器開発ができる土壌になっています。

MQTT は TCP/IP に代わる通信プロトコル。オーバーヘッドが小さく、低い処理能力の端末でも実装できるため、まさに小型化・省バッテリーを求められる IoT 機器向けだとなっています。

実際、今までのインターネットで使われ発展した通信プロトコルは、最終的に人間が受信することを前提に設計されたものだと思うのですが(WEBサーバからブラウザに表示された HTML を人間が読む)、MQTT は M2M(機械同士)の通信を前提にデザインされています。
特徴は軽量データ、QoS(到達保証)、通信生存確認(Will)、Pub/Sub型通信。
「Pub/Sub型」とは送信する「Publisher」と受信する「Subscriber」仲介する「Broker」という構造になっていること。Publisher は受信側の処理を気にせずただトピックを発信するだけ、相手がどこの誰かも知りません。中継サーバーである Broker が処理をするという関係性になっています。特徴からも分かる通りに、通信が確立されなかった場合に再送するなど徹底的にデータを保証して届ける設計になっており、開発コスト的にも優しい技術になっています。

なにはともあれ、Publisher と Subscriber はクライアントになるので Broker である中継サーバの構築が必要です。
これは「mosquitto」というMQTT Broker があるので、ダウンロードしてインストールするだけです。

■Eclipse Mosquitto(公式・英語)
https://mosquitto.org/

初心者には Windows版もあるので、サーバの知識がなくても気軽に構築できます。
ダウンロードページには、ラズパイや Ubuntu など手順やコマンドが明記されているのでそのまま実行するだけです。

関係ないですが、サイズが小さい小さいとか、人によっては聞こえるモスキート音である「蚊(mosquito)」をイメージして命名されたかと思ったら、こっちのモスキートとはスペルが違いました。

構築してしまえば、ターミナル画面を複数出してコマンドを打つだけでも、送信・受信ができているのが確認できます。


WEBサーバに実装するには、「Paho」というオープンソースのライブラリがあります。

■Eclipse Paho | The Eclipse Foundation
https://www.eclipse.org/paho/

需要からすると Python が多いと思うのですが、JAVA なども用意されています。
WEB系の人だとここでつまづいてしまうと思うのですが、「Mosquitto-PHP」「phpMQTT」というのも一応ありました。

■GitHub - mgdm/Mosquitto-PHP: A wrapper for the Eclipse Mosquitto™ MQTT client library for PHP.
https://github.com/mgdm/Mosquitto-PHP

■GitHub - bluerhinos/phpMQTT: a simple php class to connect/publish/subscribe to a MQTT broker
https://github.com/bluerhinos/phpMQTT

わりと簡単に実装できるので、Raspberry Pi のセンサーと WEBサーバを連携させるなど IoT 機器をガンガン作っていきたいですね。

  

2019/05/26
Raspberry Pi のポートを開放せずに簡単にデータの送受信
スマートホームで音声入力させる際、GoogleHome はグローバル IP アドレスに属した情報じゃないと処理しない仕様になっている。そうすると必然的にルーター越えが必要になり、あまり晒したくないポートの開放などしないといけない。ポートの開放することなく、無料のクラウドサービスを利用して実現する。

2015/11/20
つながる。キーワードは「Iot」モノのインターネット version X.0
昨年よりクリエイターの中でじわじわと広がるキーワード「IoT」。「loT」ではなく「IoT」。その字面から、よく「エル・オー・ティー」と間違われていますが「アイ・オー・ティー」です。すなわち、「モノのインターネット(Internet of Things)」の意味を指す、ものづくりの人なら、そわそわしてしまう言葉です…

2013/03/21
サイネージ用にセンサー系を自作してみた
テテルが正式オープンした後、どう進めていくかの打ち合わせにて。いろんな夢のようなアイデアや仕様が出ていました。 「天気予報を表示させたい」 「人が近づいたら挨拶をしたい」・・・などなど。ただシーポイントはインターネットの会社なので、全くの異分野であって、このへんの機械を作るスキルが…

2020/04/28
L2スイッチでセグメント構成。「GS116E」レビュー
NETGEAR から販売されているレイヤー2スイッチ「GS116E」を購入しました!コロナ対応で、自作マスク制作や持ち帰りサイトが乱立する中、僕はネットワーク構築に注目して動いてました。意外にできる人が少ないというか表に出てこないので、需要はあるっぽいです。ちなみに家電量販店などでは、テレワーク需要でル…

2019/05/02
小型タッチ式モニタが8千円で買える時代。持ってると便利。
RaspberryPi を使った電子工作の際に、HDMI 端子で繋げるモニタが無くて不便だったのですが、ふと目にした Amazon のタイムセールで良さげな小型モニタがあったので思わず購入してしまいました。7インチくらいなので、安物の車載ナビ画面くらいの大きさなのですが、今まで50インチくらいの大型ディスプレイしか目…

2020/07/04
DELLサーバの音がうるさいので静音化|noctua NF-A12x25 PWM レビューと交換手順
自宅サーバの音がうるさいので、静音化することにしました。サーバラックはオフィススペースのドアの向こうにあるのですが、3階にいても轟轟と音がうるさく気になっていて、おそらく多くの人がPCとかサーバとかの音に対して「なんか腑に落ちないけど、まぁそんなものだろう」と諦めていることだと思います。PC…

2020/05/12
USB型マイク
ノートPCの USB になんかくっついてるな、と思ってよく見たらコレだった↑1年位前に買ったまま忘れてた、USB型マイク。

2020/06/21
個人宅サーバルームを整理する、ラック内のPC機器や棚を整頓
自宅サーバルームにはコンピュータ機器関連が増えることを見越してサーバを搭載するラックスペースがあるのですが、ようやく重い腰を上げて整理整頓。この個人用自宅サーバ棚は、幅120×奥行60×高さ245cmという巨大収納スペースになっていて、奥の壁面には各種端子があるため巨大なルーターボックスのようになって…

2019/04/20
ホームコンピュータを自作する|無料で家電を AI 自動化
スマートスピーカーの普及で、すっかり一般家庭に定着した自宅家電のオートメーション化なのですが、今回は学習リモコンと連携したホームコンピュータを立ち上げていきます。今回は仕事部屋天井にあるシーリングファン&ライトをコントロールするのが目的。DCモーターが無音過ぎて電源が入っていても全く音がし…

2018/11/17
PS2 を RaspebrryPi 上で動かす検証をする
PS2ゲームにサインもらったという投稿見たら懐かしくなって PS2 引っぱり出したら動きそうもない状態だった。公式発表で今年の9月で完全にサポートを終了し修理受付もしないとのこと。つまり現行機が壊れた時点で絶滅。機能的にはスペック以上のはずの手持ちの Raspberry で動かせないのかな、と思ったら動くらし…

2018/11/05
GoogleHome に違う声で喋らせる
google-home-notifier で喋らせたときに気になるのが、独特の間とイントネーション。日本語に最適化されていることもあり、カタカナを喋らせると「英語を喋る日本人」を完璧になりきった発音も見事としかいいようがないです。でももうちょっと、それっぽい声で語りかけてほしい・・・っていうか、お前の声が飽きたね…

2018/09/05
Raspberry Pi 積層式ケースのブラックとクリアの素材感がカッコイイ
急にいろんなことをやりたくなって、急遽 Raspberry Pi を購入。いつのまにやら仕様がアップグレードされ、現行機は「3B+」というモデルになるそうです。性能が上位互換の他、基盤デザインが多少変わるので、合うケースが違うみたい。LANがギガに対応したため回線のボトルネックもなくなり、買いのモデルになっ…

2018/08/27
FATAL: No bootable medium found! エラーから起動する|VirtualBox
IoT 機器を開発する中で、電子回路はともかく、システム系を実装する際にいちいち実機を提供してると面倒なので VirtualBox に開発環境を構築する。要は PC内に Raspberry Pi のエミュレートを行う。 センサーなどの外部インターフェースの入出力を考えなければ、ラズパイの実機を購入しなくても量産できるので…





同じカテゴリー(技術とデザイン)の記事

このブログの新着情報を配信中!

RSSリーダーに登録することで、新着情報だけを確認することができ便利です。
上のアイコンをクリックしてご登録ください。

見るだけでは飽き足らない、あなた。あなたも小言に参加してみませんか。コメントトラックバック、ご自由にどうぞ。


入力した内容は表示されます
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。
過去記事
デザイン特集
グルメ特集
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 32人
QRコード
QRCODE
プロフィール
yasukawa
yasukawa
浜松在住クリエイター&デザイナーが仕事のことについて頑張って書いてみる。
【認知心理学、コミュニケーションデザイン、情報デザイン、UI/UX、インフォメーションアーキテクト、サイネージ(Scala)、3Dモデリング、データベースアプリ構築(FlileMaker)、Flash Script 2.0&3.0、サーバ構築(Linux)、IoTセンサー&電子工作(Arduino)
文部科学省後援情報検定 情報デザイン試験合格
日本商工会議所販売士検定試験2級合格
日本英語検定協会実用英語検定試験3級合格
デザインカレッジ 外部講師(WEBマーケティング)
日本最大級レビューメディア「zigsow」2021年ベストレビュワー