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