Мне нужно отправить данные из Arduino через щит WiFi на мой локальный сервер и обновить базу данных, и я застрял, не зная, где и как это пошло не так. Мой Arduino может подключаться как к Интернету, так и к моему локальному серверу через порт 80. Мой сервер настроен с использованием xampp, а мой файл .php находится в каталоге htdocs.
Я использую HTTP POST на стороне сервера, фрагмент кода для получения HTTP POST выглядит следующим образом:
$test_str = "";
if(isset($_POST["test_str"])){
echo "OK";
$test_str = $_POST['test_str'];
}
else echo "POST not recieved ";
$lid = $test_str;
echo $lid;
$ lid - это просто переменная, которую я собираюсь использовать позже.
Мой код Arduino:
String test_str = "";
int testing = 1000;
const char* host = "192.168.0.169";
const int httpPort = 80;
ESP8266Client client;
test_str = "test_str=";
test_str += testing;
void loop(){
if(client.connect(host, httpPort)){
Serial.print("Connected to server ");
client.println("POST /connect.php HTTP/1.1");
client.println("Host: 192.168.0.169");
client.println("User-Agent: Arduino/1.0");
client.println("Connection: close");
client.println("Accept: */*");
client.println("Content-Type: Application/x-www-form-urlencoded");
client.print("Content-Length: ");
client.println(test_str.length());
client.println("");
client.println(test_str);
Serial.println(" POST Done");
}
}
На странице сервера 192.168.0.169/connect.php должно быть напечатано OK и полученное значение, а вместо этого просто показано, что POST не получено.