Tabla de contenido:

Generador de código ESP32 - Wifi, BLE, Bluetooth: 9 pasos
Generador de código ESP32 - Wifi, BLE, Bluetooth: 9 pasos

Video: Generador de código ESP32 - Wifi, BLE, Bluetooth: 9 pasos

Video: Generador de código ESP32 - Wifi, BLE, Bluetooth: 9 pasos
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, Noviembre
Anonim
Generador de código ESP32 - Wifi, BLE, Bluetooth
Generador de código ESP32 - Wifi, BLE, Bluetooth

Introducción

ESP32 es un chip de procesador dual de bajo costo, con soporte para WiFi, Bluetooth Classic y BLE (Bluetooth Low Energy). Aunque el chip ha estado fuera durante varios años, el soporte de código para Arduino aún no está completo (en abril de 2018), pero este generador de código instructable completa las funciones BLE y analogWrite que faltan.

Consejo: El ESP32 no tiene una función de escritura analógica 'Arduino estándar'. Sin embargo, este generador de código genera código que lo simula por usted

Sugerencia: La instalación del código ESP no incluye compatibilidad con BLE. La instalación descrita aquí incluye soporte BLE

Esta página web cubrirá la configuración del Arduino IDE para programar el ESP32 para conexiones BLE, Bluetooth o WiFi. El pfodDesigner genera código para cada uno de estos tipos de conexión y también genera código para simular la función analogWrite faltante.

ESP32 es un chip de procesador dual de bajo costo, con soporte para WiFi, Bluetooth Classic y BLE (Bluetooth Low Energy). Aunque el chip ha estado fuera durante varios años, el soporte de código para Arduino aún no está completo (en abril de 2018), pero este tutorial y generador de código completa las funciones BLE y analogWrite que faltan. Arduino IDE para programar el ESP32 para conexiones BLE, Bluetooth o WiFi. El pfodDesigner genera código para cada uno de estos tipos de conexión y también genera código para simular la función analogWrite faltante.

El complemento Arduino admite unas 31 placas ESP32. Cuando utilice pfodDesigner, deberá elegir conexiones de pines que coincidan con las disponibles en su placa en particular. El Sparkfun ESP32 Thing (o Adafruit HUZZAH32 Feather) se usa aquí como la placa ESP32 de ejemplo, pero puede usar el código para cualquiera de las 31 placas ESP32 compatibles.

La aplicación gratuita de Android pfodDesignerV3 se utiliza para crear el menú de control (WYSIWYG) y luego generar el código para el ESP32, ya sea para una conexión BLE, WiFi o Bluetooth. Después de haber programado su placa ESP32, puede usar la aplicación de Android pfodApp (de pago) para conectarse a su ESP32 (a través de BLE o WiFi o Bluetooth) y mostrar su menú de control y controlar su ESP32. Si no desea usar pfodApp, aún puede usar el código generado como base para sus propias conexiones WiFi, BLE (Nordic UART) o Bluetooth, ya que proporciona una interfaz de transmisión (impresión / lectura) para cada uno de estos tipos de conexión..

Paso 1: Consejo: Instalación del soporte Arduino para ESP32 con soporte BLE

En abril de 2018, la instalación del soporte para Arduino ESP32 es más complicada que para la mayoría de las otras placas y las bibliotecas de códigos suministradas no están completas. No puede usar el administrador de la placa Arduino para instalar el soporte ESP32. Siga estos pasos para configurar Arduino para la programación ESP32. Esto instalará ESP32 y también el soporte BLE.

1 Busque la ruta del directorio de ubicación de su Arduino Sketchbook. Abra Arduino IDE y busque en Archivo-> Preferencias y en la parte superior de esa pantalla verá la ubicación del Sketchbook.

2 Descargue este archivo ESP32_hardware.zip y descomprímalo en la ubicación de Sketchbook. Crea un subdirectorio de hardware allí. En el improbable caso de que ya tenga un subdirectorio de hardware en la ubicación de su Sketchbook, combine su contenido con este.

3 Instale las herramientas Xtensa y ESP32. Nota: Esta descarga e instalación tarda algún tiempo en procesar los ~ 0.5Gig de archivos. Vaya al directorio hardware / espressif / esp32 / tools y luego, para máquinas Windows, ejecute el archivo get.exe. Para usuarios de Mac y Linux, ejecute el script get.py python para descargar las herramientas. Usando una terminal, navegue hasta la carpeta hardware / espressif / esp32 / tools. Luego escriba: python get.py La secuencia de comandos de Python "get.py" descargará las herramientas Xtensa GNU y el kit de desarrollo de software ESP32 (SDK), y los descomprimirá en la ubicación adecuada.

Debería ver algunas carpetas nuevas en el directorio "herramientas", incluidas "sdk" y "xtensa-esp32-elf" una vez que esté listo.

Una vez que esto esté completo, cierre y vuelva a abrir su IDE de Arduino y ahora debería tener una larga lista de placas ESP32 para elegir en el menú Herramientas-> Placas. Elija "SparkFun ESP32 Thing" (o "Adafruit ESP32 Feather")

A continuación, puede abrir la lista de ejemplos de archivos para ver varios archivos de ejemplo de ESP32

El proceso anterior instala una instantánea del código github para el soporte ESP32 y BLE que se han fusionado en un solo archivo zip. El código generado por pfodDesigner y los ejemplos siguientes utilizan esta versión de esas bibliotecas. Si desea la última versión, posiblemente con un conjunto diferente de características y errores, descargue el zip de la última versión de https://github.com/espressif/arduino-esp32 y descomprímalo en hardware / espressif y cambie el nombre del carpeta esp32 y luego para el soporte BLE descargue un zip de la última versión de https://github.com/espressif/arduino-esp32 y descomprímalo en la carpeta esp32 / libraries y cámbiele el nombre a ESP32_BLE_Arduino (si es necesario).

Paso 2: Instalar las bibliotecas PfodParser para ESP32

a) Luego descargue la biblioteca pfodParser.zip V3.23 +, pfodDwgControls.zip y, para ESP32 WiFi, pfodESP32BufferedClient.zip, comprima los archivos a su computadora, muévalos a su escritorio o alguna otra carpeta que pueda encontrar fácilmente.

b) Luego use la opción de menú Arduino 1.8.2 IDE Sketch → Import Library → Add Library para instalarlos. (Si Arduino no le permite instalarlo porque la biblioteca ya existe, busque y elimine las carpetas antiguas pfodParser, pfodCmdParser o pfodCHAP, etc. y luego importe estas)

c) Detenga y reinicie el IDE de Arduino y en Archivo-> Ejemplos ahora debería ver las bibliotecas pfodParser, pfodDwgControls y pfodESP32BufferedClient y una serie de ejemplos.

Paso 3: uso de PfodDesignerV3 para ESP32

La aplicación gratuita pfodDesignerV3 (V3291 +) admite la generación de código para que el chip ESP32 se conecte a través de BLE, WiFi o Bluetooth Classic a pfodApp (de pago).

Existen muchos tutoriales sobre cómo crear controles para su móvil Android para controlar una amplia gama de tableros usando pfodDesignerV3. Con pfodDesignerV3 puede crear controles que activen / desactiven las salidas o las pulsen, controlen las salidas a través de PWM, muestren el estado de una entrada o valor analógico, registren y tracen datos y submenús y mucho más.

Consejo: El soporte ESP32 Arduino incluye soporte para unas 31 placas ESP32 diferentes. El pfodDesignerV3 le da acceso a todos los pines de E / S del ESP32, pero no todas las placas conectan todos los pines ESP32 a los pines de la placa. Consulte la documentación de su placa para saber qué pines están disponibles y vea el archivo pins_arduino.h en el directorio hardware / espressif / esp32 / variantes de su placa.

La lista de pines de pfodDesignerV3 incluye comentarios sobre disponibilidad y pines de uso especial para las tablas Sparkfun ESP32 Thing y Adafruit HUZZAH32 - ESP32 Feather Board.

Estos ejemplos utilizan la placa Sparkfun ESP32 Thing y crean un control deslizante para controlar el brillo del LED integrado conectado al pin 5 de su móvil Android. Si está utilizando la placa Adafruit HUZZAH32 - ESP32 Feather en su lugar, entonces el LED integrado está conectado al pin 13. El soporte Arduino ESP32, instalado arriba, no es compatible con la escritura analógica de Arduino directamente. En cambio, el ESP32 tiene 16 canales PWM que puede controlar y conectar a cualquiera de las salidas. El pfodDesignerV3 genera todo el código necesario para asignar el canal y conectarlo a la salida elegida. Instale el pfodDesignerV3 (V3291 +) gratuito de Google Play.

Paso 4: generador de código ESP32 BLE

Generador de código ESP32 BLE
Generador de código ESP32 BLE
Generador de código ESP32 BLE
Generador de código ESP32 BLE
Generador de código ESP32 BLE
Generador de código ESP32 BLE
Generador de código ESP32 BLE
Generador de código ESP32 BLE

Iniciar un nuevo menú

Haga clic en el botón Destino para cambiar el dispositivo de destino.

El primer objetivo de ejemplo será ESP32 BLE, así que haga clic en el botón Bluetooth Low Energy.

Seleccione ESP32 conectado a través de BLE y luego presione el botón Atrás del móvil para volver a la pantalla principal.

Paso 5: Diseño del menú: el mensaje

Diseñar el menú: el mensaje
Diseñar el menú: el mensaje
Diseñar el menú: el mensaje
Diseñar el menú: el mensaje
Diseñar el menú: el mensaje
Diseñar el menú: el mensaje

Este simple ejemplo solo tendrá un mensaje y un solo control. Haga clic en el botón Editar mensaje y luego en el botón Editar texto del mensaje para configurar el texto del mensaje.

Aquí, el indicador se establece en "ESP32 Led". Haga clic en el botón de marca para guardar sus ediciones y volver a la pantalla anterior. Luego haga clic en Establecer color de fondo para seleccionar el color general para el menú de controles.

Puede seleccionar diferentes colores para cada control. Hay varios otros formatos disponibles para el mensaje. Aquí, el fondo se establece en azul, el tamaño de fuente es +5 y el texto en negrita. Se muestra una vista previa del mensaje formateado en la parte inferior de la pantalla de mensaje de edición.

Paso 6: Diseño del menú - Control LED PWM

Diseño del menú - Control LED PWM
Diseño del menú - Control LED PWM
Diseño del menú - Control LED PWM
Diseño del menú - Control LED PWM
Diseño del menú - Control LED PWM
Diseño del menú - Control LED PWM
Diseño del menú - Control LED PWM
Diseño del menú - Control LED PWM

Use el botón Atrás del teléfono móvil para regresar al menú principal y luego haga clic en Agregar elemento de menú para agregar un elemento de control o visualización.

Seleccione el elemento Salida PWM. Se muestra una vista previa del control en la parte superior de la pantalla.

Consejo: El ESP32 no tiene una función de escritura analógica 'Arduino estándar'. Sin embargo, este generador de código genera código que lo simula por usted

Haga clic en el botón Editar texto inicial y cambie "Configuración de PWM" a "Led". Tenga en cuenta el espacio final para separar "Led" de la indicación de%.

Haga clic en el botón de marca para guardar su edición y luego desplácese hacia abajo hasta el botón "No conectado a un pin de E / S".

Haga clic en ese botón para mostrar una lista de pines que se pueden usar como salidas.

Aquí se muestran los pines de uso especial para las tablas Sparkfun ESP32 Thing y Adafruit HUZZAH32 Feather. Seleccione el pin 5 para que el control deslizante controle el brillo del LED integrado del Sparkfun ESP32 Thing. Si está utilizando el tablero de plumas Adafruit HUZZAH32, seleccione el pin 13 en su lugar. Para otras placas, consulte la documentación de sus placas y el archivo pins_arduino.h en el directorio hardware / espressif / esp32 / variantes de su placa.

Luego, cuando haya terminado de realizar cualquier otra configuración de formato para este control deslizante, use el botón Atrás del dispositivo móvil para volver al menú principal y haga clic en Menú de vista previa para ver cómo se verá el menú final en su dispositivo móvil cuando pfodApp lo muestre. Los controles están activos, por lo que puede moverlos en la vista previa.

Paso 7: Genere el código ESP32

Genere el código ESP32
Genere el código ESP32
Genere el código ESP32
Genere el código ESP32

Regrese al menú principal y desplácese hacia abajo hasta el botón Generar código.

Haga clic en el botón Generar código y luego haga clic en el botón Escribir código en archivo para generar el código

Salga de pfodDesignerV3 y transfiera el código en /pfodAppRawData/pfodDesignerV3.txt desde su móvil a su computadora. Consulte pfodAppForAndroidGettingStarted.pdf para conocer las formas de hacer esto. La aplicación profesional de transferencia de archivos wifi de smarterDroid es una forma de realizar la transferencia.

Usando el botón "Cambiar objetivo" en la pantalla Generar código, puede cambiar entre ESP32 a través de BLE, ESP32 a través de Bluetooth y ESP32 a través de WiFi

Paso 8: Ejecutar los ejemplos

Ejecutando los ejemplos
Ejecutando los ejemplos

Usando el botón "Cambiar objetivo" en la pantalla Generar código, puede cambiar entre ESP32 a través de BLE, ESP32 a través de Bluetooth y ESP32 a través de WiFi

Así es como se generaron los siguientes tres bocetos de ejemplo a partir del diseño anterior.

Ejecutando el ejemplo de pfodESP32_BLE

Establecer el objetivo en ESP32 a través de BLE genera el código en pfodESP32_LED_BLE.ino Este esquema también está disponible en Archivo-> Ejemplos-> pfodParser. Abra ese ejemplo, luego, después de programar Sparkfun ESP32 Thing (u otra placa ESP32), debe configurar una conexión en pfodApp (consulte pfodAppForAndroidGettingStarted.pdf para obtener más detalles) y conectarse y poder ajustar el brillo del tablero llevado.

SUGERENCIA: ESP32 usa la misma dirección bluetooth para BLE y Bluetooth, por lo que si ha configurado previamente una conexión Bluetooth ESP32 en pfodApp, debe eliminar esa conexión Bluetooth pfodApp antes de configurar una conexión BLE, ya que pfodApp filtra las conexiones existentes (por dirección) de la lista de visualización de dispositivos disponibles. También es posible que deba abrir la configuración de su móvil y 'olvidar' la conexión Bluetooth ESP32 y luego apagar el Bluetooth del móvil y reiniciar su teléfono para borrar la pila de Bluetooth

SUGERENCIA: La biblioteca ESP32_BLE_Arduino de Neil Kolban no es compatible con la biblioteca BLEPeripheral de Sandeep Mistry que es utilizada por algunos otros objetivos BLE generados por pfodDesigner. Por lo tanto, debe eliminar el directorio BLEPeripheral, (si existe), de su directorio Arduino / libraries para compilar bocetos ESP32 BLE.

Ejecución del ejemplo de pfodESP32_Bluetooth

Establecer el objetivo en ESP32 a través de Bluetooth genera el código en pfodESP32_LED_Bluetooth.ino Este boceto también está disponible en Archivo-> Ejemplos-> pfodParser. Abra ese ejemplo, luego programe Sparkfun ESP32 Thing (u otra placa ESP32). Necesita emparejar el ESP32 con su teléfono, no se requiere un número de PIN. Luego, configure una conexión a él en pfodApp (consulte pfodAppForAndroidGettingStarted.pdf para obtener más detalles) y conéctese y pueda ajustar el brillo del led de la placa.

Ejecutando el ejemplo de pfodESP32_WiFi

Establecer el objetivo en ESP32 a través de WiFi genera el código en pfodESP32_LED_WiFi.ino Este boceto también está disponible en Archivo-> Ejemplos-> pfodParser. Abra ese ejemplo e inserte el nombre y la contraseña de su red y elija una IP estática para este dispositivo. Luego, después de programar Sparkfun ESP32 Thing (u otra placa ESP32), debe configurar una conexión en pfodApp (consulte pfodAppForAndroidGettingStarted.pdf para obtener más detalles) y conectarse y poder ajustar el brillo del led de la placa.

Paso 9: seguridad WiFi

Si se conecta al ESP32 a través de Internet (a través de wifi), la seguridad es importante. No quiere que cualquiera pueda abrir la puerta de su garaje, por ejemplo. El generador de código y la biblioteca pfodParser admiten seguridad de 128 bits. Esta seguridad no encripta los mensajes, sino que agrega un hash criptográfico a cada mensaje para protegerlo contra conexiones y controles no autorizados. Consulte SipHash Secure Challenge and Response para obtener detalles sobre cómo se implementa esta seguridad.

Añadiendo seguridad de 128 bits

Protegerse contra usuarios no autorizados que acceden a su dispositivo a través de Internet es tan fácil como editar # define pfodSecurityCode "" para agregar su propio código secreto. (hasta 32 dígitos hexadecimales)

Por ejemplo, para establecer un código de seguridad de 173057F7A706AF9BBE65D51122A14CEE, usaría # define pfodSecurityCode "173057F7A706AF9BBE65D51122A14CEE" Por supuesto, debe usar su propio código secreto. Establecer su propio código en su conexión pfodApp le permite a usted, y a nadie más, conectarse.

Es necesario un código aleatorio largo para una buena seguridad. pfodApp admite hasta 128 bits como 32 dígitos hexadecimales.

Para generar su propio código secreto puede descargar un generador de claves secretas al azar desde hereSecret Key Generator desde aquí. Además de generar claves aleatorias, este programa las escribe como códigos QR para que pueda configurarlas de manera fácil y precisa en su conexión pfodApp.

Puede imprimir el código QR y adjuntarlo a su pfodDevice. Luego haga clic en el botón Escanear QR en la pantalla de conexión WiFi de pfodApp para leer la contraseña.

Consulte A simple WiFi / Arduino pfodDevice ™ con seguridad de 128 bits para obtener un ejemplo detallado del uso del generador de claves y el código QR.

Conclusión

Este tutorial ha mostrado cómo configurar el IDE de Arduino para programar el ESP32. Luego usó la aplicación gratuita pfodDesigner para diseñar un menú para controlar el brillo del LED integrado y el código generado para conectarse al ESP32 a través de BLE, Bluetooth o WiFi. Si luego se conecta a través de la aplicación pfodApp apppfodApp, verá el menú que diseñó y podrá controlar el brillo del LED a través de un control deslizante. El pfodDesigner genera todo el código de Arduino, incluida la simulación de analogWrite de Arduino. No se requirió codificación Arduino. La pfodApp se encarga de todo el lado de Android, no se requiere codificación de Android.

Recomendado: