我有 2 个 nodeMCU 模块,我想将它们连接到 MQTT 代理并每 5 秒发送一些数据。
我试图实现的拓扑类似于 [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 。
为此项目编写了 2 个 lua 脚本,我已使用 ESPlorer 将它们上传到模块中。
对于第一个模块,它以 STATIONAP 模式连接到我的工作 wifi,并使用 SSID nodeMCUwifi 创建自己的网络,基本密码为 10 个字符“1234567890”。连接后,脚本将随机值发送到 MQTT 主题。
对于第二个模块正确连接到 nodeMCUwifi,它被分配了一个 IP 地址,但它无法连接到 MQTT 代理。
当我尝试使用我的智能手机连接到 nodeMCUwifi 时(只是为了测试连接,我无意使用这个系统来处理繁重的互联网负载,只有 MQTT 消息)即使我输入了密码,我也会收到一条消息“发生身份验证错误”正确,或者(在极少数情况下)它连接但立即断开连接。
我将不胜感激任何解决此问题的想法。谢谢你。
编辑:在 AP 配置中,我将 auth 参数设置为 3,我在下面粘贴了我的一部分代码。
cfg.ssid="ESP8266_"..node.chipid();
cfg.pwd="1234567890"
cfg.auth=3
wifi.ap.config(cfg);
现在我的笔记本电脑和智能手机连接到模块创建的 wifi,但仍然无法连接到互联网。我可以 ping 模块,但我无法 ping 8.8.8.8 或 MQTT 代理 IP 或其他任何东西。