編集履歴一覧に戻る
Makato-kanのアイコン画像

Makato-kan が 2024年10月24日11時22分53秒 に編集

文章の見直し

本文の変更

## 初めに: ラズベリーパイにMQTTブローカーの設定をする方法です。 MQTTはaptコマンドでインストールできるmosquittoを使います。  センサーデータを転送する目的に使うので、パスワード設定だけしています。 ## 用語: ブローカー データの受信・配信をする機能 パブリッシャー データの送信をする機能 サブスクライバー データの配信をうける機能 トピック 配信するデータの事 ※トピック以外はプログラムで、ブローカーとパブリッシャーが常時起動しているプログラムになるイメージです。 ※ここではmosquittoというプログラムを使います。 ![MQTTのイメージ](https://camo.elchika.com/4f3606bb298a9d463481acf54afd1ecd2ff9901a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f66373831653764372d303336352d343131662d613663362d3663623238333931346464342f31613865346631382d653637372d343661352d396464342d393339633663303337326634/) ### 必要な物:  ラズベリーパイ (ラズパイ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送信します。](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/)

-