SIM 800L,Arduino,MySQL数据上传

SIM 800L,Arduino,MySQL数据上传,mysql,arduino,sim800l,Mysql,Arduino,Sim800l,我正在尝试将Arduino传感器数据结果上传到一个表中,该表是在一个远程MySQL数据库中创建的,它使用了经典的GET方法,并将myfile.php文件放在我的网站中 目前,我可以通过以下链接发布数据: 每次我尝试在浏览器中发布此链接时,都会在表中添加一行具有正确值的新行 当我尝试使用我的Arduino代码和SIM800l shield调制解调器(手机SIM插入的东西)时,我遇到了问题。好像出了什么事 我正在使用以下代码: #include <SoftwareSerial.h> S

我正在尝试将Arduino传感器数据结果上传到一个表中,该表是在一个远程MySQL数据库中创建的,它使用了经典的GET方法,并将myfile.php文件放在我的网站中

目前,我可以通过以下链接发布数据:

每次我尝试在浏览器中发布此链接时,都会在表中添加一行具有正确值的新行

当我尝试使用我的Arduino代码和SIM800l shield调制解调器(手机SIM插入的东西)时,我遇到了问题。好像出了什么事

我正在使用以下代码:

#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(7, 3);

void setup()
{
  gprsSerial.begin(19200);
  Serial.begin(19200);
 
 Serial.println("Config SIM900...");
  delay(2000);
  Serial.println("Done!...");
  gprsSerial.flush();
  Serial.flush();

  // attach or detach from GPRS service 
  gprsSerial.println("AT+CGATT?");
  delay(100);
  toSerial();


  // bearer settings
  gprsSerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
  delay(2000);
  toSerial();

  // bearer settings
  gprsSerial.println("AT+SAPBR=3,1,\"APN\",\"TM\"");
  delay(2000);
  toSerial();

  // bearer settings
  gprsSerial.println("AT+SAPBR=1,1");
  delay(2000);
  toSerial();
}


void loop()
{
   // initialize http service
   gprsSerial.println("AT+HTTPINIT");
   delay(2000); 
   toSerial();
 
 

   // set http param value
   gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://mywebsite.epizy.com/myfile.php?d1=2.3&d2=3.0""); 
   delay(2000);
   toSerial();

   // set http action type 0 = GET, 1 = POST, 2 = HEAD
   gprsSerial.println("AT+HTTPACTION=0");
   delay(6000);
   toSerial();

   // read server response
   gprsSerial.println("AT+HTTPREAD"); 
   delay(1000);
   toSerial();

   gprsSerial.println("");
   gprsSerial.println("AT+HTTPTERM");
   toSerial();
   delay(300);

   gprsSerial.println("");
   delay(10000);
}

void toSerial()
{
  while(gprsSerial.available()!=0)
  {
    Serial.write(gprsSerial.read());
  }
}
#包括
软件串行gprsSerial(7,3);
无效设置()
{
gprsSerial.begin(19200年);
连载《开始》(19200);
Serial.println(“Config SIM900…”);
延迟(2000年);
Serial.println(“完成!”);
gprsSerial.flush();
Serial.flush();
//连接或断开GPRS服务
gprsSerial.println(“AT+CGATT?”);
延迟(100);
toSerial();
//承载设置
println(“AT+SAPBR=3,1,\“CONTYPE\”,“GPRS\”);
延迟(2000年);
toSerial();
//承载设置
gprsSerial.println(“AT+SAPBR=3,1,\“APN\”,\“TM\”);
延迟(2000年);
toSerial();
//承载设置
gprsSerial.println(“AT+SAPBR=1,1”);
延迟(2000年);
toSerial();
}
void循环()
{
//初始化http服务
gprsSerial.println(“AT+HTTPINIT”);
延迟(2000年);
toSerial();
//设置http参数值
println(“AT+HTTPPARA=\“URL\”,\”http://mywebsite.epizy.com/myfile.php?d1=2.3&d2=3.0""); 
延迟(2000年);
toSerial();
//设置http操作类型0=GET,1=POST,2=HEAD
gprsSerial.println(“AT+HTTPACTION=0”);
延迟(6000);
toSerial();
//读取服务器响应
gprsSerial.println(“AT+HTTPREAD”);
延迟(1000);
toSerial();
gprsSerial.println(“”);
gprsSerial.println(“AT+HTTPTERM”);
toSerial();
延迟(300);
gprsSerial.println(“”);
延迟(10 000);
}
void toSerial()
{
而(gprsSerial.available()!=0)
{
Serial.write(gprsSerial.read());
}
}
从串行监视器中,我有:

Config SIM900...
Done!...
AT+CGATT?

+CGATT: 1

OK
AT+SAPBR=3,1,"CONTYPE","GPRS"

OK
AT+SAPBR=3,1,"APN","TM"

OK
AT+SAPBR=1,1

OK
AT+HTTPINIT

OK
AT+HTTPPARA="URL","http://sosardgio89.epizy.com/wd3.php?d1=23&dAT+HTTPACTION=0

OK

+HTTPACTION: 0,200,851
AT+HTTPREAD

+HTTPREAD: 851
<html><body><script type="text/ja
AT+HTTPTERM

OK
Config SIM900。。。
完成!。。。
AT+CGATT?
+CGATT:1
好啊
AT+SAPBR=3,1,“连续类型”、“GPRS”
好啊
AT+SAPBR=3,1,“APN”,“TM”
好啊
AT+SAPBR=1,1
好啊
AT+HTTPINIT
好啊
AT+HTTPPARA=“URL”http://sosardgio89.epizy.com/wd3.php?d1=23&dAT+HTTPACTION=0
好啊
+HTTPACTION:0200851
AT+HTTPREAD
+HTTPREAD:851

警告:
mysql.*
扩展从PHP 5.5.0开始就被弃用,从PHP 7.0.0开始就被删除。相反,应该使用或扩展。选择mysql API时,请参阅以获取更多帮助。除了sql注入的问题外,还需要使用带有参数的准备语句,您应该尝试使用调试它,并将错误处理添加到您的代码中。您如何知道“上载成功”?您绝对确定web服务器上的php代码被arduino攻击了吗?我想,从这个回答:+HTTPACTION:0200851。
<?php
$conex = mysql_connect("sql7.freemysqlhosting.net","sql1234567","1234567");

if(!$conex){
    die("non ok server <br />".mysql_error());
}
else{
echo ("DONE");
print ("DONE");}



$db = mysql_select_db("sql1234567", $conex);

if(!$db){
    die("non ok database <br />".mysql_error());
}


//$Boton = $_POST["strBoton"];
//$Boton = $_GET["strBoton"];

$sql = "INSERT INTO Save_Data (Date,Time,Value_1,Value_2) VALUES (NOW(),NOW(),'".$_GET["d1"]."','".$_GET["d2"]."') ";   

$res = mysql_query($sql,$conex);

?>