ESP8266-01 POST-запрос к MySQL

Я пытаюсь сделать POST запрос к базе данных MySQL, которую я настроил. Я пробовал различные уроки безрезультатно. Я могу использовать PHP POST Страница, которую я создал для ввода данных через браузер, например:

<?php
//post.php
include 'connect.php';
var_dump($_GET);
$id = $_GET['id'];
$value = $_GET['value'];
$id = mysql_real_escape_string($id);
$value = mysql_real_escape_string($value);

mysql_query(
"INSERT INTO iot (value, id) VALUES ('$value', '$id');")
?>

Сначала я пытался зайти на свой собственный сайт PHP и отправить POST запрос с температурой и точкой росы, как это:

//tempandhumidity2
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include "SimpleDHT.h"
SimpleDHT11 dht11;
const char* ssid = "nameofssid";
const char* password = "password";

int ledPin = 2; // GPIO2

void setup() {

Serial.begin(115200);                //Serial connection
WiFi.begin(ssid, password);   //WiFi connection

while (WiFi.status() != WL_CONNECTED) {  //Wait for the WiFI connection completion
delay(500);
Serial.println("Waiting for connection");
}
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}

void loop() {
HTTPClient http;
http.begin("http://192.168.43.162/iot/post.php");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpCode = http.POST("id=12&value=35");
Serial.println(httpCode);
if(httpCode == HTTP_CODE_OK)
{
Serial.print("HTTP response code ");
Serial.println(httpCode);
String response = http.getString();
Serial.println(response);
}
else
{
Serial.println("Error in HTTP request");
}

http.end();
}

Это возвращает:

Waiting for connection
Waiting for connection
Waiting for connection
Waiting for connection
Waiting for connectionConnecting to nameofssid
Use this URL to connect: http://192.168.43.176/
200
HTTP response code 200
Connected successfullyarray(0) {
}
<br />
<b>Notice</b>:  Undefined index: id in <b>C:\xampp\htdocs\iot\post.php</b> on line <b>4</b><br />
<br />
<b>Notice</b>:  Undefined index: value in <b>C:\xampp\htdocs\iot\post.php</b> on line <b>5</b><br />

Использование веб-браузера с http://10.0.0.90/iot/post.php?id=14&value=33 возвращает:

Connected successfullyarray(2) { ["id"]=> string(2) "14" ["value"]=> string(2) "33" }

Я пытался сделать GET запрос просто посмотреть, могу ли я обратиться к внешнему сайту здесь:

//tempandhumidity4
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>const char *SERVER_WIFI_SSID = "nameofssid";
const char *SERVER_WIFI_PASS = "password";

void setup()
{
Serial.begin(115200);
Serial.println("");
Serial.println("Connecting to WiFi ");
WiFi.begin(SERVER_WIFI_SSID,SERVER_WIFI_PASS);
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}

Serial.println("Connected");
}
void loop(){
HTTPClient http;
http.begin("http://www.nfl.com");
int httpCode = http.GET();
Serial.println(httpCode);
if(httpCode == HTTP_CODE_OK)
{
Serial.print("HTTP response code ");
Serial.println(httpCode);
String response = http.getString();
Serial.println(response);
}
else
{
Serial.println("Error in HTTP request");
}

http.end();
}

Это возвращает следующее:

Connecting to WiFi
.........Connected
400
Error in HTTP request
400

Любые идеи или предложения будут высоко оценены? Проблемы возникают, когда я подключаю свой ESP8266 к своему телефону, а затем пытаюсь выполнить запрос, я получаю возврат «-1», что означает отказ в соединении. Я попробовал это несколько раз и не могу понять это. Может быть, телефон не позволяет мне отправить это вручную вместо использования браузера? Есть идеи?

2

Решение

Иногда размещение вашего вопроса поможет вам решить его. Были две проблемы:

  1. Мой маршрутизатор давал мне другой IP на компьютере, который я использовал в качестве веб-сервера. Вероятно, после каждого раза я его сбрасываю.
  2. О чем я только думал!! Post.php использует GET. Вот новый код:
//post.php
include 'connect.php';
var_dump($_POST);
$id = $_POST['id'];
$value = $_POST['value'];
$id = mysql_real_escape_string($id);
$value = mysql_real_escape_string($value);

mysql_query(
"INSERT INTO iot (value, id) VALUES ('$value', '$id');")

Теперь я могу оставлять сообщения. Я получаю одну ошибку, которую я буду искать еще где:

Предупреждение: Неожиданный символ на входе: состояние » (ASCII = 18) = 0 в C: \ XAMPP \ HTDOCS \ ВГД \ post.php онлайн 5

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]