ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

¿Quieres aprender a enviar datos desde tu ESP32 o ESP8266 al servidor LAMP de tu Raspberry Pi? ¡Entonces estás en el lugar indicado! En este artículo te enseñaremos cómo realizar esta conexión de manera sencilla y efectiva. Sigue leyendo para descubrir todos los detalles y empezar a enviar información desde tus dispositivos IoT.

En este proyecto, creará un cliente ESP32 o ESP8266 que envía una solicitud HTTP POST a una Raspberry Pi. LÁMPARA Servidores (METROentrada, Apache, METROSQL, PAGCV). La Raspberry Pi tiene un script PHP para insertar datos (valores de sensores) en una base de datos MySQL.

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

También recibirá una página web que muestra las lecturas del sensor, las marcas de tiempo y otra información almacenada en la base de datos. Puede visualizar sus datos localmente desde cualquier navegador de su red.

Nota: Puedes acceder y seguir este proyecto desde cualquier parte del mundo.

Como ejemplo, usaremos un sensor BME280 conectado a una placa ESP. Puede modificar el código proporcionado para enviar lecturas desde otro sensor o utilizar varias placas.

Para crear este proyecto utilizarás estas tecnologías:

  • Ejecutando el servidor LAMP en Raspberry Pi
  • ESP32 o ESP8266 programado con Arduino IDE
  • Script PHP para insertar datos en MySQL y mostrarlos en una página web
  • Base de datos MySQL para almacenar mediciones.

0. Requisitos

Antes de continuar con este tutorial:

Si estás interesado en la domótica y quieres montar un sistema domótico completo, te recomiendo descargar mi curso de domótica.

Después de preparar tu placa Raspberry Pi con Raspbian OS y un servidor LAMP, puedes continuar con este tutorial.

1. Alojamiento de su aplicación PHP y base de datos MySQL – Raspberry Pi

El objetivo de este proyecto es ejecutar un servidor LAMP en tu Raspberry Pi que te permitirá almacenar valores de sensores del ESP32 o ESP8266. Puedes visualizar los valores desde cualquier navegador de tu red local.

Aquí hay una descripción general de alto nivel:

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Si desea que sus datos sean accesibles desde cualquier lugar, le recomiendo que consulte uno de estos proyectos:

  • Inserte datos ESP32/ESP8266 en la base de datos MySQL usando PHP y Arduino IDE
  • Visualiza los valores de tus sensores desde cualquier parte del mundo (ESP32/ESP8266 + MySQL + PHP)

2. Preparando tu base de datos MySQL

Después de instalar un servidor LAMP y phpMyAdmin en Raspberry Pi, puede iniciar sesión en phpMyAdmin. Luego siga los siguientes pasos para crear su base de datos y tabla SQL.

Abre tu navegador y escribe http://su-dirección-IP-Raspberry-Pi/phpmyadmin), debería ver la página de inicio de sesión para la interfaz web de phpMyAdmin.

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Después de iniciar sesión, debería ver una página similar a:

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Creando una base de datos

1. Elegir «Bases de datos«menú en la parte superior, complete el»Crear base de datos«-Campos:

  • esp_data
  • utf8mb4_general_ci

Luego presione el Crear Botón:

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

¡Eso es todo! Su nueva base de datos ha sido creada exitosamente. Guarde el nombre de su base de datos ahora, ya que lo necesitará más adelante:

  • Nombre de la base de datos: esp_data

Creando una tabla SQL

Después de crear su base de datos, seleccione el nombre de su base de datos en la barra lateral izquierda esp_data:

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Importante: Asegúrate de tener el esp_data Base de datos. Luego haga clic en la pestaña SQL. Si no sigue estos pasos cuidadosamente y ejecuta la consulta SQL, puede crear una tabla en la base de datos incorrecta.

Copie la consulta SQL en el siguiente fragmento:

CREATE TABLE SensorData (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    sensor VARCHAR(30) NOT NULL,
    location VARCHAR(30) NOT NULL,
    value1 VARCHAR(10),
    value2 VARCHAR(10),
    value3 VARCHAR(10),
    reading_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

Ver código sin formato

Abra la pestaña SQL, péguela en el cuadro de consulta SQL (resaltado con un rectángulo rojo) y presione el botón Ir Botón para crear tu tabla:

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Esto debería aparecer cuando su tabla se haya creado correctamente:

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Luego deberías ver tu tabla recién creada con el nombre Datos del sensor en el esp_data Base de datos como se muestra en la siguiente figura:

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

3. Script PHP HTTP POST: insertar datos en la base de datos MySQL

En esta sección, crearemos un script PHP que se encarga de recibir solicitudes entrantes del ESP32 o ESP8266 e insertar los datos en una base de datos MySQL.

Puede ejecutar el siguiente conjunto de comandos en una Raspberry Pi configurada como computadora de escritorio o mediante una conexión SSH.

Si está conectado a su Raspberry Pi a través de una conexión SSH, ingrese el siguiente comando para guardar un archivo en /var/www/html Directorio:

pi@raspberrypi:~ $ nano /var/www/html/post-esp-data.php
ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Nota: Si está siguiendo este tutorial y no está familiarizado con PHP o MySQL, le recomiendo crear exactamente estos archivos. De lo contrario, deberá modificar el boceto ESP proporcionado con diferentes rutas URL.

Copie el siguiente script PHP en el archivo recién creado (post-esp-data.php):

<?php

/*
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/esp32-esp8266-mysql-database-php/
  
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files.
  
  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.
*/

$servername = "localhost";

// REPLACE with your Database name
$dbname = "REPLACE_WITH_YOUR_DATABASE_NAME";
// REPLACE with Database user
$username = "REPLACE_WITH_YOUR_USERNAME";
// REPLACE with Database user password
$password = "REPLACE_WITH_YOUR_PASSWORD";

// Keep this API Key value to be compatible with the ESP32 code provided in the project page. 
// If you change this value, the ESP32 sketch needs to match
$api_key_value = "tPmAT5Ab3j7F9";

$api_key= $sensor = $location = $value1 = $value2 = $value3 = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $api_key = test_input($_POST["api_key"]);
    if($api_key == $api_key_value) {
        $sensor = test_input($_POST["sensor"]);
        $location = test_input($_POST["location"]);
        $value1 = test_input($_POST["value1"]);
        $value2 = test_input($_POST["value2"]);
        $value3 = test_input($_POST["value3"]);
        
        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        } 
        
        $sql = "INSERT INTO SensorData (sensor, location, value1, value2, value3)
        VALUES ('" . $sensor . "', '" . $location . "', '" . $value1 . "', '" . $value2 . "', '" . $value3 . "')";
        
        if ($conn->query($sql) === TRUE) {
            echo "New record created successfully";
        } 
        else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
    
        $conn->close();
    }
    else {
        echo "Wrong API Key provided.";
    }

}
else {
    echo "No data posted with HTTP POST.";
}

function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}

Ver código sin formato

Antes de guardar el archivo, debe $ nombre de base de datos, $nombre de usuario Y $contraseña Variables con sus datos individuales:

// Your Database name
$dbname = "esp_data";
// Your Database user
$username = "root";
// Your Database user password
$password = "YOUR_USER_PASSWORD";

Después de agregar el nombre de la base de datos, el nombre de usuario y la contraseña, guarde el archivo (Ctrl+X, jY Aporte clave) y continuar con este tutorial.

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Cuando intentas acceder a tu dirección IP de RPi en la siguiente ruta URL, obtienes lo siguiente:

http://You-Raspberry-Pi-IP-Address/post-esp-data.php
ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

4. Script PHP: muestra el contenido de la base de datos

Crea otro archivo PHP en /var/www/html Directorio en el que se muestra todo el contenido de la base de datos en una página web. Nombra tu nuevo archivo: esp-data.php

pi@raspberrypi:~ $ nano /var/www/html/esp-data.php
ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Edite el archivo recién creado (esp-data.php) y copie el siguiente script PHP:

<!DOCTYPE html>
<html><body>
<?php
/*
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/esp32-esp8266-mysql-database-php/
  
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files.
  
  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.
*/

$servername = "localhost";

// REPLACE with your Database name
$dbname = "REPLACE_WITH_YOUR_DATABASE_NAME";
// REPLACE with Database user
$username = "REPLACE_WITH_YOUR_USERNAME";
// REPLACE with Database user password
$password = "REPLACE_WITH_YOUR_PASSWORD";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, sensor, location, value1, value2, value3, reading_time FROM SensorData ORDER BY id DESC";

echo '<table cellspacing="5" cellpadding="5">
      <tr> 
        <td>ID</td> 
        <td>Sensor</td> 
        <td>Location</td> 
        <td>Value 1</td> 
        <td>Value 2</td>
        <td>Value 3</td> 
        <td>Timestamp</td> 
      </tr>';
 
if ($result = $conn->query($sql)) {
    while ($row = $result->fetch_assoc()) {
        $row_id = $row["id"];
        $row_sensor = $row["sensor"];
        $row_location = $row["location"];
        $row_value1 = $row["value1"];
        $row_value2 = $row["value2"]; 
        $row_value3 = $row["value3"]; 
        $row_reading_time = $row["reading_time"];
        // Uncomment to set timezone to - 1 hour (you can change 1 to any number)
        //$row_reading_time = date("Y-m-d H:i:s", strtotime("$row_reading_time - 1 hours"));
      
        // Uncomment to set timezone to + 4 hours (you can change 4 to any number)
        //$row_reading_time = date("Y-m-d H:i:s", strtotime("$row_reading_time + 4 hours"));
      
        echo '<tr> 
                <td>' . $row_id . '</td> 
                <td>' . $row_sensor . '</td> 
                <td>' . $row_location . '</td> 
                <td>' . $row_value1 . '</td> 
                <td>' . $row_value2 . '</td>
                <td>' . $row_value3 . '</td> 
                <td>' . $row_reading_time . '</td> 
              </tr>';
    }
    $result->free();
}

$conn->close();
?> 
</table>
</body>
</html>

Ver código sin formato

añade el $ nombre de base de datos, $nombre de usuario Y $contraseña:

// Your Database name
$dbname = "esp_data";
// Your Database user
$username = "root";
// Your Database user password
$password = "YOUR_USER_PASSWORD";

Guarda el archivo (Ctrl+X, jY Aporte clave) y continuar con este proyecto.

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Si intenta acceder a su dirección IP de Raspberry Pi en la siguiente ruta URL, verá lo siguiente:

http://Your-Raspberry-Pi-IP-Address/esp-data.php
ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

¡Eso es todo! Si ve la tabla vacía en su navegador, significa que todo está listo. En la siguiente sección aprenderá cómo insertar datos de su ESP32 o ESP8266 en la base de datos.

5. Preparando tu ESP32 o ESP8266

Este proyecto es compatible con placas ESP32 y ESP8266. Todo lo que necesita hacer es ensamblar un circuito simple y cargar el boceto proporcionado para agregar temperatura, humedad, presión y más a su base de datos cada 30 segundos.

Piezas requeridas

Para este ejemplo, obtenemos los valores del sensor BME280. Aquí hay una lista de las piezas que necesitará para construir el circuito para este proyecto:

Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Esquema

El módulo de sensor BME280 que utilizamos se comunica a través del protocolo de comunicación I2C, por lo que debe conectarlo a los pines I2C del ESP32 o ESP8266.

Cableado BME280 con ESP32

Los pines ESP32 I2C son:

  • GPIO 22: SCL (SCK)
  • GPIO 21: SDA (IDE)

Así que monte su circuito como se muestra en el siguiente diagrama de circuito (lea las instrucciones completas para ESP32 con BME280).

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Recomendaciones de literatura: Guía de referencia de asignación de pines ESP32

Cableado BME280 con ESP8266

Los pines ESP8266 I2C son:

  • GPIO5 (D1): SCL (SCK)
  • GPIO4 (D2): SDA (SDI)

Ensamble su circuito como en el siguiente esquema si está utilizando una placa ESP8266 (lea las instrucciones completas para ESP8266 con BME280).

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Recomendaciones de literatura: Guía de referencia de distribución de pines ESP8266

Código ESP32/ESP8266

Programamos el ESP32/ESP8266 usando Arduino IDE, por lo que el complemento ESP32/ESP8266 debe estar instalado en su Arduino IDE. Dependiendo de la placa que estés utilizando, sigue uno de los siguientes tutoriales:

  • Instale la placa ESP32 en el IDE de Arduino. También necesita instalar la biblioteca BME280 y la biblioteca Adafruit_Sensor.
  • Instale la placa ESP8266 en Arduino IDE: también necesita instalar la biblioteca BME280 y la biblioteca Adafruit_Sensor

Después de instalar los complementos de placa necesarios, copie el siguiente código en su IDE de Arduino, pero no lo cargue todavía. Deberá realizar algunos cambios para que funcione para usted.

/*
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/esp32-esp8266-mysql-database-php/
  
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files.
  
  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

*/

#ifdef ESP32
  #include <WiFi.h>
  #include <HTTPClient.h>
#else
  #include <ESP8266WiFi.h>
  #include <ESP8266HTTPClient.h>
  #include <WiFiClient.h>
#endif

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

// Replace with your network credentials
const char* ssid     = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

// REPLACE with your Domain name and URL path or IP address with path
const char* serverName = "http://example.com/post-esp-data.php";

// Keep this API Key value to be compatible with the PHP code provided in the project page. 
// If you change the apiKeyValue value, the PHP file /post-esp-data.php also needs to have the same key 
String apiKeyValue = "tPmAT5Ab3j7F9";

String sensorName = "BME280";
String sensorLocation = "Office";

/*#include <SPI.h>
#define BME_SCK 18
#define BME_MISO 19
#define BME_MOSI 23
#define BME_CS 5*/

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;  // I2C
//Adafruit_BME280 bme(BME_CS);  // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK);  // software SPI

void setup() {
  Serial.begin(115200);
  
  WiFi.begin(ssid, password);
  Serial.println("Connecting");
  while(WiFi.status() != WL_CONNECTED) { 
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to WiFi network with IP Address: ");
  Serial.println(WiFi.localIP());

  // (you can also pass in a Wire library object like &Wire2)
  bool status = bme.begin(0x76);
  if (!status) {
    Serial.println("Could not find a valid BME280 sensor, check wiring or change I2C address!");
    while (1);
  }
}

void loop() {
  //Check WiFi connection status
  if(WiFi.status()== WL_CONNECTED){
    WiFiClient client;
    HTTPClient http;
    
    // Your Domain name with URL path or IP address with path
    http.begin(client, serverName);
    
    // Specify content-type header
    http.addHeader("Content-Type", "application/x-www-form-urlencoded");
    
    // Prepare your HTTP POST request data
    String httpRequestData = "api_key=" + apiKeyValue + "&sensor=" + sensorName
                          + "&location=" + sensorLocation + "&value1=" + String(bme.readTemperature())
                          + "&value2=" + String(bme.readHumidity()) + "&value3=" + String(bme.readPressure()/100.0F) + "";
    Serial.print("httpRequestData: ");
    Serial.println(httpRequestData);
    
    // You can comment the httpRequestData variable above
    // then, use the httpRequestData variable below (for testing purposes without the BME280 sensor)
    //String httpRequestData = "api_key=tPmAT5Ab3j7F9&sensor=BME280&location=Office&value1=24.75&value2=49.54&value3=1005.14";

    // Send HTTP POST request
    int httpResponseCode = http.POST(httpRequestData);
     
    // If you need an HTTP request with a content type: text/plain
    //http.addHeader("Content-Type", "text/plain");
    //int httpResponseCode = http.POST("Hello, World!");
    
    // If you need an HTTP request with a content type: application/json, use the following:
    //http.addHeader("Content-Type", "application/json");
    //int httpResponseCode = http.POST("{"value1":"19","value2":"67","value3":"78"}");
        
    if (httpResponseCode>0) {
      Serial.print("HTTP Response code: ");
      Serial.println(httpResponseCode);
    }
    else {
      Serial.print("Error code: ");
      Serial.println(httpResponseCode);
    }
    // Free resources
    http.end();
  }
  else {
    Serial.println("WiFi Disconnected");
  }
  //Send an HTTP POST request every 30 seconds
  delay(30000);  
}

Ver código sin formato

Configuración de sus credenciales de red

Debe cambiar las siguientes líneas con sus credenciales de red: SSID y Contraseña. El código contiene comentarios detallados sobre dónde debe realizar los cambios.

// Replace with your network credentials
const char* ssid     = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Configurando el nombre de su servidor

También deberá ingresar su dirección IP de Raspberry Pi para que el ESP publique las lecturas en su servidor LAMP.

const char* serverName = "http://Your-Raspberry-Pi-IP-Address/post-esp-data.php";

Por ejemplo:

const char* serverName = "http://192.168.1.86/post-esp-data.php";

Ahora puedes subir el código a tu tablero. Debería funcionar de inmediato en las placas ESP32 y ESP8266. Si desea aprender cómo funciona el código, lea la siguiente sección.

Así es como funciona el código

Dado que este proyecto ya es bastante extenso, no entraremos en detalles sobre cómo funciona el código. Sin embargo, aquí hay un breve resumen:

  • Importe todas las bibliotecas para que funcione (las bibliotecas ESP32 o ESP8266 se importarán según la placa seleccionada en su IDE de Arduino).
  • Establezca las variables que quizás desee cambiar (Valor de clave API, Nombre del sensor, Ubicación del sensor)
  • El Valor de clave API es solo una cadena aleatoria que puedes cambiar. Se utiliza con fines de seguridad para que solo alguien que conozca su clave API pueda publicar datos en su base de datos.
  • Inicializar las comunicaciones en serie para fines de depuración.
  • Establezca una conexión Wi-Fi a su enrutador
  • Inicialice el BME280 para obtener lecturas

Entonces, en Cinta() Aquí realiza la solicitud HTTP POST cada 30 segundos con las últimas lecturas de BME280:

// Your Domain name with URL path or IP address with path
http.begin(serverName);

// Specify content-type header
http.addHeader("Content-Type", "application/x-www-form-urlencoded");

// Prepare your HTTP POST request data
String httpRequestData = "api_key=" + apiKeyValue + "&sensor=" + sensorName                      + "&location=" + sensorLocation + "&value1=" + String(bme.readTemperature())                      + "&value2=" + String(bme.readHumidity()) + "&value3=" + String(bme.readPressure()/100.0F) + "";

int httpResponseCode = http.POST(httpRequestData);

Puedes comentar sobre el httpSolicitudDatos Variable anterior que vincula todas las lecturas del BME280 y utiliza el httpSolicitudDatos Variable a continuación para fines de prueba:

String httpRequestData = "api_key=tPmAT5Ab3j7F9&sensor=BME280&location=Office&value1=24.75&value2=49.54&value3=1005.14";

demostración

Después de completar todos los pasos, deje que su placa ESP recopile algunas métricas y las publique en su servidor.

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Si todo está correcto, deberías ver lo siguiente en tu Arduino IDE Serial Monitor:

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Si abre su dirección IP de Raspberry Pi en esta ruta URL /esp-data.php:

http://Your-Raspberry-Pi-IP-Address/esp-data.php

Ahora debería ver todas las métricas almacenadas en su base de datos. Actualice la página web para ver las métricas más recientes:

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

También puedes ir a phpMyAdmin para ver el en tu Datos del sensor Tabla. Puedes borrarlos, editarlos, etc.

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

Envolver

En este tutorial, aprendió cómo publicar datos de sensores en una base de datos en su propio servidor LAMP local de Raspberry Pi.

El ejemplo proporcionado es lo más simple posible para ayudarlo a comprender cómo funciona todo. Después de comprender este ejemplo, puede cambiar la apariencia de la tabla, publicar diferentes valores de sensores, publicar desde múltiples placas ESP y más.

Usted también puede estar interesado en:

  • [Course] Aprenda ESP32 con Arduino IDE
  • Raspberry Pi: Instalar Apache + MySQL + PHP (servidor LAMP)
  • ESP: inserte datos en la base de datos MySQL usando PHP y Arduino IDE
  • Visualiza los valores de tus sensores desde cualquier lugar (ESP + MySQL + PHP)

Espero que hayas disfrutado de este proyecto. Si tiene alguna pregunta, deje un comentario a continuación e intentaremos comunicarnos con usted.

Si te gusta ESP32, puedes realizar nuestro curso “Aprende ESP32 con Arduino IDE”. También puede acceder a nuestros recursos ESP32 gratuitos aquí.

Gracias por leer.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi

En este proyecto, construirás un cliente ESP32 o ESP8266 que hace una solicitud POST HTTP a un servidor LAMP de Raspberry Pi (Linux, Apache, MySQL, PHP). El Raspberry Pi tiene un script PHP para insertar datos (lecturas de sensores) en una base de datos MySQL.

También tendrás una página web que muestra las lecturas del sensor, marcas de tiempo y otra información almacenada en la base de datos. Puedes visualizar tus datos localmente desde cualquier navegador en tu red.

Nota: para hacer este proyecto accesible desde cualquier parte del mundo, sigue este proyecto.

Preguntas Frecuentes

  1. ¿Qué tecnologías se utilizan en este proyecto?
  2. Para este proyecto, se utilizan las siguientes tecnologías:

    • Raspberry Pi con servidor LAMP instalado.
    • ESP32 o ESP8266 programado con Arduino IDE.
    • Script PHP para insertar datos en MySQL y mostrarlos en una página web.
    • Base de datos MySQL para almacenar las lecturas.
  3. ¿Cuáles son los requisitos previos para este proyecto?
  4. Antes de continuar con este tutorial, es necesario:

    • Estar familiarizado con la placa Raspberry Pi – leer Cómo Empezar con Raspberry Pi.
    • Tener instalado el sistema operativo Raspbian o Raspbian Lite – leer Instalando Raspbian Lite, Habilitando y Conectando con SSH.
    • Contar con el hardware necesario: placa Raspberry Pi, tarjeta microSD, fuente de alimentación para Raspberry Pi.
    • Preparar un servidor LAMP en Raspberry Pi – Instalar Apache + MySQL + PHP (LAMP Server).
  5. ¿Cómo se realiza la inserción de datos en la base de datos?
  6. Para insertar datos en la base de datos, se crea un script PHP en el servidor de Raspberry Pi que recibe las solicitudes entrantes desde el ESP32 o ESP8266 y los inserta en la base de datos MySQL.

Continúa con los pasos detallados en el tutorial para completar este proyecto. Si tienes alguna pregunta, déjala en los comentarios y trataremos de responder lo antes posible.

4 comentarios en «ESP32/ESP8266 publica datos en el servidor LAMP de Raspberry Pi»

Deja un comentario