Arduino WiFi Shield не смог связаться с локальным сервером - PullRequest
0 голосов
/ 15 апреля 2019

Мне нужно отправить данные из 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 не получено.

...