我正在使用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\"");
我可以在串口监视器上显示变量值。
可能是什么问题以及如何解决它?
答案 0 :(得分:1)
它不是将变量值发送到数据库的正确方法。
mySerial.println("AT+HTTPPARA=\"URL\",\"http://www.website.com/test.php?vehicleNo\"");
你期望上面代码块中的vehicleNo
在arduino执行链接时会被其值替换,但它不会。如果你想表现出你所期望的,那就比你做得更复杂。
首先定义两个类型为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);
这将做你需要的。祝你好运。