Das einundzwanzigste Türchen

3x ESP32 Dev Kit CV 4 (sin soldar)

Ya estamos en el número 21. No falta mucho hasta la última puerta. Lo puedes encontrar aquí Placa de desarrollo ESP32 Dev Kit CV 4 en tres versiones en la variante sin pines de encabezado soldados (encabezados de pines).

La ventaja aquí es que solo tiene que soldar los componentes que necesita. Como resultado, el tamaño de la instalación en las carcasas es aún menor. Por supuesto, puede soldar los pines del cabezal usted mismo. Había un pequeño manual detrás de la puerta número dos del calendario de adviento de AZ. Mis consejos personales para soldar:

  • utilizar un soldador adecuado
  • usar flux
  • una placa de pruebas es adecuada para fijar el componente (para soldar los pines del cabezal)
  • Sostenga el soldador y suelde al punto de soldadura y deje que fluya la soldadura

Si desea utilizar un componente como esta placa de desarrollo ESP32, es recomendable echar un vistazo a la ficha de datos y el Diagrama de pines.

Esto le dice qué procesador es y qué periféricos están disponibles para usted. En este caso, los hechos más importantes son las opciones de conectividad WiFi y Bluetooth integradas. La CPU funciona con un máximo de 240 MHz. Nuestras interfaces incluyen I²C, SPI, UART y 1-Wire. Casi todos los pines se pueden usar para PWM (pulse width modulation, por ejemplo, para atenuar los LEDs). Se integra un sensor de efecto Hall (que no debe confundirse con un eco) para detectar cambios en un campo magnético. Un sensor de temperatura que puede monitorear la temperatura de la CPU ya no se incluye en estas placas ESP más nuevas. 16 pines están conectados a convertidores de analógico a digital integrados, dos pines a convertidores de digital a analógico. Aquí hay una pequeña descripción general de los pines como complemento del pinout:

Se integra un sensor de efecto Hall (que no debe confundirse con un eco) para detectar cambios en un campo magnético. Un sensor de temperatura que puede monitorear la temperatura de la CPU ya no se incluye en estas placas ESP más nuevas. Se conectan 16 pines a convertidores de analógico a digital integrados, dos pines cada uno a convertidores de digital a analógico. Aquí hay una pequeña descripción general de los pines como complemento del pinout:

Pines (GPIO)

función

21, 22

I²C (SDA, SCL)

5, 18, 19, 23

SPI (SS, SCK, MISO, MOSI)

1, 3 / 9, 10 / 16, 17

UART (TX0, RX0) / RX1, TX1 / RX2, TX2)

0, 2, 4, 12, 14, 15, 25, 26, 27, 32, 33, 34, 35, 36, 39

Conversor analógico a digital

25, 26

Convertidor de digital a analógico

Hay algunas cosas más a considerar al usar los pines:

  • GPIO1 no debe usarse como entrada y GPIO3 no debe usarse como salida
  • GPIO6 a GPIO11 no deben usarse como entrada o salida
  • GPIO34, GPIO35, GPIO36 y GPIO39 solo se pueden usar como entradas
  • GPIO12 en HIGH evita el arranque
  • GPIO0, GPIO1 y GPIO3 pueden mostrar un comportamiento inesperado porque el sistema los utiliza para otros fines (por ejemplo, durante el proceso de arranque)

En este punto, me gustaría referirme a la publicación de blog muy detallada ESP32: el todoterreno por Gerald Lechner. Allí encontrará una amplia comparación con otras placas ESP32, opciones de conexión, instalación en el IDE de Arduino y mucho más. Vale la pena leer el artículo antes de comenzar.

Cuando todo está instalado y el Módulo de desarrollo ESP32 está seleccionado en el Arduino IDE, por supuesto, que desea cargar su primer boceto. Se incluyen numerosos programas de muestra. Dado que este paquete contiene tres ESP32, me gustaría intercambiar datos entre las placas individuales. Para esto utilizo ESPNow Sketches Master y Slave. Con el Uno o Nano está acostumbrado a iniciar la carga y todo se ejecuta hasta que se haya transferido el programa. Sin embargo, también puede ver este mensaje de error:

 


En este caso, debe poner la placa en modo cargador de arranque. Para hacer esto, debe presionar el botón de arranque en la placa y posiblemente mantenerlo presionado hasta que se establezca la conexión:

 
 


Como eso siempre me molestó un poco, hice lo mismo estas instrucciones un condensador de 10 nF conectado (+ a EN y - a GND). Ya no es necesario presionar el botón.

Consejo: Si no aparece nada en el monitor en serie después de cargar un programa, presione brevemente el botón de reinicio en el microcontrolador.

Para que podamos usar dos microcontroladores al mismo tiempo en una computadora, iniciamos dos procesos separados del Arduino IDE (actualmente solo probado en Windows). Eso significa que solo tiene que iniciar el programa nuevamente. Si hay dos ESP32 conectados, también se deben mostrar dos dispositivos COM en Tools-> Port:

 

Los números de los puertos COM virtuales pueden ser diferentes para usted

Abrimos los dos ejemplos Master y Slave de los ejemplos ESP32 -> ESPNow -> Basic. Asegúrese de iniciarlos en las diferentes instancias abiertas de Arduino y de que el otro puerto esté configurado. Cargue los dos bocetos en el microcontrolador y abra el monitor en serie (CTRL + MAYÚS + M). Luego, los datos se intercambian entre los dos dispositivos:

 


En este ejemplo, datos del tipo uint8_t es decir, se transfiere 1 byte (8 bits). El destinatario reconoce automáticamente mediante devolución de llamada que ha llegado un bloque de datos. Por lo tanto, la función loop () en el código fuente slave está vacía.

¿Le gustaría transferir sus propios datos, p. Ej. el de un sensor, luego busque la función en el código fuente del maestro enviar datos (). La variable datos se declara afuera con:

uint8_t datos = 0;

y luego con

datos ++;

contado después de cada ejecución. La salida de ambos monitores muestra estos valores. Asigne sus propios valores a esta variable, p. Ej. Con:

datos = sensorRead ();

¡La llamada de función sensorRead () es ficticia!

Para más de dos microcontroladores, puede utilizar los ejemplos Master y Slave bajo ESP32 -> ESPNow -> use multi-slave.

Ahora me gustaría mostrarle cómo configurar un pequeño chat de texto con varios microcontroladores. Para ello necesitamos un servidor que distribuya los mensajes de forma centralizada. Además, por supuesto, otros participantes, los clientes. Usamos el boceto de muestra como base para el servidor. AsyncUDPServer que puede encontrar en "ESP Async UDP". Usamos el boceto bajo "Wifi" para los clientes WiFiUDPClient. El servidor "escucha" en un puerto específico los mensajes entrantes que envían los clientes a través del mismo puerto. Cuando se inicia el servidor, la dirección IP se muestra en el monitor en serie tan pronto como se establece una conexión a la red WLAN. Luego, esto debe ingresarse en el código fuente para los clientes. El nombre de su red (SSID) y la contraseña asociada también deben ingresarse allí.

Cargue el servidor asíncrono en uno de los ESP32 y el cliente en los otros dos. Si inicia el Arduino IDE tres veces por separado, también puede ejecutar a los tres participantes en una computadora para una prueba. El servidor también puede participar en el chat:

 


UDP es una transmisión sin conexión. Esto significa que los paquetes de datos se envían sin comprobar si han llegado al destinatario. Puede usarlo para generar sus propios protocolos y asegurar la transmisión usted mismo. Requiere menos gastos generales, es decir, código de control, que p. Ej. TCP. UDP es, por ejemplo, utilizado para transmitir datos de video o audio.

Aquí puedes descargar mis códigos fuente modificados.

El ESP32, por supuesto, ofrece aún más opciones. Para la puerta del calendario número 11, ya le había mostrado cómo puede mostrar los datos de los sensores BME280 en el navegador usando un ESP8266. Por supuesto, esto también funciona con un ESP32. Para hacer esto, pruebe el boceto AdvancedWebServer en "WebServer". Ingrese sus datos WiFi allí también. Después de la carga, inicie el monitor serial en el Arduino IDE. Allí se mostrará la dirección IP. Abra un navegador de Internet en un dispositivo que esté en la misma red e ingrese la dirección IP allí. Luego, el ESP32 lo saluda con un diagrama. El servidor avanzado actualiza automáticamente la página a intervalos establecidos, lo que también puede ser útil para sus propios proyectos.

Si no tiene su propia red WiFi y aún desea conectar los microcontroladores u otros dispositivos a través de WiFi, puede usar un ESP32 como punto de acceso WiFi. Busque esto en los ejemplos de "WiFi" en el boceto WiFiAccessPoint. Asigne sus propios datos de acceso allí y cargue el programa en el microcontrolador. Los otros dispositivos pueden usar la red WLAN recién creada para su comunicación:


El ESP32 tiene otra ventaja sobre el ESP8266: la conexión Bluetooth (LowEnergy y Classic). También puede encontrar bocetos de muestra para esto en el Arduino IDE. Puede instalar la aplicación "Serial Bluetooth Terminal" en su teléfono inteligente para realizar una prueba. Busque el elemento "BluetoothSerial" en los ejemplos en el Arduino IDE y abra el boceto SerialToSerialBT. Después de la carga exitosa, el ESP32 debería estar disponible como un dispositivo Bluetooth. Primero, abra el monitor serial en el Arduino IDE. Luego, conecte su teléfono inteligente a "ESP32test" a través de Bluetooth y luego abra la aplicación mencionada anteriormente. Allí, toque el menú (tres líneas) en la parte superior izquierda y seleccione "Devices". También debería ver "ESP32test" en la lista que aparece. Seleccione el elemento y espere brevemente a que se establezca la conexión. A continuación, puede intercambiar mensajes de texto entre su teléfono inteligente y su PC (a través del monitor en serie).

Los otros bocetos de ejemplo le muestran aún más opciones para implementar sus propios proyectos. También puede conectar sensores, LEDs o pantallas. Los ESP tienen un modo DeepSleep, que es interesante para proyectos que funcionan con baterías.

Si conecta un potenciómetro (resistencia intercambiable) a uno de los pines con un convertidor de analógico a digital (consulte la tabla anterior), obtendrá la función analogRead (NÚMERO DE PIN) un rango de valores de 0 y 4095. A diferencia de los microcontroladores Uno o Nano, que no pasan de 1023.

Importante: ¡Utilice el pin de 3,3 V, NO el pin de 5 V, para conectar el potenciómetro!



void setup() {
Serial.begin(115200);
}

void loop() {
Serial.println(analogRead(33));
delay(30);
}

 

Te deseo una feliz navidad.

Andreas Wolter

para Blog AZ-Delivery

Especialidades

2 comentarios

Gerald Lechner

Gerald Lechner

ESP32 kann nicht über ESP_Easy geflasht werden. Das Tool von ESPRESSIF sollte funktionieren. https://www.espressif.com/en/support/download/other-tools

Reinhardt Schiffke

Reinhardt Schiffke

Kann man den ESP-32 Dev Kit C V4 über esp_easy flashen ? habe alles versucht ,bekomme es nicht hin.

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