无法使用SIM900 RS232模块上的AT命令将变量数据发送到php服务器

无法使用SIM900 RS232模块上的AT命令将变量数据发送到php服务器,php,arduino-uno,at-command,sim900,Php,Arduino Uno,At Command,Sim900,我正在使用SIMCOM SIM900模块和Arduino uno。我可以使用AT+PARA命令将静态数据发送到服务器,但在仅发送变量数据时无法这样做。变量持续存储从传感器接收的数据。 是因为变量的值不断变化吗 静态格式: mySerial.println("AT+HTTPPARA=\"URL\",\"http://www.website.com/test.php?vehicleNo=7575\""); 使用变量: vehicleNo=function(); mySerial.println

我正在使用SIMCOM SIM900模块和Arduino uno。我可以使用AT+PARA命令将静态数据发送到服务器,但在仅发送变量数据时无法这样做。变量持续存储从传感器接收的数据。 是因为变量的值不断变化吗

静态格式:

 mySerial.println("AT+HTTPPARA=\"URL\",\"http://www.website.com/test.php?vehicleNo=7575\"");
使用变量:

vehicleNo=function();

mySerial.println("AT+HTTPPARA=\"URL\",\"http://www.website.com/test.php?vehicleNo\"");
我能够在串行监视器上显示变量值


问题可能是什么?可以采取什么措施来解决它?

将变量值发送到数据库不是正确的方法

mySerial.println("AT+HTTPPARA=\"URL\",\"http://www.website.com/test.php?vehicleNo\"");
当arduino执行链接时,您预计上述代码块中的
vehicleNo
将被其值替换,但不会被替换。如果你想完成你所期望的,它比你所做的更复杂

首先定义两个char类型的数组,如“url”和“val”,如下所示:

char url[160];
char val[10]; 
然后需要在请求部分进行一些编辑,如下所示:

dtostrf( vehicleNo,7, 2, val);   
sprintf(url, "AT+HTTPPARA=\"URL\",\"http://www.3dedn.com/test.php?vehicleNo=%s\"",val );
现在您的链接位于数组“url”中

 mySerial.println(url);
这会满足你的需要。祝你好运