En otro de los post comentaba cómo podíamos hacer que nuestro ESP8266 se conectase a nuestra WiFi y levantase un servidor web mediante el cual nos podríamos conectar a el. En esta ocasión voy a explicar algo diferente pero que la finalidad termina siendo la misma, la cual es obtener el valor de los sensores que podamos tener conectados a nuestra placa.

Imaginaros que queremos tener un sensor de temperatura conectado a nuestro ESP8266 en un lugar en el que no hay WiFi. De esta manera no tendríamos ninguna manera de obtener la información de la temperatura desde nuestro portátil o nuestro teléfono móvil ya que no nos podríamos conectar a nuestra placa. Para solucionar este problema tenemos la opción de levantar un punto de acceso WiFi desde nuestro micro controlador y de esta manera conectarnos y poder obtener los datos que deseamos.

La forma de crear un punto de acceso WiFi con el ESP8266 es muy sencilla como vas a poder ver.

#include <ESP8266WiFi.h>

char ssid[] = "ESP8266_Wifi";
char password[] = "password";

void setup() {
  Serial.begin(9600);
  Serial.println("Wifi access point test!");

  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid, password);

  Serial.println("WiFi created");
}

void loop() {
}

Lo primero que tenemos que hacer es cambiar el modo de funcionamiento de la WiFi, pasando del modo normal que usamos para conectarnos a otras WiFis existentes al modo WIFI_AP (wifi access point) que nos permitirá crear nuestra propia red WiFi.

Lo segundo será inicializar la librería en lugar de con el método begin con el método softAP al cual le pasaremos el nombre y la contraseña de la WiFi que queramos crear. Con ello ya tendremos nuestra red WiFi funcionando y podremos conectarnos a ella desde otro dispositivo como por ejemplo nuestro portátil.

Una vez ejecutemos nuestro código en la placa podemos ver aparecer una nueva WiFi a la cual podemos conectarnos utilizando la contraseña que hemos indicado en el código.

Puedes encontrar el ejemplo completo en mi GitHub y si tienes cualquier duda no dudes en dejar un comentario.