Makato-kanのアイコン画像
Makato-kan 2022年09月24日作成 (2024年02月20日更新)
セットアップや使用方法 セットアップや使用方法 閲覧数 1810
Makato-kan 2022年09月24日作成 (2024年02月20日更新) セットアップや使用方法 セットアップや使用方法 閲覧数 1810

ラズベリーパイにMQTTブローカーの設定して pub/subを試してみる。

ラズベリーパイにMQTTブローカーの設定して pub/subを試してみる。

初めに:

ラズベリーパイにMQTTブローカーの設定をする方法です。
MQTTはaptコマンドでインストールできるmosquittoを使います。 
センサーデータを転送する目的に使うので、パスワード設定だけしています。

用語:

ブローカー データの受信・配信をする機能
パブリッシャー データの送信をする機能
サブスクライバー データの配信をうける機能
トピック 配信するデータの事
※トピック以外はプログラムで、ブローカーとパブリッシャーが常時起動しているプログラムになるイメージです。
※ここではmosquittoというプログラムを使います。

MQTTのイメージ

必要な物:

ラズベリーパイ (ラズパイ3以上のモデルが良いです)
ネットワーク接続された、M5StickやらESP-WROOM-02等

操作1:

ラズベリーパイにMQTTブローカーとサブスクライバーを設定し
 データを受信できるようにします。

ソフト(mosquitto)のダウンロード

$ sudo apt install mosquitto

インストール始まると色々聞いてきますが、yesで答えると良いです。
終了するとmosquittoというサーバーが動くようになります。

$ ps ax |grep mosquitt
    704 ?        Ss    20:53 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

### パスワードの設定:
  テキストエディタなどでパスワードファイルを新規作成し、

sudo vi /etc/mosquitto/passwd.txt

中身は

pi:password

といったファイルを作成します。

"ユーザ名:パスワード"のファイルを作り暗号化します。

$ sudo mosquitto_passwd

暗号化したファイル名を
/etc/mosquitto/mosquitto.confに
追記すれば出来上がりです。
追記はどこでもいいです
追記例

password_file /etc/mosquitto/passwd.txt

操作2:

ラズベリーパイで動作試験もしたいので以下のソフトを組み込みます。
 これはラズベリーパイにパブリッシャーとサブスクライバーのソフトをインストールしています。

$ sudo apt install mosquitto-clients

データ送受信のテスト:

ラズベリーパイでデータの送信受信を試してみます。
 ターミナル画面を2つ用意して1つを送信、もう一つを受信用につかいます。
 -tで指定するトピックはsensor1です

データ受信コマンド

mosquitto_sub -h MQTT.local -u pi -P password -t sensor1 -F @Y,@m,@d,"@H:@M",%p

コマンド実行するとプロンプト表示がなくなり 受信待ち状態になります。

パブリッシャーのテスト:

もう一つのターミナル画面で以下のコマンドを実行します。

mosquitto_pub -h MQTT.local -u pi -P password -t sensor1  -m test

そうするとmosquitto_subを実行しているターミナルに受信時刻とtesttという文字が表示されます
そうすれば 送受信成功です。

mosquitto_pubコマンド説明

-m 文字列送信します
 他に-lやら-fを使うと便利かも

その他:

拙い文章ですが、M5StickCとESP-WROOM-02でセンサーの値をMQTTで送信する記事を
作成しておりました。
ご参考になれば幸いです。
M5StickCで二酸化炭素と温度・湿度の測定値をMQTT送信します。
 他にESP-WROOM-02で設定して温度湿度データを送信する記事があります。
ESP-WROOM-02とDHT11で温度・湿度をMQTT送信するよ

Makato-kanのアイコン画像
屋外で温度湿度を測定し記録するので、壊れやすいと思い大量にDHT11とESP-WROOM-02を購入したのですが思いのほか壊れなかったので、何にでもDHT11をくっつけています。
ログインしてコメントを投稿する