将手机与ESP8266连接

时间:2016-08-22 07:04:20

标签: amazon-web-services raspberry-pi mqtt esp8266 nodemcu

我正在开发家庭自动化项目,我想将移动应用程序连接到ESP8266。

  • 我可以将消息从移动应用程序发布到设置为代理的AWS服务器。 (工作)

  • 我可以将消息从AWS发布到Raspberry PI。 (工作)

  • 我还可以将Raspberry PI的Mqtt消息发布到NodeMCU / ESP8266。 (工作)。

但是当我试图将所有这些设置在一起时,问题就出现了。从AWS发布消息时,Raspberry PI会收到该消息,但它不会反映在NodeMCU / ESP8266上。

这是code in use

这就是我在ESP8266中使用的内容。当我从Raspberry PI发布时它工作正常,即使我在我的移动设备上连接PI将MQTT客户端应用程序正常工作。但是当我从AWS发布时,ESP8266没有任何反应,但是PI能够接收消息。

1 个答案:

答案 0 :(得分:0)

您的问题应与消息的相关保留标志。发布者可以指示代理将最后发送的消息传递给所有新订阅者。这是通过将retain标志设置为true来完成的。当代理获得保留消息时,它知道必须将消息推送给新订户。此功能对于使新订户以与其他订户相同的状态加速非常有用,否则在发布消息后,只有已经连接的客户端才能接收它(RasPi)而不是新订户(NodeMCU)。 / p>