Proyecto de sensor WiFi ESP32

En esta entrada de blog, explicamos -- basado en la introducción a ESP32 ( Enlace ) -- cómo esta placa de desarrollo habilitada para Wi-Fi puede alojar un sitio web local donde los datos del sensor se muestran en vivo. El código utilizado aquí se puede encontrar en GitHub (https://github.com/Simsso/Arduino-Examples/blob/master/ESP32/WiFiSensorServer/WiFiSensorServer.ino). 

 

La estructura básica del proyecto es la siguiente: Un ESP32 está conectado a uno o más sensores y lee sus valores. Además, el ESP32 está conectado con la red inalámbrica (WLAN) y espera las peticiones HTTP entrantes. Esto lo responde, dependiendo de la ruta de acceso de la solicitud, con un sitio web HTML o los datos del sensor en formato JSON.

 

El sensor se puede seleccionar como se desee. Para la demostración, elegimos un joystick de dos ejes que emite dos valores analógicos. Aparte del sensor, no es necesario conectar ningún hardware adicional al microcontrolador para ejecutar el programa de demostración. 

Las señales analógicas del joystick se muestran con las llamadas de función

 

analogRead(34);
analogRead(35);

 

Leer. Esto muestra claramente la fuerza de ESP-Arduino (https://github.com/espressif/arduino-esp32): Leer el valor de un convertidor analógico-digital normalmente no sería sólo una llamada de función.

 

Servidor HTTP

Para iniciar un servidor HTTP que sea accesible en la red local, el ESP32 debe poder conectar con la red inalámbrica. Para ello, cambie el valor de las dos constantes Ssid (nombre Wlan) y Contraseña (contraseña Wi-Fi). 

 

const char* ssid á "Nombre del punto de acceso";

const char* password á "Password";

 

El objeto de servidor está conectado a Servidor WiFiServer(80); Creado. El parámetro especifica en qué puerto debe ser accesible el servidor. 80 es el estándar para las páginas web.

 

La función de configuración establece la conexión serie con el PC. Solo se usará para la depuración en este proyecto. Sin embargo, preste atención a la tasa Baud, que no es 9600 sino 115200. En el Monitor serie, es posible que deba ajustarlos en la parte inferior derecha. Después de que el microcontrolador se haya conectado a la red inalámbrica (WLAN), genera su dirección IP a través del monitor serie. Esto es asignado al dispositivo por el router WLAN y parece esto, por ejemplo: 192.168.0.103. En el navegador, puede utilizar el http://192.168.0.103 enviar una solicitud al ESP32. Esto, por ejemplo, tiene la siguiente forma:

 

GET / HTTP/1.1
Anfitrión: 192.168.0.103
Conexión: keep-alive
Pragma: sin caché

y llega a la ESP32 como una cadena larga, carácter por carácter. En la función Loop, la primera línea de la solicitud se separa porque contiene la ruta de acceso. En el ejemplo, esto es simplemente una barra diagonal (OBTENER /). Sin embargo, si el sitio web hubiera http://192.168.0.103/test llamada, la primera línea de la solicitud HTTP tendría este aspecto: GET /test HTTP/1.1

 

El final de la solicitud se marcará como una línea en blanco. En el programa, después de reconocer la misma sendResponse que llama a la primera línea de la solicitud y la Cliente Objeto. En este último, se escribe la respuesta, que contiene los datos solicitados (es decir, el código HTML de una página Web).

La primera línea de solicitud contenía la información a la que se enviaba la solicitud /sensor los datos del sensor se envían al cliente. 

 

encabezado de respuesta

client.println("HTTP/1.1 200 OK");

client.println("Content-Type: application/json");

client.println();

 

enviar datos del sensor en formato JSON

client.println("A 

"x": " + String(analogRead(35) / 4096.0) + ", 

"y": " + String(analogRead(34) / 4096.0) + ", 

"tiempo": " + milis() + " 

}");

Los datos de lectura llegarán al navegador.

Para mostrar los valores del sensor algo agradable, tenemos un sitio web simple (https://github.com/Simsso/Arduino-Examples/blob/master/ESP32/WiFiSensorServer/index.html) que marca la posición del joystick con un círculo rojo dentro de un cuadrado. Los datos se cargan desde el servidor varias veces por segundo.

 

Resumen

Mostrar los datos de un sensor con el ESP32 en la red local en un sitio web no es caro. Si utiliza nuestro programa de ejemplo (https://github.com/Simsso/Arduino-Examples/blob/master/ESP32/WiFiSensorServer/WiFiSensorServer.ino), sólo necesita utilizar 

 

  1. sensores analógicos a los pines G34 y G35,
  2. introduzca el nombre y la contraseña de su red Wi-Fi y
  3. en el navegador, llame a la dirección IP de su ESP32, que encontrará como salida de registro en el monitor serie.

 

 

Esp-32Projekte für fortgeschritteneSensores

2 comentarios

MaHa76

MaHa76

Danke für diese Anleitung und die hilfreiche Erklärung.

Kann ich über diesen Weg auch mehrere ESP miteinander vernetzen?

Den ESP der in diesem Beispiel den Sensor ausliest, würde ich gern als AccessPoint verwenden und die Daten für mehrere andere ESPs bereitstellen.
Die Verbindung sollte dann auch dauerhaft zu allen ESPs bestehen bleiben, so dass die Daten kontinuierlich angezeigt werden könnten.

Thanathan

Thanathan

Guter Artikel aber fehlt im ersten Absatz nicht ein Link? Oder ist das “Link xxx” beabsichtigt? ;)

Deja un comentario

Todos los comentarios son moderados antes de ser publicados

Artículos de blog

  1. Ahora instalamos el esp32 a través de la administración.
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. Transporte Aéreo - programación de ESP mediante redes locales inalámbricas