Tutorial del Internet de las Cosas y Bluetooth con el ESP32
Juan Antonio Villalpando
Volver al índice del tutorial
____________________________
116B.- ESP32 envía temperatura y humedad a MySQL. PHP.
- El ESP32 crea dos números aleatorios llamados temperatura y humedad, cada 5 segundos. Envía esos números a MySQL por PHP.
- El archivo PHP se encuentra en kio4.com/appinventor/php/esp32_mysql.php
- Ese archivo contiene este código PHP
esp32_mysql.php |
<?php
// Juan Antonio Villalpando.
// http://kio4.com
// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
$db_host="localhost";
$db_name="nombre_base_datos";
$db_login="nombre_usuario";
$db_pswd="contraseña";
// 2.- CONEXION A LA BASE DE DATOS
$link = new mysqli($db_host, $db_login, $db_pswd, $db_name);
// 3.- RECOGIDA DE DATOS DEL FORMULARIO
$temperatura = $_GET['temperatura'];
$humedad = $_GET['humedad'];
// 4.- INSERCIÓN DE DATOS
mysqli_query ($link, "INSERT INTO esp32_temp (Temperatura,Humedad) VALUES ('$temperatura','$humedad')");
print("Agregada temperatura: ");
print($temperatura);
print(" y humedad: ");
print($humedad);
mysqli_close($link);
?>
|
- Recibe mediante GET dos datos: la temperatura y la humedad.
- Los guarda en la base de datos, en la tabla esp32_temp.
- Devuelve el valor de la temperatura y humedad agregados.

_____________________________________________________________
1.- El ESP32 actúa como cliente, envía datos a un servidor externo y recibe una respuesta.
temperatura_humedad.ino |
#include <WiFi.h>
const char* ssid = "Nombre_de_tu_red_Wifi";
const char* password = "La_clave_de_tu_Wifi";
const char* host = "kio4.com";
int temperatura = 0;
int humedad = 0;
void setup(){
Serial.begin(115200);
delay(10);
// Conecta a la red wifi.
Serial.println();
Serial.print("Conectando con ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Conectado con WiFi.");
// Esta es tu IP
Serial.print("Esta es tu IP: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
}
void loop(){
delay(5000);
Serial.print("Conectando con ");
Serial.println(host);
// Clase cliente
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("Fallo en la conexión.");
return;
}
// Datos a enviar.
temperatura = random(0,100);
humedad = random(0,100);
// Linea de petición
String url = "/appinventor/php/esp32_mysql.php";
url += "?temperatura=";
url += temperatura;
url += "&humedad=";
url += humedad;
Serial.println(url);
// Esto es lo que se enviará al servidor.
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Rebasado 5 segundos.");
client.stop();
return;
}
}
// Lee todas las líneas que recibida del servidor.
while(client.available()) {
String lineas = client.readStringUntil('\r');
Serial.print(lineas);
}
Serial.println("Conexión cerrada.");
}
|
_____________________________________________________________
3.- Estructura de la base de datos.


_____________________________________________________________
4.- Comentarios.
- Consulta este tutorial: appinventor/169Z_javascript_mysql_realtime.htm
_______________________________
|