Indholdsfortegnelse:

Introduktion til ESP32: 10 trin
Introduktion til ESP32: 10 trin

Video: Introduktion til ESP32: 10 trin

Video: Introduktion til ESP32: 10 trin
Video: Next Videos - ESP32 Development Board (Web Server Project) 2024, November
Anonim
Image
Image
Nøglefunktioner
Nøglefunktioner

I denne artikel vil vi tale om ESP32, som jeg anser for at være en ældre bror til ESP8266. Jeg kan virkelig godt lide denne mikrokontroller, fordi den har WiFi. Bare så du har en idé, før ESP eksisterer, hvis du havde brug for en Arduino for at have WiFi, skulle du bruge mellem $ 200 og $ 300 for at købe en Wifi -adapter. Adapteren til netværkskabel er ikke så dyr, men for WiFi har det altid været og er stadig dyrt. Men heldigvis har Espressif Systems lanceret ESP og løser vores liv.

Jeg kan godt lide ESP32 med dette format, der har en USB -port. Denne NodeMCU -ordning er let at manipulere, fordi den ikke har brug for elektronik. Tilslut bare kablet, tænd for enheden og programmer det. Det fungerer ligesom en Arduino.

Anyway, i dag vil vi tale om de generelle aspekter af ESP32 og hvordan man konfigurerer Arduino IDE til at programmere flere enheder af denne type. Vi vil også lave et program, der søger i netværkene og viser, hvilket er mere kraftfuldt.

Trin 1: Nøglefunktioner

Chip med indbygget WiFi: standard 802.11 B / G / N, der opererer i området 2,4 til 2,5 GHz

Driftsformer: Client, Access Point, Station + Access Point

Dual-core mikroprocessor Tensilica Xtensa 32-bit LX6

Justerbart ur fra 80MHz til 240MHz

Driftsspænding: 3,3 VDC

Den har SRAM på 512 KB

Indeholder 448 KB ROM

Den har en ekstern flash -hukommelse på 32 Mb (4 megabyte)

Maksimal strøm pr. Stift er 12mA (det anbefales at bruge 6mA)

Det har 36 GPIO'er

GPIO'er med PWM / I2C- og SPI -funktioner

Det har Bluetooth v4.2 BR / EDR og BLE (Bluetooth Low Energy)

Trin 2: Sammenligning mellem ESP32, ESP8266 og Arduino R3

Sammenligning mellem ESP32, ESP8266 og Arduino R3
Sammenligning mellem ESP32, ESP8266 og Arduino R3

Trin 3: Typer af ESP32

Typer af ESP32
Typer af ESP32

ESP32 blev født med en masse søskende. I dag bruger jeg den første fra venstre, Espressif, men der er flere mærker og typer, herunder indbygget Oled-display. Forskellene er dog alle den samme chip: Tensilica LX6, 2 Core.

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

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

Dette er diagrammet over ESP, som vi bruger i vores samling. Det er en chip, der har masser af appel og kraft. Det er flere pins, du vælger, om de vil arbejde som digital analog, analog digital eller endda hvis det virker døren som digital.

Trin 5: Konfiguration af Arduino IDE (Windows)

Konfiguration af Arduino IDE (Windows)
Konfiguration af Arduino IDE (Windows)
Konfiguration af Arduino IDE (Windows)
Konfiguration af Arduino IDE (Windows)

Sådan konfigureres Arduino IDE, så vi kan kompilere til ESP32:

1. Download filerne via linket:

2. Pak filen ud, og kopier indholdet til følgende sti:

C: / Brugere / [YOUR_USER_NAME] / Dokumenter / Arduino / hardware / espressif / esp32

Bemærk: Hvis der ikke er nogen mappe "espressif" og "esp32", skal du bare oprette dem normalt.

3. Åbn biblioteket

C: / Brugere / [YOUR_USER_NAME] / Dokumenter / Arduino / hardware / espressif / esp32 / tools

Kør filen "get.exe".

4. Når "get.exe" er færdig, skal du tilslutte ESP32, vente på, at driverne installeres (eller installeres manuelt).

Klar, vælg nu bare ESP32 -kortet i "værktøj >> bord" og kompilér din kode.

Trin 6: WiFi -scanning

Her er et eksempel på, hvordan man leder efter tilgængelige WiFi-netværk i nærheden af ESP-32, samt signalstyrken for hver af dem. Med hver scanning finder vi også ud af, hvilket netværk der har den bedste signalstyrke.

Trin 7: Kode

Lad os først inkludere biblioteket "WiFi.h", det vil være nødvendigt for at tillade os at arbejde med netværkskortet på vores enhed.

#inkluder "WiFi.h"

Her er to variabler, der bruges til at gemme netværkets SSID (navn) og signalstyrke.

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

Trin 8: Opsætning

I funktionen setup () definerer vi WiFi -adfærdstilstanden på vores enhed. I dette tilfælde, da målet er at søge efter tilgængelige netværk, konfigurerer vi vores enhed til at fungere som en "station".

void setup () {// Initialize Serial for at logge på Serial Monitor Serial.begin (115200);

// konfigurering af driftsmåden for WiFi som station WiFi.mode (WIFI_STA); // WIFI_STA er en konstant, der angiver stationstilstanden

// afbryd forbindelsen fra adgangspunktet, hvis det allerede er tilsluttet WiFi. afbryd (); forsinkelse (100);

// Serial.println ("Opsætning udført");}

Trin 9: Sløjfe

I loop () -funktionen vil vi søge efter de tilgængelige netværk og derefter udskrive loggen i de fundne netværk. For hvert af disse netværk foretager vi sammenligningen for at finde det med den højeste signalstyrke.

void loop () {// Serial.println ("scan start"); // udfører scanning af tilgængelige netværk

int n = WiFi.scanNetworks ();

Serial.println ("Scan udført");

// kontrollere, om du har fundet et netværk, hvis (n == 0) {Serial.println ("Ingen netværk fundet"); } andet {networkSSID = ""; strengthSignal = -9999; Serial.print (n); Serial.println ("netværk fundet / n"); for (int i = 0; i <n; ++ i) {// print på seriel skærm hvert af de fundne netværk Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // netværksnavn (ssid) Serial.print ("SIGNAL:"); Seriel.print (WiFi. RSSI (i)); // signalstyrke Serial.print ("\ t / tCHANNEL:"); Serial.print ((int) WiFi.channel (i)); Serial.print ("\ t / tMAC:"); Seriel.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 ("NETWORK WITH THE BEST SIGNAL FOUND: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (strengthSignal); Serial.println (")"); } forsinkelse (10); }} Serial.println ("\ n ----------------------------------------- ------------------------------------------- / n ");

// interval på 5 sekunder for at udføre en ny scanningsforsinkelse (5000); }

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

Bemærk, at i ovenstående sætning bruger vi abs (), denne funktion tager den absolutte værdi (dvs. ikke negativ) af tallet. I vores tilfælde gjorde vi dette for at finde den mindste af værdierne i sammenligningen, fordi signalintensiteten er givet som et negativt tal og jo tættere på nul jo bedre er signalet.

Trin 10: Filer

Download alle mine filer på: www.fernandok.com

Anbefalede: