Я пытаюсь отправить данные на локальный веб-сервер, работающий на Apache2 на Raspberry Pi 3. IP-адрес 192.168.0.16. Я собираюсь использовать панель запуска TIVA-C для отправки POST-запросов на сервер с помощью модуля Wi-Fi ESP8266-01, однако, перед тем, как реализовать все, что я хотел попробовать, и посмотреть, вводите ли команды AT вручную в ESP8266-01 через UART (Используя FTDI и последовательный монитор Arduino) будет работать. В конце команд ESP возвращает:
>
busy s...
Recv 180 bytes
SEND OK
CLOSED
Но база данных в phpMyAdmin никогда не обновляется. В чем может быть дело?
Это последовательность команд AT, которые я пробовал до сих пор, но безрезультатно.
AT+CIPSTART="TCP","192.168.0.16",80
CONNECT
OK
AT+CIPSEND=162
OK
(I send the following POST request all in a single line)
POST /index.php HTTP/1.0\r\n
Host: 192.168.0.16\r\n
Accept:*/*\r\nContent-Length: 40\r\n
Content-Type: application/x-www-form-urlencoded\r\n
\r\n
idSensor=16555&ch1=1&ch2=0&ch3=0&ch4=1
>
busy s...
Recv 162 bytes
SEND OK
CLOSED
Это код моего веб-сервера
<?php
header("Content-type: text/html; charset=\"utf-8\"");
$idSensor = 0;
$ch1 = 0;
$ch2 = 0;
$ch3 = 0;
$ch4 = 0;
//print_r($_POST);
if($_POST){
$idSensor = $_POST['idSensor'];
$ch1 = $_POST['ch1'];
$ch2 = $_POST['ch2'];
$ch3 = $_POST['ch3'];
$ch4 = $_POST['ch4'];
$conexion = mysqli_connect("localhost:3306","admin","admin4321", "Parqueo-matic");
if(!$conexion){
echo "Error: No se pudo conectar a MySQL.".PHP_EOL;
echo "errno de depuración: ". mysqli_connect_errno().PHP_EOL;
echo "error de depuración: ". mysqli_connect_error().PHP_EOL;
}else{
$query = "INSERT INTO `Datos` (`ID`, `Hora`, `ID_Sensor`, `P1`, `P2`, `P3`, `P4`) VALUES (NULL, CURRENT_TIMESTAMP, '$idSensor', '$ch1', '$ch2', '$ch3', '$ch4');";
mysqli_query($conexion, $query);
echo "Receiving data";
}
mysqli_close($conexion);
}
$conexion = mysqli_connect("localhost:3306","admin","admin4321", "Parqueo-matic");
if(!$conexion){
echo "Error: No se pudo conectar a MySQL.".PHP_EOL;
echo "errno de depuración: ". mysqli_connect_errno().PHP_EOL;
echo "error de depuración: ". mysqli_connect_error().PHP_EOL;
}else{
$query = "SELECT * FROM `Datos` ORDER BY ID DESC LIMIT 10";
$result = mysqli_query($conexion,$query);
}
mysqli_close($conexion);
header("refresh: 1");
?>
<!DOCTYPE html>
<html lang='en'>
<head>
<!-- Required meta tags -->
<meta http-equiv='Content-Type' content='text/html' charset='utf-8'/>
<meta name='viewport' content='width=device-width, initial-scale=1, shrink-to-fit=no'>
<title>PMatic</title>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
</head>
<body class="container">
<br>
<h1><strong>Parqueo-Matic</strong></h1>
<br>
<table class="table">
<thead class="bg-primary text-white">
<tr>
<th>ID Sensor</th>
<th>Parqueo 1</th>
<th>Parqueo 2</th>
<th>Parqueo 3</th>
<th>Parqueo 4</th>
</tr>
</thead>
<tbody>
<?php
while($row = mysqli_fetch_array($result)){
echo "<tr>
<td>".$row['ID_Sensor']."</td>
<td>".$row['P1']."</td>
<td>".$row['P2']."</td>
<td>".$row['P3']."</td>
<td>".$row['P4']."</td>
</tr>";
}
?>
</tbody>
</table>
<br>
</body>
</html>
Есть ли способ отладки или узнать, почему мой POST-запрос не приводит к каким-либо изменениям в базе данных? Спасибо