Índice:

Introdução ao ESP32: 10 etapas
Introdução ao ESP32: 10 etapas

Vídeo: Introdução ao ESP32: 10 etapas

Vídeo: Introdução ao ESP32: 10 etapas
Vídeo: Introdução ao #ESP32 - Parte 1 2024, Julho
Anonim
Image
Image
Características principais
Características principais

Neste artigo, vamos falar sobre ESP32, que considero ser um irmão mais velho de ESP8266. Gosto muito deste microcontrolador porque tem wi-fi. Só para você ter uma ideia, antes do ESP existir, se você precisasse de um Arduino para ter WiFi, teria que gastar entre US $ 200 e US $ 300 para comprar um adaptador Wifi. O adaptador para cabo de rede não é tão caro, mas para WiFi sempre foi e ainda é caro. Mas, felizmente, a Espressif Systems lançou o ESP e está resolvendo nossas vidas.

Gosto do ESP32 com este formato que possui uma porta USB. Este esquema NodeMCU é fácil de manipular porque não precisa de nenhum sistema eletrônico. Basta conectar o cabo, ligar o dispositivo e programá-lo. Ele funciona exatamente como um Arduino.

De qualquer forma, hoje falaremos sobre os aspectos gerais do ESP32 e como configurar o IDE do Arduino para programar mais dispositivos do tipo. Também faremos um programa que pesquisa as redes e mostra qual delas é mais potente.

Etapa 1: Principais recursos

Chip com WiFi integrado: padrão 802.11 B / G / N, operando na faixa de 2,4 a 2,5 GHz

Modos de operação: Cliente, Ponto de Acesso, Estação + Ponto de Acesso

Microprocessador Dual Core Tensilica Xtensa 32 bits LX6

Relógio ajustável de 80 MHz a 240 MHz

Tensão operacional: 3,3 VDC

Possui SRAM de 512 KB

Possui ROM de 448 KB

Possui memória flash externa de 32Mb (4 megabytes)

A corrente máxima por pino é de 12mA (recomenda-se o uso de 6mA)

Tem 36 GPIOs

GPIOs com funções PWM / I2C e SPI

Possui Bluetooth v4.2 BR / EDR e BLE (Bluetooth Low Energy)

Etapa 2: comparação entre ESP32, ESP8266 e Arduino R3

Comparação entre ESP32, ESP8266 e Arduino R3
Comparação entre ESP32, ESP8266 e Arduino R3

Etapa 3: Tipos de ESP32

Tipos de ESP32
Tipos de ESP32

ESP32 nasceu com muitos irmãos. Hoje estou usando o primeiro da esquerda, o Espressif, mas existem várias marcas e tipos, incluindo display Oled integrado. No entanto, as diferenças são todas no mesmo chip: o Tensilica LX6, 2 Core.

Etapa 4: WiFi NodeMCU-32S ESP-WROOM-32

WiFi NodeMCU-32S ESP-WROOM-32
WiFi NodeMCU-32S ESP-WROOM-32

Este é o diagrama de ESP que estamos usando em nossa montagem. É um chip que tem muito apelo e poder. São vários pinos que você escolhe se querem funcionar como analógico digital, digital analógico ou ainda se que funcionam a porta como digital.

Etapa 5: configurar o Arduino IDE (Windows)

Configurando o Arduino IDE (Windows)
Configurando o Arduino IDE (Windows)
Configurando o Arduino IDE (Windows)
Configurando o Arduino IDE (Windows)

Veja como configurar o IDE do Arduino para que possamos compilar para ESP32:

1. Baixe os arquivos através do link:

2. Descompacte o arquivo e copie o conteúdo para o seguinte caminho:

C: / Users / [YOUR_USER_NAME] / Documents / Arduino / hardware / espressif / esp32

Nota: Se não houver nenhum diretório "espressif" e "esp32", basta criá-los normalmente.

3. Abra o diretório

C: / Users / [YOUR_USER_NAME] / Documents / Arduino / hardware / espressif / esp32 / tools

Execute o arquivo "get.exe".

4. Após a conclusão do "get.exe", conecte o ESP32, aguarde a instalação dos drivers (ou instale manualmente).

Pronto, agora é só escolher a placa ESP32 em "ferramentas >> placa" e compilar seu código.

Etapa 6: varredura de WiFi

Aqui está um exemplo de como procurar redes WiFi disponíveis perto do ESP-32, bem como a força do sinal de cada uma delas. A cada varredura, também descobriremos qual rede tem a melhor intensidade de sinal.

Etapa 7: Código

Primeiro vamos incluir a biblioteca "WiFi.h", será necessário que possamos trabalhar com a placa de rede do nosso dispositivo.

#include "WiFi.h"

Aqui estão duas variáveis que serão usadas para armazenar o SSID (nome) da rede e a força do sinal.

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

Etapa 8: configuração

Na função setup (), definiremos o modo de comportamento WiFi do nosso dispositivo. Neste caso, como o objetivo é pesquisar as redes disponíveis, configuraremos nosso dispositivo para funcionar como uma "estação".

void setup () {// Inicializar Serial para fazer logon Serial Monitor Serial.begin (115200);

// configurando o modo de operação de WiFi como estação WiFi.mode (WIFI_STA); // WIFI_STA é uma constante que indica o modo de estação

// desconectar do ponto de acesso se já estiver conectado WiFi.disconnect (); atraso (100);

// Serial.println ("Configuração concluída");}

Etapa 9: Loop

Na função loop () buscaremos as redes disponíveis e imprimiremos o log das redes encontradas. Para cada uma dessas redes, faremos a comparação para encontrar aquela com a maior intensidade de sinal.

void loop () {// Serial.println ("scan start"); // realiza a varredura das redes disponíveis

int n = WiFi.scanNetworks ();

Serial.println ("Digitalização realizada");

// verifique se você encontrou alguma rede if (n == 0) {Serial.println ("Nenhuma rede encontrada"); } outro {networkSSID = ""; StrengthSignal = -9999; Serial.print (n); Serial.println ("redes encontradas / n"); for (int i = 0; i <n; ++ i) {// imprimir no monitor serial cada uma das redes encontradas Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // nome da rede (ssid) Serial.print ("SIGNAL:"); Serial.print (WiFi. RSSI (i)); // intensidade do sinal 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 ("REDE COM O MELHOR SINAL ENCONTRADO: ("); Serial.print (networkSSID); Serial.print (") - SINAL: ("); Serial.print (StrengthSignal); Serial.println (")"); } atraso (10); }} Serial.println ("\ n ----------------------------------------- ------------------------------------------- / n ");

// intervalo de 5 segundos para realizar um novo retardo de varredura (5000); }

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

Observe que na declaração acima usamos abs (), esta função assume o valor absoluto (ou seja, não negativo) do número. No nosso caso, fizemos isso para encontrar o menor dos valores na comparação, porque a intensidade do sinal é dada como um número negativo e quanto mais próximo de zero melhor é o sinal.

Etapa 10: Arquivos

Baixe todos os meus arquivos em: www.fernandok.com

Recomendado: