Arduino:AT 命令的字符串到十六进制字符串表示

问题描述 投票:0回答:1

传感器值:

浮球温度=29.5; 浮子湿度=32.56; 浮点光级别=17365.83; 二氧化碳= 452; 噪音= 583;

String dataString = ""+String(温度)+","+String(湿度)+","+String(lightLevel)+","+String(co2)+","+String(噪音)+"" ;

字符串将如下所示:“29.50,32.56,17365.83,452,583”

十六进制字符串看起来像:“32392e35302c33322e35362c31373336352e38332c3435322c353833aa”

我使用的调制解调器仅接受 AT 命令,并且要求数据负载为“十六进制格式字符串的负载(最大长度为 242 字节)”

命令示例:AT+SEND=1:1:32392e35302c33322e35362c31373336352e38332c3435322c353833aa

我无法在 Arduino 中以编程方式创建“AT+SEND=1:1:32392e35302c33322e35362c31373336352e38332c3435322c353833aa”。

如何将 dataString 转换为 HexString ?

string hex arduino-uno
1个回答
0
投票

ChatGPT 给我以下似乎有效的信息:

String stringToHex(String input) {
  String hexString = "";
  char buffer[3]; // buffer to hold hex values

  for (int i = 0; i < input.length(); i++) {
    sprintf(buffer, "%02X", input[i]);
    hexString += buffer;
  }

  return hexString;
}
© www.soinside.com 2019 - 2024. All rights reserved.