|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Tutorial del Internet de las Cosas y Bluetooth con el ESP32
Juan Antonio Villalpando

Volver al índice del tutorial

____________________________

100.- Wemos D1 R32 ESP32. Instalación. IDE Arduino.

- Características de la Tarjeta.

  • Dual core Tensilica Xtensa 32-bit LX6 microprocessor.
  • Tiene 2 núcleos pero en el IDE de Arduino solo usa uno.
  • Ultra low power (ULP) co-processor.
  • Alimentación del chip 2,7 a 3,6V.
  • Memoria SRAM: 520KB [El máximo utilizable 328KB]
  • Memoria Flash: 4MB [El máximo utilizable por sketch 1310720]
  • Alimentación de la tarjeta: 5-12VDC (A veces una pila de 9V no da la suficiente potencia para alimentar al WiFi)
  • Vin para suministrar alimentación externa de 5VDC-12VDC o toma de tensión de clavija (ver esquema)
  • WiFi 802.11 b/g/n/e/i (802.11n hasta 150 Mbps) (unos 16 dBm)
  • Bluetooth v4.2 BR/EDR y BLE.
  • 6 Entrada analógica (12 bits).
  • 2 salidas de convertidor DAC (IO25 y IO26)
  • Frecuencia 160 MHz.
  • 20 Entradas/Salidas digitales (3.3V) (con funciones PWM, interrupción).
  • Comunicación UART, SPI, I2C, I2S (bus de stream, para sonido, DMA)
  • RTOS (Real Time Operating System, Tareas, es como tener varios loop)
  • 10 sensores de toque.
  • Tamaño: 68×53 mm
  • Conexión micro USB.
  • Corriente: 250mA (max)
  • Corriente en modo ahorro: 0.015mA
  • Corriente de funcionamiento: 20mA (sin WiFi)
  • Los pines GPIO del 34 al 39 son sólo de entrada. (se suelen utilizar como entradas analógicas).
  • El diodo de la placa corresponde a la salida IO2 (en la parte de entradas analógicas).
  • Sensor_VP y Sensor_VN salida del sensor Hall.
  • No se recomienda utilizar: SD0, SD1, SD2, SD3, CMD, CL ya que lo utiliza el ESP32 para controlar su memoria Flash.
  • TXD0, RXD0 se utilizan como UART del USB.
  • La versión ESP32-WROOM-32U tiene conector de antena.

https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

- Fíjate que el chip tiene 39 terminales, pero se utilizan 38, de ellos 33 son terminales de datos, sin embargo uno de ellos se denomina GPI39, es decir no coincide la numeración de los terminales con el número de terminales.

- ESP: lo fabrica la empresa China Espressif https://www.espressif.com/en/products/hardware/esp-wroom-32/overview

- 32: trabaja con 32 bits.

- W: tiene WiFi

- ROOM: está encapsulado en una cajita metálica con más componentes, ver foto al final de esta página.

- Instalación.

1.- Instalamos el driver:

ch341ser_win.zip

2.- En el IDE de Arduino vamos a Archivo / Preferencias. Pestaña de Ajustes y pegamos esta dirección en Gestor de URLs Adicionales de Tarjetas:

https://dl.espressif.com/dl/package_esp32_index.json,

3.- Vamos a Herramientas / Placa: / Gestor de tarjetas...

4.- Aparecerá esp32 by Espressif Systems

- Pulsamos en More info y luego en el botón de Instalar

- Tardará unos minutos en Descargar definiciones de tarjetas...

6.- Cuando esté descargado, volvemos a Herramientas / Placa y localizamos DOIT ESP32 DEVKIT V1

- Ya tenemos nuestra tarjeta Wemos D1 R32 preparada para funcionar.

_________________________________
1.- Parpadeo del LED_BUILTIN (IO2).

________________________________
- Conexión.

- Observa que el terminal IO2, nombrado como ANALOG puede funcionar como DIGITAL.

- La mayoría de los terminales pueden funcionar en DIGITAL, ANALÓGICO, PWM y por contacto, depende cómo se defina en el programa.

________________________________
- Código.

- El LED azul de la placa se denomina LED_BUILTIN y está en el terminal 2.
- En vez de poner el número 2, podríamos haber puesto LED_BUILTIN

parpadeo.ino

void setup() {
  pinMode(2, OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH);
  delay(1000);
  digitalWrite(2, LOW);
  delay(1000);
}

_________________________________
2.- Definir terminales.

- Otra manera de establecer los terminales.

parpadeo_2.ino
			
#define pin5 5
// int pin5 = 5;			

void setup() {
  pinMode(pin5, OUTPUT);
}

void loop() {
 digitalWrite(pin5, HIGH); 
 delay(500);
 digitalWrite(pin5, LOW); 
 delay(500);
}

_________________________________
2.- Pulsador.

- El LED azul de la placa se denomina LED_BUILTIN y está en el terminal 2.

- Conectamos un pulsador en el terminal 12, como en la figura. Al pulsarlo se encenderá el LED2.

- No hace falta que pongamos un LED externo, consultaremos el LED azul de la placa que está conectado al terminal 2.

- Consultamos en Monitor Serie (Debe estar a 9600)

 

pulsador.ino
	
/*  Juan A. Villalpando  kio4.com */
// Entrada y Salida.
// Al pulsar el pulsador se enciende el LED, al dejar de pulsarlo, se apaga.

#define pin12 12 // Al terminal 12 lo llamamos pin12. Aquí irá el pulsador.
#define pin2 2 // Al terminal 2 lo llamamos pin2. Aquí irá el LED.
int valor2; // Esto es una variable entera

// En el setup establecemos los parámetros iniciales.
void setup() {
pinMode(pin12, INPUT); // El pin12 será entrada. Pulsador.
pinMode(pin2, OUTPUT); // El pin12 será salida. LED.
Serial.begin(9600); // Para ver información en el Seria Monitor.
}
void loop() {
valor2 = digitalRead(pin12); // Lee el valor del pin12 y se lo asigna a valor2. (Puede ser 0 o 1)
if (valor2 == HIGH) {
digitalWrite(pin2, HIGH); // Si valor2 es ALTO, pone el pin2 en ALTO
Serial.println("Pulsado");
}

if (valor2 == LOW) {
digitalWrite(pin2, LOW); // Si valor12 es BAJO, pone el pin2 en BAJO
Serial.println("No Pulsado");
}
}

_____________________________

- Podemos bajar ejemplos de:

https://github.com/espressif/arduino-esp32/tree/master/libraries

_________________________________
4.- Escanea WiFi cercanos.

https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi/examples/WiFiScan

- Debe salir un listado de los WiFi cercanos.

- Consulta el Monitor Serie.

scanwifi.ino

#include "WiFi.h"

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

    // Desconecta si por si estuviera como Punto de Acceso.
    // WiFi.mode(WIFI_STA);
    WiFi.disconnect();
    delay(100);
}

void loop()
{
    Serial.println("Comienzo de escaneo.");

    // WiFi.scanNetworks indicará el número de redes captadas.
    int n = WiFi.scanNetworks();
    Serial.println("Fin de escaneo.");
    if (n == 0) {
        Serial.println("No se ha encontrado ninguna red.");
    } else {
        Serial.print(n);
        Serial.println(" redes encontradas.");
        for (int i = 0; i < n; ++i) {
            // Nombre de red (SSID) y potencia (RSSI).
            Serial.print(i + 1);
            Serial.print(": ");
            Serial.print(WiFi.SSID(i));
            Serial.print(" (");
            Serial.print(WiFi.RSSI(i));
            Serial.println(" dBm)");
            Serial.print("   Channel: ");
            Serial.println(WiFi.channel(i));
            delay(10);
        }
    }
    Serial.println("");

    // Espera 5 segundos y comienza otro escaneo.
    delay(5000);
}

___________________________________________________
3B
.- ¿Qué es RSSI?

- Es el indicador de fuerza de la señal recibida (RSSI por las siglas del inglés Received Signal Strength Indicator ). RSSI en la Wikipedia.

- Si una señal tiene un RSSI de -50 dBm, qué potencia tiene.

- El dBm indica la potencia en decibelios referido a 1 mW.

- Para pasarlo a Watios sería

10^(-50/10) * 10^(-3) = 10 nW

- En España la máxima potencia de WiFi permitida con 2,4 GHz es de 100 mW, esto es 20 dBm.

- La sensibilidad de las estaciones receptoras suele estar por los -100 dBm.

_______________________________________________

- Incluir librerías.

Se puede poner con doble comillas o con < >, según estos criterios:

#include "archivo.h" buscará la librería primero en el directorio donde esté el código .ino de tu aplicación, si no lo encuentra buscará en la carpeta libraríes de Arduino
#include <archivo.h> solo buscará la librería en la carpeta libraríes de Arduino.

- Las librerías suelen estar en: C:\Archivos de Programa(86)\Arduino\libraries

_____________________________________________________
- Esquema de la tarjeta Wemos D1 R2 con el ESP32.

sch-Wemos-D1-R32.pdf

- Conexión balanceada.

esp32_technical_reference_manual_en.pdf

http://www.ett.co.th/prodESP/WEMOS-D1-R32/WEMOS-D1-R32.html

esp32_hardware_design_guidelines_en.pdf

esp32.pdf

https://www.mouser.es/datasheet/2/891/esp32-wroom-32_datasheet_en-1510934.pdf

esp-wroom-32_datasheet_en.pdf

Comandos AT.

- Otro esquema.

https://github.com/SmartArduino/ESPboard

- Driver 340C: https://sparks.gogo.co.nz/ch340.html

- https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/

- Manuales técnicos del chip:

https://www.espressif.com/en/support/download/documents

 

- Distintas plataformas de programación:

_______________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información