Makato-kan が 2022年09月24日18時26分32秒 に編集
文章の編集
本文の変更
ラズベリーパイにMQTTブローカーの設定をする方法です。 すいません、かなり雑な説明です。詳しい事はCQ出版社の月刊誌インターフェース11月号の付録を 読まれると良いかと思います。 ![MQTTのイメージ](https://camo.elchika.com/4f3606bb298a9d463481acf54afd1ecd2ff9901a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f66373831653764372d303336352d343131662d613663362d3663623238333931346464342f31613865346631382d653637372d343661352d396464342d393339633663303337326634/) パブリッシャー: データを送信している人 ブローカー:パブリッシャーからのデータを受信する人 データをサブスクライバーに送信する人 サブスクライバー: パブリッシャーのデータを受け取る人 トピック:配信するデータのこと ### 必要な物: 無線LANの親機 ラズベリーパイ (ラズパイ3以上のモデルが良いです) M5StickやらESP-WROOM-02等 ### 概要: ラズベリーパイにMQTTのブローカーを設定します ESP-WROOM-02などでMQTTのパブリッシャーを設定し データを送信できるようにします ラズベリーパイにMQTTブローカーとサブスクライバーを設定し データを受信できるようにします。 ### ブローカーの設定: ソフトのダウンロード ``` $ sudo apt install mosquitto ``` インストール終了するとmosquittoというサーバーが 動くようになります。 ### パスワードの設定: パスワードは テキストエディタなどで "ユーザ名:パスワード"のファイルを作り ``` $ mosquitto_passwd ``` コマンドで暗号化します。 暗号化したファイル名を/etc/mosquitto/mosquitto.confに 指定すれば出来上がりです。 ### パブリッシャーの設定:
たとえばESP-WROOM-02で設定して温度湿度データを送信する記事があります。
M5StickCでMQTTのパブリッシャーを使った記事があります。 [M5StickCで二酸化炭素と温度・湿度の測定値をMQTT送信します。](https://elchika.com/article/7c2fd4bb-3b37-45d0-b8e9-d75bdd828f0a/) 他にESP-WROOM-02で設定して温度湿度データを送信する記事があります。
[ESP-WROOM-02とDHT11で温度・湿度をMQTT送信するよ](https://elchika.com/article/44f9743e-ecd2-4b92-9204-5a124d91d3ea/) ### サブクスライバーの設定: ソフトのダウンロード ``` $ sudo apt install mosquitto-clients ``` サブスクライバーコマンド例 ``` $ mosquitto_sub -h MQTT.local -u pi -P password -t sensor1 -F @Y,@m,@d,"@H:@M",%p ``` 受信データを記録したい場合は標準出力をファイルにしてコマンド実行しました。 ``` $ mosquitto_sub -h MQTT.loca -u pi -P password l -t sensor1 -F @Y,@m,@d,"@H:@M",%p >>/home/pi/senser.csv ``` ※ブローカーホスト名 MQTT.local トピック名 sensor1 ### ちょっとした事: 一つのトピック名で複数のパブリッシャーがあると そのトピック名を指定したサブスクライバーは複数の パブリッシャーから送られたデータをすべて受け取る事になります。 ある意味便利かもしれませんが、同じタイミングでデータ送信 された場合取りこぼしなく受け取れるかは試した事ありません。