Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

PythonでMQTT通信

はじめに

 近年はIoT技術の発展により、TCP/IPネットワークで利用できる通信プロトコルの一つであるMQTT(Message Queueing Telemetry Transport )が注目されています。MQTTは送信側が送るデータをデータ領域に一旦保持しながら、受信側の処理が完了するのを待たずに次の処理へ移る方式で、軽量であることからネットワーク帯域幅を最適化できます。MQTTの詳細は以下の記事が参考になります。

MQTTとは | かもめエンジニアリング

 本記事では、PythonでMQTT通信を実現する方法を紹介します。IoT技術が今後より実装がなされていく中でMQTT通信が多用されると思います。その際に、本記事の内容が環境構築を標準化や環境構築の工数削減につながれば幸いです。

より実務的に辞書型のデータや画像データの送受信について知りたい方はこちらの記事をご覧ください。

note.com

 

 

 

1. MQTTブローカー:Mosquitto

MQTTブローカーはオープンソースで実装します。本記事では以下のMosquittoを使用します。

mosquitto.org

Linux環境でMosquittoをインストールして、起動するには以下のコマンドを実行します。

 

2. SubscriberとPublisher

以下のGithubでもPythonコードを公開しています。

github.com

2.1 Subscriber

以下のPythonコードがSubscriberです。

 

2.2 Publisher

以下のPythonコードがPublisherです。

 

3. ライブラリのインストール

pip installで必要なライブラリをインストールします。

 

4. MQTT通信の確認

今回はMQTTブローカーが起動するマシン上でpublisher.pyとsubscriber.pyを実行します。subscriber.pyを実行後に、publisher.pyを実行するとMQTT通信の動作を確認できます。もしMQTTブローカーと異なるマシンでpublisher.py等を実行する際には、BROKER_IP_ADDRにMQTTブローカーのIPアドレスを指定してください。

 

5. MQTT通信が可能なDockerコンテナの紹介

上記のMQTT通信が可能なDockerコンテナについて以下の記事で紹介しています。

chantastu.hatenablog.com

 

オススメ書籍

 

 

 

スキル修得&転職

 近年、DXの進展に伴うデジタル人材の需要の高まりに追いついていない状況が続いていると経済産業省がホームページで記載している通り、DX人材、IT人材が不足しているのが現状です。さらにコンピュータの性能向上やAI技術の発展により、よりDX人材、IT人材の需要が高まってきます。さらには、今後の長期間安定して職がある業種とも考えられます。

以下の求人では、IT業界の転職や、IT未経験だけどIT人材を志望する就活を支援してくれます。無料で会員登録もできるので、まずは登録だけでもして様子を見てみてはいかがでしょうか?

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

 

おわりに

本記事では、PythonでMQTT通信を実現する方法を紹介しました。IoT技術が今後より実装がなされていく中でMQTT通信が多用されると思います。その際に、本記事の内容が環境構築を標準化や環境構築の工数削減につながれば幸いです。