En este video explico cómo enviar la temperatura que lee un LM35 a un servidor local Apache usando una HTTP REQUEST con el método POST a un archivo …
Original source
En este video explico cómo enviar la temperatura que lee un LM35 a un servidor local Apache usando una HTTP REQUEST con el método POST a un archivo …
Original source
37 responses to “Tutorial #6 ESP8266 – MySQL + PHP en Servidor Local”
hola quisiera saber donde descargo esa libreria ESP8266WiFi
Cordial saludo y gracias por el tutorial, me gustaria saber si es posible hacer lo mismo pero sin ESP8266
¿La IP se coloca tanto en "string strhost" como en "IPAdress ip"?
(La siguiente biblia se trata sobre el problema "Fallo de conexion")
Hola amigo! Primero que todo, acabo de conseguir la comunicación de mi Nodemcu con phpMyAdmin, así que muchas gracias por el tutorial. Ahora aprovecho de hacerte una consulta. Lo que pasa es que a pesar de seguir el tutorial al pie de la letra, el paso final me costó muchísimo lograrlo, y siento que lo logré por pura suerte, probando todo. El problema era la IP.
Todo me había funcionado hasta el momento de empezar a enviar datos con el ESP, donde me salía "Fallo de conexion". El resto de las pruebas funcionaban, te explico. Al colocar mi IP en la dirección del formulario html (eso de reemplazar "localhost" por la IP) funcionaba bien. Ingresar los datos de chipID y temperatura en ese formulario también funcionaba, y se veía reflejado en la tabla del phpMyAdmin sin problema. También pude comprobar que la conexión wifi de mi ESP estaba funcionando, ya que probé otro proyecto aparte, uno con Firebase, y no había ningún problema, la conexión wifi se hacía correctamente (con eso descarté que mi placa estuviera defectuosa). Entonces, si me sigues, es evidente que el problema era exclusivamente la conexión del ESP con el PHP, posiblemente debido al código.
Resulta que el puerto serie del IDE me arrojaba ese mensaje de "Fallo de conexion" a pesar de haber colocado correctamente mi IP al comienzo del código (string strhost), al igual que había colocado correctamente la URL del PHP (string strurl). Y bueno, probé haciendo de todo, hasta que algo me funcionó: configurar también la IP que aparece en una línea de más abajo, en la instrucción "IPAdress ip()".
Al principio no había querido colocarle mi IP porque en el tutorial no haces ninguna mención acerca de esa instrucción, como que te saltas esa parte del código al explicarlo. De hecho, la IP que muestras en tu string strhost es distinta a la de tu IPAdress ip, entonces en ese momento me dije a mí mismo… eh, con configurar la de arriba basta. Pero no fue así. Le di un montón de vueltas al asunto, vi cómo un montón de gente preguntaba lo mismo aquí en el tuto y también en tu página. Pero al final me di cuenta de eso, de que si ambas instrucciones no tenían la IP, la conexión no anda bien. Aprovecho de mencionar que a las instrucciones IPAdress gateway e IPAdress subnet no les hice nada, las deje tal cual como las muestras.
Entonces ahora te pregunto, ¿es normal esto? Pienso que tal vez se te pasó decirlo, o lo tomaste por obvio en el código al publicarlo… o tal vez el mío es un caso particular, no sé… quiero saber qué piensas. Sé que esto me pasa por no saber programar el ESP, pero por esa misma razón pregunto. Y ahora que al fin me funciona, es cuando recién comienzo a jugar con el código y dejarlo a mi gusto, para mi aplicación. Pero en fin, te lo dejo a modo de realimentación. Te agradezco mucho el tutorial, y te agradecería aun más si pudieras confirmarme esta inquietud.
Y si termino ayudando a alguien con el mismo problema, cuánto mejor, que por lo que veo varios se han quebrado la cabeza con el famoso "Fallo de conexion".
Hola muy buen video,una consulta de donde puedo descargar la libreria <ESP8266WiFi.h> gracias.
me sale error "Fallo de conexion" ayúdeme por favor!!!
Exelente Video 🙂 gracias por compartir lo que sabes.
Muy buen video yo tengo una duda que cambiaria para que en vez de que sea el servidor local se suba a internet (hosting) gracias!!
Buenos días, he seguido tu tutorial pero tengo un problema. Me imprime esto
chipId: 333971
…..
WiFi conectado
192.168.1.***
pero luego me imprime:
fallo de conexión, tienes idea de porqué será?? Gracias!!!
Buenas, soy un el creador de contenido de un pequeño canal de electrónica y me interesó el tema, aun que luego de seguir tus pasos me di cuenta que la sintaxis que usas está obsoleta en lo que respecta a PHP. Sin saber nada del tema indagué mucho y probé mucho, finalmente logre hacer que funcionara y esta es la sintaxis que resultó para mi, estoy trabajando en un sistema operativo ubuntu:
<?php
$servername = "localhost";
$username = "root";
$password = "root"; //En esta parte puse una contraseña que tuve que definir al instalar
$dbname = "tutorial";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$chipid = $_POST ['chipid'];
$temperatura = $_POST ['temperatura'];
$sql = "INSERT INTO tabla (id, chipid,fecha,temperatura)
VALUES (NULL, '$chipid', CURRENT_TIMESTAMP, '$temperatura')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
Espero les sirva a todos!
hola, necesito ayuda, seguí todos los pasos pero al momento de llenar el formulario y enviar me aparece: "Datos ingresados correctamente." pero no se agrega nada a la tabla, me falta hacer algo previo? de antemano muchas gracias.
Puedo usarlo con mi placa de Arduino??? o tengo que cargar el sotfware a la placa de ESP…??
Pregunta el LM35 solo es de temperatura y no humedad cierto.
mysqli_query($conexion, "INSERT INTO `datos` (`id`, `chipId`, `fecha`, `temperatura`) VALUES (NULL,'$chipid',CURRENT_TIMESTAMP, '$temperatura');" );
esa linea me arroja esta falla…
Notice: Undefined variable: chipid in C:xampphtdocsenviardatos.php on line 10
simpre falla mi conexion cual seria el problema ? 🙁
Disculpa como puedo hacer para encender un led teniendo 1 y 0 en la base segun esos valores encender el led cuando es 0 en la base de datos este apagado y cuando sean uno en la base de datos sea 1 se encienda ayuda
Muchas gracias por este tutorial!
Que tal una pregunta tengo que realizar un proyecto prácticamente igual sólo que mi base de datos la tengo que alojar en MongoDB podrias darme una idea de que es lo que tendría que hacer?
Gracias y saludos
Alguien que me pase la libreria esp8266wifi.h
hola, gracias por el vídeo, como podria cargar en un servidor con dominio? gracias
Hay alguna manera que pueda usar el uniform server usando ip dinamica?, no me lanza el server con el php se cae todo debido a mi conexión dinamica. Gracias de antemano
pongo este comentario para los que tengan un error , al parecer actualmente se dio de baja la funcion de php mysql_connect() y actualmente se usa mysqli_connect() ,https://secure.php.net/manual/es/function.mysqli-connect.php
Muchas gracias por tus videos!
Saludos desde España
como siempre muy bueno, gracias por compartir!!!!
Hola, gracias por estos vídeos, me están sirviendo mucho.
Estoy en el paso de formulario mediante localhost, funciona. Pero no si le pongo la IP.
Cual es el problema?
Hola, si quisiera extraer un dato de la base de datos al esp8266 como puedo hacer?
muy buen video, yo estoy estudiando sobre este tema porque quiero comenzar IoT pero necesito crear la base de datos y el servidor para poder ingresar desde cualquier red y no tener que estar en una local el cliente web y mi esp8266, algún consejo que me pueda ayudar, gracias de antemano
un tutorial con el esp 8266, mysql php y un sistema de registro web con un lector de huellas ? seria interesante
Buen video, saludos de Peru .
Gracias por toda la información profe, tengo conocimientos sobre la mitad de mi proyecto, pero quería conectarlo a una base de datos y se me hizo un mundo conectar el esp8266 a una base de datos! Gracias, enserio
tengo un problema al compilar el programa me genera un error.. he revisado todo y realmente no se que pueda ser..
Enviando datos a SQL…
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /uni/prueba.php was not found on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
<hr>
<address>Apache/2.4.27 (Win32) OpenSSL/1.0.2l PHP/7.1.8 Server at 192.168.0.101 Port 80</address>
</body></html>
Muchas gracias por estos tutoriales, que me han parecido realmente muy interesantes y que estudiaré con calma. Quiero adaptar tu código para poder usarlo con un arduino Mega y una sheld SIM900. Entiendo que solo ha de cambiar la parte del codigo que usa el modulo ESP, pero la parte de comunicaciones (MQTT, MySQL y PHP) será la misma, supongo. Me lo podrias confirmar?
Gracias de nuevo.
acabo de descubrir tu canal … excelentes temas !! muchas gracias !!!
Gracias Amigo, estoy haciendo un proyecto y lo voy a integrar con laravel framework. Gracias por tu aporte amigo! un fuerte Abrazo desde Pasto – Colombia!
Hola amigo, no consigo esa librería exacta para el módulo, aparecieron muchas pero no exactamente como la que tienes y las otras el código fuente no es compatible con este código del ide que tienes, puedes decirme por favor dónde descargaste esa librería? Muchas gracias es el mejor video que he visto muy bien explicado, lo que me bloqueó fue la librería
Muchas gracias por el tutorial, muy completo, yo lo modifique con el sensor de temperatura y humedad DHT11, espero a alguien le sirva, hay que modificar los php y la base de datos con un nuevo campo humedad
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <DHT.h>
//-
—————–VARIABLES GLOBALES————————-int contconexion = 0;
const char *ssid = "xxxxx";
const char *password = "xxxxx";
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
unsigned long previousMillis = 0;
char host[48];
String strhost = "192.168.0.104";
String strurl = "/iot/enviardatos.php";
String chipid = "";
//-
—–Función para Enviar Datos a la Base de Datos SQL——-String enviardatos(String datos) {
String linea = "error";
WiFiClient client;
strhost.toCharArray(host, 49);
if (!client.connect(host, 80)) {
Serial.println("Fallo de conexion a MySql");
return linea;
}
client.print(String("POST ") + strurl + " HTTP/1.1" + "rn" +
"Host: " + strhost + "rn" +
"Accept: */*" + "*rn" +
"Content-Length: " + datos.length() + "rn" +
"Content-Type: application/x-www-form-urlencoded" + "rn" +
"rn" + datos);
delay(10);
Serial.print("Enviando datos a SQL…");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() – timeout > 5000) {
Serial.println("Cliente fuera de tiempo!");
client.stop();
return linea;
}
}
// Lee todas las lineas que recibe del servidro y las imprime por la terminal serial
while(client.available()){
linea = client.readStringUntil('r');
}
Serial.println(linea);
return linea;
}
//————————————————————————-
void setup() {
// Inicia Serial
Serial.begin(115200);
Serial.println("");
Serial.print("chipId: ");
chipid = String(ESP.getChipId());
Serial.println(chipid);
// Conexión WIFI
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED and contconexion <50) { //Cuenta hasta 50 si no se puede conectar lo cancela
++contconexion;
delay(500);
Serial.print(".");
}
if (contconexion <50) {
//para usar con ip fija
IPAddress ip(192,168,0,156);
IPAddress gateway(192,168,0,1);
IPAddress subnet(255,255,255,0);
WiFi.config(ip, gateway, subnet);
Serial.println("");
Serial.println("WiFi conectado");
Serial.println(WiFi.localIP());
}
else {
Serial.println("");
Serial.println("Error de conexion");
}
}
//-
————————LOOP——————————-void loop() {
unsigned long currentMillis = millis();
if (currentMillis – previousMillis >= 10000) { //envia la temperatura cada 10 segundos
previousMillis = currentMillis;
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(h) || isnan(t)) {
Serial.println("Falla al leer el sensor DHT11!");
return;
}
Serial.println(t);
Serial.println(h);
enviardatos("chipid=" + chipid + "&temperatura=" + String(t, 2) + "&humedad=" + String(h, 2));
}
}
Hola, buen día
Si quiero ocupar un dominio que tengo en un servidor en Internet, ¿dónde colocó la IP?
Sin querer borré un comentario de este video, les pido disculpas.