Uploaded by Jose Luis Rosario Salvador

ESP-Jumpstart

advertisement
ESP-JUMPSTART
1.1.
INTRODUCCIÓN
Construir firmware listo para la producción puede ser difícil. Implica múltiples
preguntas y decisiones sobre las mejores formas de hacer las cosas. Implica la
creación de aplicaciones telefónicas y la integración de agentes en la nube para
realizar todas las funciones. ¿Qué pasaría si hubiera una referencia lista, un conjunto
conocido de los mejores pasos, recopilados de la experiencia previa de otros, con la
que pudieras comenzar?
"ESP-Jumpstart" se centra en la creación de productos en ESP32. Es una forma rápida
de comenzar su proceso de desarrollo de productos. "ESP-Jumpstart" construye un
"Toma de Corriente Inteligente" completamente funcional y listo para implementar en
una secuencia de pasos de tutorial incrementales. Cada paso aborda un flujo de
trabajo de usuario o un flujo de trabajo de desarrollador. Cada paso es una aplicación
construida con ESP-IDF, el marco de desarrollo de software de ESP32.
Ilustración 1: Toma de Corriente Inteligente
El firmware del Toma Corriente Inteligente de ESP-Jumpstart asume que el dispositivo
tiene un botón de entrada y una salida GPIO. Implementa la siguiente funcionalidad
comúnmente requerida.

Permite al usuario final configurar su red Wi-Fi doméstica a través de aplicaciones
telefónicas (iOS/Android).

Encienda o apague la salida GPIO.

Utilice un pulsador para alternar físicamente esta salida.

Permitir el control remoto de esta salida a través de una nube.

Implemente la actualización de firmware inalámbrica (OTA).

Realiza
el
restablecimiento
a
la
configuración
de
fábrica
presionando
prolongadamente el botón pulsador.
Una vez que esté familiarizado con ESP-Jumpstart, la construcción de su firmware de
producción es una cuestión de reemplazar el controlador de dispositivo de la toma de
corriente, con su controlador de dispositivo (bombilla, lavadora, etc).
Ilustración 2: Aplicabilidad Jumpstart
Para usuarios de ESP8266, requerirá lo siguiente para comenzar:
Un
kit
de
desarrollo
ESP8266:
ESP8266-DevKit-C
https://www.espressif.com/products/hardware/esp8266ex/overview/
disponible
a
través de su tienda más cercana. También puede usar cualquier otra placa de
desarrollo ESP8266 si ya tiene una.
ESP8266_RTOS_SDK es el marco de desarrollo de IoT de Espressif para ESP8266
(https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest).
Todas
las
referencias a IDF, ESP-IDF deben asignarse a ESP8266_RTOS_SDK en el contexto
de ESP8266.
Las instrucciones para ESP32 y ESP8266 son comunes a menos que se especifique
lo contrario.
Para los inquietos, si está familiarizado con el hardware y/o los sistemas integrados
de Espressif, y está buscando una referencia de producción sin los pasos
incrementales, puede hacer lo siguiente:

Utilice directamente la aplicación final en ESP-Jumpstart.

Si no tiene una cuenta en la nube, configure la configuración de la nube de AWS
IoT como se menciona en la sección AWS IoT.

Cree el archivo de configuración de fabricación para las credenciales de nube
únicas de su dispositivo, según las instrucciones proporcionadas en la sección
Generación de datos de fábrica y flashéelo en la ubicación adecuada.

Construya, flashee y arranque la imagen del firmware como lo hace habitualmente.

Utilice las bibliotecas de aplicaciones de teléfono de referencia (iOS/Android) para
crear aplicaciones de teléfono. O utilice la aplicación de referencia para probar
cosas como se describe en la sección Aprovisionamiento unificado.

Utilice los comandos descritos en la sección AWS IoT para control remoto

Ahora que tiene este funcional, modifique para que funcione con su controlador
1.2.
CONEXIÓN WI-FI
#include <esp_wifi.h>
#include <esp_event_loop.h>
tcpip_adapter_init(); // Inicializamos la pila TCP/IP
esp_event_loop_init(event_handler, NULL);
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
esp_wifi_init(&cfg);
esp_wifi_set_mode(WIFI_MODE_STA);
wifi_config_t wifi_config = {
.sta = {
.ssid = EXAMPLE_ESP_WIFI_SSID,
.password = EXAMPLE_ESP_WIFI_PASS,
},
};
esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config);
esp_wifi_start();
In the above code:
Similarly, the Wi-Fi subsystem and its station interface is initialized with the calls to
esp_wifi_init() and esp_wifi_set_mode()
Finally, the hard-coded SSID and passphrase configuration of the target Wi-Fi network
are configured and we start the station using a call to esp_wifi_start()
Wi-Fi is a protocol that can generate asynchronous events like connectivity lost,
connection established, DHCP Address received etc. The event loop collects events
from
the
TCP/IP
Stack
and
the
Wi-Fi
subsystem.
The
call
to esp_event_loop_init() initialises the event loop. The event loop delivers these events
to the callback that is registered through the first parameter.
The asynchronous event handler that is registered with the event loop can be
implemented as:
Download