Paso 10: El software para el módulo de ESP8266 - parte 3 "setup() y loop()"
Setup()
La función setup() es llamada una vez después de la ESP8266 bootet. Aquí defino la función de los pines GPIO, conectarse a la WiFi local, inicializar la conexión serie e iniciar el servidor HTTP para recibir.
Sólo en el módulo "master" así empiezo un temporizador que desencadena cada 60 segundos una actualización de la consumo de energía (más sobre esto en el paso siguiente).
Conexión Wi-Fi
Para que sea más fácil identificar los diferentes módulos de ESP8266 que decidí usar direcciones IP estáticas en vez de usar la función DHCP de mi router WiFi.
Para conectar con una dirección IP estática, algunos parámetros adicionales tienen que ser utilizados con WiFi.config():
ipAddr = > ipAddr asignado a este módulo
ipGateWay = > la puerta de enlace predeterminada (generalmente la IP del router)
ipSubNet = > direcciones de la IP la máscara para la IP de todos los locales, en mi caso 255.255.255.0
ADVERTENCIA: la función OTA Arduino
Las bibliotecas de Arduino ESP8266 también ofrecen una función OTA (actualización de software por WiFi). Esto sería una bonita función para actualizar mi ESP8266 módulos sin conectar por la conexión serial a la PC.
Desgraciadamente mi experiencia con esta función es muy malo. En el 70% de mis ensayos se corrompió la transferencia de los nuevos programas sobre WiFi y después restablecer el módulo colgar y no responde. Sólo un reflash sobre conexión en serie los trajeron para trabajar.
Tengo la función OTA en mi código, pero no lo uso ya. Esperemos que con una posterior actualización de las bibliotecas de ESP8266 la OTA función será más confiable.
Loop()
La función loop() es el bucle principal del programa (como el nombre lo dice). Aquí verificar si un nuevo cliente se ha conectado por WiFi, si un comando se ha recibido sobre conexión en serie o (sólo para el módulo "master") si una actualización del consumo de energía se ha disparado (más sobre esto en el siguiente paso.