Taula de continguts:

Introducció a ESP32: 10 passos
Introducció a ESP32: 10 passos

Vídeo: Introducció a ESP32: 10 passos

Vídeo: Introducció a ESP32: 10 passos
Vídeo: Управляем адресными светодиодами на ESP32, прошивка WLED, применение в Home Assistant 2024, De novembre
Anonim
Image
Image
Característiques clau
Característiques clau

En aquest article parlarem d’ESP32, que considero un germà gran de l’ESP8266. M’agrada molt aquest microcontrolador perquè té WiFi. Perquè tingueu una idea, abans que existeixi ESP, si necessiteu un Arduino per tenir WiFi, hauríeu de gastar entre 200 i 300 dòlars per comprar un adaptador Wifi. L’adaptador per al cable de xarxa no és tan car, però per al WiFi sempre ha estat i encara és car. Però, per sort, Espressif Systems ha llançat ESP i està resolent les nostres vides.

M'agrada ESP32 amb aquest format que té un port USB. Aquest esquema NodeMCU és fàcil de manipular perquè no necessita electrònica. Només cal connectar el cable, alimentar el dispositiu i programar-lo. Funciona com un Arduino.

De totes maneres, avui parlarem dels aspectes generals de l’ESP32 i de com configurar l’Arduino IDE per programar més dispositius d’aquest tipus. També farem un programa que busca a les xarxes i mostra quina és més potent.

Pas 1: funcions clau

Xip amb WiFi integrat: estàndard 802.11 B / G / N, que funciona en el rang de 2,4 a 2,5 GHz

Modes de funcionament: client, punt d'accés, estació + punt d'accés

Microprocessador de doble nucli Tensilica Xtensa LX6 de 32 bits

Rellotge ajustable des de 80 MHz fins a 240 MHz

Voltatge de funcionament: 3,3 V CC

Té SRAM de 512 KB

Inclou 448 KB de ROM

Té memòria flash externa de 32 MB (4 megabytes)

El corrent màxim per pin és de 12 mA (es recomana utilitzar 6 mA)

Té 36 GPIO

GPIO amb funcions PWM / I2C i SPI

Té Bluetooth v4.2 BR / EDR i BLE (Bluetooth de baix consum)

Pas 2: comparació entre ESP32, ESP8266 i Arduino R3

Comparació entre ESP32, ESP8266 i Arduino R3
Comparació entre ESP32, ESP8266 i Arduino R3

Pas 3: tipus d'ESP32

Tipus d’ESP32
Tipus d’ESP32

ESP32 va néixer amb molts germans. Avui faig servir el primer de l'esquerra, Espressif, però hi ha diverses marques i tipus, inclosa la pantalla Oled integrada. Tot i això, les diferències són totes iguals: el Tensilica LX6, 2 Core.

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

Node WiFi MCU-32S ESP-WROOM-32
Node WiFi MCU-32S ESP-WROOM-32

Aquest és el diagrama d’ESP que estem utilitzant en el nostre muntatge. És un xip que té molt d’atractiu i força. Són diversos pins que trieu si volen funcionar com a analògics digitals, analògics digitals o fins i tot si funcionen com a digitals.

Pas 5: Configuració d'Arduino IDE (Windows)

Configuració d'Arduino IDE (Windows)
Configuració d'Arduino IDE (Windows)
Configuració d'Arduino IDE (Windows)
Configuració d'Arduino IDE (Windows)

A continuació s’explica com configurar l’IDE Arduino perquè puguem compilar per ESP32:

1. Baixeu els fitxers mitjançant l'enllaç:

2. Descomprimiu el fitxer i copieu el contingut al camí següent:

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

Nota: Si no hi ha cap directori "espressif" ni "esp32", només cal que els creeu normalment.

3. Obriu el directori

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

Executeu el fitxer "get.exe".

4. Quan finalitzi "get.exe", connecteu l'ESP32, espereu que s'instal·lin els controladors (o instal·leu-los manualment).

A punt, ara només heu de triar el tauler ESP32 a "eines >> tauler" i compilar el vostre codi.

Pas 6: escaneig de WiFi

Aquí teniu un exemple de com cercar les xarxes WiFi disponibles a prop de l’ESP-32, així com la intensitat del senyal de cadascuna d’elles. Amb cada exploració, també descobrirem quina xarxa té la millor intensitat de senyal.

Pas 7: Codi

Primer, incloguem la biblioteca "WiFi.h", serà necessari que puguem treballar amb la targeta de xarxa del nostre dispositiu.

#include "WiFi.h"

A continuació, es mostren dues variables que s’utilitzaran per emmagatzemar el SSID (nom) i la intensitat del senyal de la xarxa.

Cadena networkSSID = ""; int strengthSignal = -9999;

Pas 8: Configuració

A la funció setup () definirem el mode de comportament WiFi del nostre dispositiu. En aquest cas, atès que l'objectiu és buscar xarxes disponibles, configurarem el nostre dispositiu perquè funcioni com a "estació".

void setup () {// Inicialitza el serial per iniciar la sessió Serial Monitor Serial.begin (115200);

// configurar el mode de funcionament de WiFi com a estació WiFi.mode (WIFI_STA); // WIFI_STA és una constant que indica el mode d’estació

// desconnecteu del punt d'accés si ja està connectat WiFi.disconnect (); retard (100);

// Serial.println ("Configuració feta");}

Pas 9: bucle

A la funció loop (), cercarem les xarxes disponibles i després imprimirem el registre a les xarxes trobades. Per a cadascuna d’aquestes xarxes farem la comparació per trobar la que tingui la intensitat de senyal més alta.

bucle buit () {// Serial.println ("inici de digitalització"); // realitza l’escaneig de les xarxes disponibles

int n = WiFi.scanNetworks ();

Serial.println ("Escaneig realitzat");

// comproveu si heu trobat alguna xarxa si (n == 0) {Serial.println ("No s'ha trobat cap xarxa"); } else {networkSSID = ""; strengthSignal = -9999; Serial.print (n); Serial.println ("xarxes trobades / n"); for (int i = 0; i <n; ++ i) {// imprimeix al monitor sèrie cadascuna de les xarxes trobades Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // nom de la xarxa (ssid) Serial.print ("SIGNAL:"); Serial.print (WiFi. RSSI (i)); // intensitat del senyal 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 ("XARXA AMB EL MILLOR SENYAL TROBAT: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (strengthSignal); Serial.println (")"); } retard (10); }} Serial.println ("\ n ----------------------------------------- ------------------------------------------- / n ");

// interval de 5 segons per realitzar un nou retard d'escaneig (5000); }

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

Tingueu en compte que a l’afirmació anterior fem servir abs (), aquesta funció pren el valor absolut (és a dir, no negatiu) del nombre. En el nostre cas, hem fet això per trobar el valor més petit de la comparació, perquè la intensitat del senyal es dóna com a nombre negatiu i com més a prop de zero millor serà el senyal.

Pas 10: fitxers

Descarregueu tots els meus fitxers a: www.fernandok.com

Recomanat: