Tabla de contenido:

Introducción a ESP32: 10 pasos
Introducción a ESP32: 10 pasos

Video: Introducción a ESP32: 10 pasos

Video: Introducción a ESP32: 10 pasos
Video: SERIE ESP32 # 1: INTRODUCCIÓN AL ESP32 - TIPOS DE DEVKITS - MODULOS 2024, Noviembre
Anonim
Image
Image
Características clave
Características clave

En este artículo vamos a hablar sobre ESP32, que considero un hermano mayor del ESP8266. Me gusta mucho este microcontrolador porque tiene WiFi. Solo para que tengas una idea, antes de que exista ESP, si necesitas un Arduino para tener WiFi, tendrías que gastar entre $ 200 y $ 300 para comprar un adaptador Wifi. El adaptador para cable de red no es tan caro, pero para WiFi siempre lo ha sido y sigue siendo caro. Pero, afortunadamente, Espressif Systems ha lanzado ESP y está resolviendo nuestras vidas.

Me gusta ESP32 con este formato que tiene un puerto USB. Este esquema NodeMCU es fácil de manipular porque no necesita ningún sistema electrónico. Simplemente conecte el cable, encienda el dispositivo y prográmelo. Funciona como un Arduino.

De todos modos, hoy hablaremos de los aspectos generales de ESP32 y cómo configurar el IDE de Arduino para programar más dispositivos del tipo. También haremos un programa que busque en las redes y muestre cuál es más potente.

Paso 1: características clave

Chip con WiFi incorporado: estándar 802.11 B / G / N, operando en el rango de 2.4 a 2.5GHz

Modos de funcionamiento: Cliente, Punto de acceso, Estación + Punto de acceso

Microprocesador de doble núcleo Tensilica Xtensa 32-bit LX6

Reloj ajustable desde 80MHz hasta 240MHz

Voltaje de funcionamiento: 3,3 V CC

Tiene SRAM de 512KB

Características 448KB ROM

Tiene memoria flash externa de 32Mb (4 megabytes)

La corriente máxima por pin es de 12 mA (se recomienda utilizar 6 mA)

Tiene 36 GPIO

GPIO con funciones PWM / I2C y SPI

Tiene Bluetooth v4.2 BR / EDR y BLE (Bluetooth Low Energy)

Paso 2: Comparación entre ESP32, ESP8266 y Arduino R3

Comparación entre ESP32, ESP8266 y Arduino R3
Comparación entre ESP32, ESP8266 y Arduino R3

Paso 3: Tipos de ESP32

Tipos de ESP32
Tipos de ESP32

ESP32 nació con muchos hermanos. Hoy estoy usando el primero de la izquierda, Espressif, pero hay varias marcas y tipos, incluida la pantalla Oled incorporada. Sin embargo, las diferencias son todas del mismo chip: el Tensilica LX6, 2 Core.

Paso 4: Nodo WiFi MCU-32S ESP-WROOM-32

Nodo WiFi MCU-32S ESP-WROOM-32
Nodo WiFi MCU-32S ESP-WROOM-32

Este es el diagrama de ESP que estamos usando en nuestro ensamblaje. Es un chip que tiene mucho atractivo y poder. Son varios pines que eliges si quieren funcionar como digital analógico, analógico digital o incluso si funcionan la puerta como digital.

Paso 5: Configuración de Arduino IDE (Windows)

Configuración de Arduino IDE (Windows)
Configuración de Arduino IDE (Windows)
Configuración de Arduino IDE (Windows)
Configuración de Arduino IDE (Windows)

A continuación, se explica cómo configurar el IDE de Arduino para que podamos compilar para ESP32:

1. Descarga los archivos a través del enlace:

2. Descomprima el archivo y copie el contenido en la siguiente ruta:

C: / Usuarios / [YOUR_USER_NAME] / Documentos / Arduino / hardware / espressif / esp32

Nota: Si no hay directorio "espressif" y "esp32", simplemente créelos normalmente.

3. Abra el directorio

C: / Usuarios / [YOUR_USER_NAME] / Documentos / Arduino / hardware / espressif / esp32 / tools

Ejecute el archivo "get.exe".

4. Una vez que finalice "get.exe", conecte el ESP32, espere a que se instalen los controladores (o instálelos manualmente).

Listo, ahora solo elija la placa ESP32 en "herramientas >> placa" y compile su código.

Paso 6: Escaneo WiFi

A continuación, se muestra un ejemplo de cómo buscar redes WiFi disponibles cerca del ESP-32, así como la intensidad de la señal de cada una de ellas. Con cada escaneo, también descubriremos qué red tiene la mejor intensidad de señal.

Paso 7: Código

Primero incluyamos la librería "WiFi.h", será necesario que nos permita trabajar con la tarjeta de red de nuestro dispositivo.

#include "WiFi.h"

Aquí hay dos variables que se utilizarán para almacenar el SSID (nombre) de la red y la intensidad de la señal.

String networkSSID = ""; int StrengthSignal = -9999;

Paso 8: configuración

En la función setup () definiremos el modo de comportamiento WiFi de nuestro dispositivo. En este caso, dado que el objetivo es buscar redes disponibles, configuraremos nuestro dispositivo para que funcione como una "estación".

void setup () {// Inicializar Serial para iniciar sesión en Serial Monitor Serial.begin (115200);

// configurando el modo de funcionamiento de WiFi como estación WiFi.mode (WIFI_STA); // WIFI_STA es una constante que indica el modo de la estación

// desconectarse del punto de acceso si ya está conectado WiFi.disconnect (); retraso (100);

// Serial.println ("Configuración realizada");}

Paso 9: bucle

En la función loop (), buscaremos las redes disponibles y luego imprimiremos el registro en las redes encontradas. Para cada una de estas redes haremos la comparación para encontrar la que tenga mayor intensidad de señal.

bucle vacío () {// Serial.println ("inicio de escaneo"); // realiza el escaneo de las redes disponibles

int n = WiFi.scanNetworks ();

Serial.println ("Escaneo realizado");

// compruebe si ha encontrado alguna red if (n == 0) {Serial.println ("No se encontró ninguna red"); } más {networkSSID = ""; StrengthSignal = -9999; Serial.print (n); Serial.println ("redes encontradas / n"); for (int i = 0; i <n; ++ i) {// imprime en el monitor serial cada una de las redes encontradas Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // nombre de la red (ssid) Serial.print ("SIGNAL:"); Serial.print (WiFi. RSSI (i)); // intensidad de la señal Serial.print ("\ t / tCHANNEL:"); Serial.print ((int) WiFi.channel (i)); Serial.print ("\ t / tMAC:"); Serial.print (WiFi. BSSIDstr (i)); Serial.println ("\ n / n"); if (abs (WiFi. RSSI (i)) <abs (StrengthSignal)) {StrengthSignal = WiFi. RSSI (i); networkSSID = WiFi. SSID (i); Serial.print ("RED CON LA MEJOR SEÑAL ENCONTRADA: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (StrengthSignal); Serial.println (")"); } retraso (10); }} Serial.println ("\ n ----------------------------------------- -------------------------------------------\norte");

// intervalo de 5 segundos para realizar un nuevo retardo de escaneo (5000); }

"Si (abs (WiFi. RSSI (i))"

Tenga en cuenta que en la declaración anterior usamos abs (), esta función toma el valor absoluto (es decir, no negativo) del número. En nuestro caso, hicimos esto para encontrar el más pequeño de los valores en la comparación, porque la intensidad de la señal se da como un número negativo y cuanto más cerca de cero, mejor es la señal.

Paso 10: archivos

Descarga todos mis archivos en: www.fernandok.com

Recomendado: