我正在做一个家庭自动化项目,在这个项目上,我通过局域网连接使用Python控制从手机(Android(连接到树莓派的灯和继电器。我在我的第一个版本中使用了flask网络服务器(Pi(,并在手机上请求和kivy,取得了成功。
然而,对于我的第二个版本,我想要一个更双向的通信协议,因为目前从pi向手机获取数据的唯一方法是通过对请求的响应。第二个版本的目标之一是允许更多的自动化和其他设备切换,因此我希望我的手机在状态变化时得到通知。一种方法是定期检查更改,但我想知道是否可以对pi进行编程,以通知我状态更改。这将更类似于主机-主机网络,而不是主机-客户端。我现在唯一能想到的方法就是在我的手机上安装一个网络服务器和pi。
谢谢你的帮助。
另一种可能性是使用MQTT。这是一个轻量级的发布-订阅协议,设计时考虑到了小型设备。
它也在TCP/IP层上运行,但当在有电源限制或带宽限制的设备上使用时,它往往是比传统Web服务更好的选择。
您可以根据需要添加任意数量的订阅者,以具有双向通信功能。
以下是一个基本示例:https://medium.com/@gaikwadchetan93/人机实时通信-使用-mqtt-9ea42551475d