MQTT ブローカーに接続し、5 秒ごとにデータを送信する 2 つの nodeMCU モジュールがあります。
私が達成しようとしているトポロジは、[router]<==[nodeMCU#1]<==[nodeMCU#2] のようなものです。
[nodeMCU#1] は wifi エクステンダーのようですが、仕事では複数の nodeMCU を使用して IoT アプリケーション用のメッシュのような方法で使用することを計画しています。
両方で、 nodeMCU-flasher を使用してhttps://github.com/nodemcu/nodemcu-firmware/releases/tag/0.9.6-dev_20150704からダウンロードした最新の (float) リリースをフラッシュしました。
このプロジェクトでは、2 つの lua スクリプトを作成し、ESPlorer を使用してそれらをモジュールにアップロードしました。
最初のモジュールでは、STATIONAP モードで職場の wifi に接続し、10 文字の基本パスワード「1234567890」を使用して、SSID nodeMCUwifi で独自のネットワークを作成します。接続後、スクリプトはランダムな値を MQTT トピックに送信します。
2 番目のモジュールは nodeMCUwifi に正しく接続され、IP アドレスが割り当てられますが、MQTT ブローカーに接続できません。
スマートフォンを使用して nodeMCUwifi に接続しようとすると (接続をテストするためだけに、インターネットの負荷が高い場合にこのシステムを使用するつもりはなく、MQTT メッセージのみ)、パスワードを入力したにもかかわらず、「認証エラーが発生しました」というメッセージが表示されます。または(まれに)接続してもすぐに切断されます。
この問題を解決するためのアイデアをいただければ幸いです。ありがとうございました。
編集: AP 構成で auth パラメータ セットを 3 に追加しました。コードの一部を以下に貼り付けています。
cfg.ssid="ESP8266_"..node.chipid();
cfg.pwd="1234567890"
cfg.auth=3
wifi.ap.config(cfg);
これで、ラップトップとスマートフォンがモジュールによって作成された Wi-Fi に接続されますが、インターネットにはまだ接続されていません。モジュールに ping を実行できますが、8.8.8.8 や MQTT ブローカー IP などに ping を実行できません。