如何从MPU陀螺仪发送的字节数组中获取整数

伦纳德

我正在尝试在HTML网站上读出MPU数据。我正在使用MQTT进行连接,并使用ESP8266发送数据。这工作得很好,但是我的问题是esp只是发送字节数组,而我不知道如何将它们转换为数值。

这是MQTT发送数据时JavaScript控制台向我显示的内容:

[Log] Buffer [51, 50] (2) 
[Log] Buffer [51, 50] (2) 
[Log] Buffer [51, 50] (2) 
[Log] Buffer [51, 50] (2) 
[Log] Buffer [51, 50] (2) 
[Log] Buffer [51, 50] (2) 

在我的代码中,我尝试将值转换为字符串,因为MQTT似乎没有发送普通整数。

if (myMPU.readByte(MPU9250_ADDRESS, INT_STATUS) & 0x01)
{
  myMPU.readAccelData(&myResultAcc);
}

myMPU.updateTime();

//myResultAcc.printResult();
//myResultGyro.printResult();
//myResultMag.printResult();

//i think this converts a undefined value into a string
char str[12];
sprintf(str, "%d", myResultAcc);
Serial.println(str);
client.publish("esp/gyro",str);
Serial.println();

delay(600);
哈迪尔布

所有MQTT负载都是字节数组,这意味着它可以轻松传输所有内容。

您可以使用paho客户端从HTML页面中接收的字节数组中读取整数。您需要使用类型化数组,并且使用哪种排序取决于您尝试读取的整数的大小。假设您有2个字节,则可能是16位整数,因此需要一个Int16Array

var intArray = Int16Array.from(buffer);
var value = intArray[0];

你可以在我的博客找到一个例子在这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章