基本上,我创建了一个php Web应用程序,它读取名为 temp 的GET变量并将其保存到MySql数据库中。 我的脚本看起来像
<?php
function Connection(){
$server="localhost";
$user="root";
$pass="";
$db="esp";
$connection = mysql_connect("localhost", "root", "");
if (!$connection) {
die('MySQL ERROR: ' . mysql_error());
}
mysql_select_db($db) or die( 'MySQL ERROR: '. mysql_error() );
return $connection;
}
$link = Connection();
$temp=$_GET["temp"];
$query = "INSERT INTO `data` (`temp`) VALUES ('".$temp."')";
mysql_query($query,$link);
mysql_close($link);
echo "Done !";
?>
另一方面,我的ESP8266连接到同一个网络,所以我想连续发出GET请求,以便保存在数据库中。 scketch看起来像:
#include <SPI.h>
#include <SoftwareSerial.h>
#include <stdlib.h>
SoftwareSerial ser(2, 3);// RX, TX
void setup() {
Serial.begin(9600);
ser.begin(115200);
ser.println("AT+RST");
}
void loop(){
ser.println("AT+CIPSTART=\"TCP\",\"192.168.43.176\",80");
if(ser.find((char*)"Error")){
Serial.println("AT+CIPSTART error");
return;
}
// prepare GET string
String getStr = "GET /arduino/esp.php?temp=200";
// getStr += "temp=20";
// getStr += "\r\n\r\n";
//GET /arduino/esp.php?temp=30\r\n\r\n
Serial.println(getStr);
// send data length
String cmd = "AT+CIPSEND=";
cmd += String(getStr.length());
ser.println(cmd);
Serial.println(cmd);
if(ser.find((char*)">")){
ser.print(getStr);
Serial.println("Message sent!");
}
else{
ser.println("AT+CIPCLOSE");
// alert user
Serial.println("AT+CIPCLOSE");
}
delay(1000); // WAIT FIVE MINUTES BEFORE SENDING AGAIN
}
我尝试过发送来自Postman的http请求并且它的工作原理,但不是我的原型(Arduino + ESP8266)。 我想知道是否有一些库可以简化编码工作。