我正在使用STM32duino通过WiFi和MQTT协议将传感器数据发送到远程服务器。我正在使用STM32 Discovery开发板B-L475VG-IOT01A作为发布者,并使用另一台计算机作为订阅者来读取主题。由于我的运动传感器以5k Hz采样,因此我需要非常快地将数据发送到服务器,以确保我的主板在尽可能多的时间内收集数据。目前,我可以实现3数数组的最快时间是160毫秒。为了优化发送时间的速度,我以字节为单位发送数字。但是,以字节为单位发送后,即使指示发布操作成功,也没有在我的命令提示符终端订阅的终端上打印结果。
当前,我正在使用paho.mqtt.client python库。我将代码从print(str(msg.payload))更改为print(str(msg._topic.decode('utf-8')),但仍然无法正常工作。
我尝试了此操作,但它不显示以字节为单位的收到的消息:
def on_message(client, userdata, msg): # The callback for when a PUBLISH
message is received from the server.
print("Message received-> " + msg.topic + " " + str(msg.payload))
这也是:
def on_message(client, userdata, msg): # The callback for when a PUBLISH
message is received from the server.
print("Message received-> " + msg.topic + " " + str(msg._topic.decode('utf-8'))'''
发布者方的代码:
uint8_t x[3] = {10,20,300}; client.publish("sensordata","can publish");
if (client.publish("sensordata", (const uint8_t*) x, sizeof(x)) == true)
{
Serial.println("Success sending message"); } else { Serial.println("Error
sending message"); }
没有错误消息。只是我的控制台上什么都看不到。