我有两个问题。 我在python中使用MQTT从heroku网页接收消息。 我的heroku网页上有两个文本框(value1和value2)。我用MQTT将值发送到python脚本。在
此代码有效: 如果值1大于10,则指示灯亮起;如果值2大于10,则指示灯亮起。在
def on_message(client, userdata, msg):
if(msg.topic=="/send/value1/to/led"):
if ( int(msg.payload) > 10):
GPIO.output(led, GPIO.HIGH)
if(msg.topic=="/send/value2/to/led"):
if ( int(msg.payload) > 10):
GPIO.output(led, GPIO.HIGH)
我的第一个问题。 我想要这个:如果值1和值2之和大于10,则指示灯亮起。 此代码不起作用。
^{pr2}$有人能帮我吗?在
我的第二个问题。
我有另一个heroku网页,我尝试接收消息。
我输入这个:import mysql.connector as mc
在我的heroku网页上,我得到这样的错误:没有命名的模块mysql.connector。我还使用要求.txt文件。在
有人能帮我吗? 非常感谢你!在
这个问题有点难回答,因为你问的是两个不同的问题,所以我只讲第一个问题,鼓励你把第二个问题分开。在
看看你的代码,我认为问题与你嵌套语句的方式有关。我认为问题是on_message回调每次被调用时都会收到一条消息,因此第二个条件永远无法满足。但鉴于我不确定你的空白是否准确,这是不清楚的。在
但是,我会避免以这种方式开始使用if语句,只需使用库中的message_callback_add函数(我假设您使用的是Paho客户机)来调用两个独立的函数,然后使用全局函数传递变量。然后使用while循环处理这两个变量。以下是文档:https://pypi.python.org/pypi/paho-mqtt/1.1#callbacks。这将为你提供一个更干净的方法,应该很容易开始工作。在
下面是一些示例代码:
我是从内存中完成的,所以可能会有错误,但它说明了使用基于主题的回调、全局变量和while循环来处理结果的基本原理。在
相关问题 更多 >
编程相关推荐