Innholdsfortegnelse:

Introduksjon til ESP32: 10 trinn
Introduksjon til ESP32: 10 trinn

Video: Introduksjon til ESP32: 10 trinn

Video: Introduksjon til ESP32: 10 trinn
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, November
Anonim
Image
Image
Nøkkelegenskaper
Nøkkelegenskaper

I denne artikkelen skal vi snakke om ESP32, som jeg anser som en eldre bror til ESP8266. Jeg liker denne mikrokontrolleren veldig godt fordi den har WiFi. Bare så du har en idé, før ESP eksisterer, hvis du trengte en Arduino for å ha WiFi, må du bruke mellom $ 200 og $ 300 for å kjøpe en Wifi -adapter. Adapteren for nettverkskabel er ikke så dyr, men for WiFi har den alltid vært og er fortsatt dyr. Men heldigvis har Espressif Systems lansert ESP og løser våre liv.

Jeg liker ESP32 med dette formatet som har en USB -port. Denne NodeMCU -ordningen er enkel å manipulere fordi den ikke trenger elektronikk. Bare koble til kabelen, slå på enheten og programmer den. Det fungerer akkurat som en Arduino.

Uansett, i dag vil vi snakke om de generelle aspektene ved ESP32 og hvordan du konfigurerer Arduino IDE til å programmere flere enheter av typen. Vi vil også lage et program som søker i nettverkene og viser hvilket som er kraftigere.

Trinn 1: Viktige funksjoner

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

Driftsmåter: Client, Access Point, Station + Access Point

Dual-core mikroprosessor Tensilica Xtensa 32-biters LX6

Justerbar klokke fra 80MHz til 240MHz

Driftsspenning: 3,3 VDC

Den har SRAM på 512 KB

Har 448 KB ROM

Den har et eksternt flashminne på 32 Mb (4 megabyte)

Maksimal strøm per pinne er 12mA (det anbefales å bruke 6mA)

Den har 36 GPIOer

GPIOer med PWM / I2C- og SPI -funksjoner

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

Trinn 2: Sammenligning mellom ESP32, ESP8266 og Arduino R3

Sammenligning mellom ESP32, ESP8266 og Arduino R3
Sammenligning mellom ESP32, ESP8266 og Arduino R3

Trinn 3: Typer ESP32

Typer ESP32
Typer ESP32

ESP32 ble født med mange søsken. I dag bruker jeg den første fra venstre, Espressif, men det er flere merker og typer, inkludert innebygd Oled-skjerm. Forskjellene er imidlertid alle de samme brikkene: Tensilica LX6, 2 Core.

Trinn 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 bruker i vår samling. Det er en brikke som har mye appell og kraft. De er flere pins du velger om de vil jobbe som digital analog, analog digital eller selv om det fungerer døren som digital.

Trinn 5: Konfigurering av Arduino IDE (Windows)

Konfigurere Arduino IDE (Windows)
Konfigurere Arduino IDE (Windows)
Konfigurere Arduino IDE (Windows)
Konfigurere Arduino IDE (Windows)

Slik konfigurerer du Arduino IDE slik at vi kan kompilere for ESP32:

1. Last ned filene via lenken:

2. Pakk ut filen og kopier innholdet til følgende bane:

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

Merk: Hvis det ikke er noen katalog "espressif" og "esp32", må du bare lage dem normalt.

3. Åpne katalogen

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

Kjør filen "get.exe".

4. Etter at "get.exe" er ferdig, kobler du til ESP32, venter på at driverne skal installeres (eller installeres manuelt).

Klar, nå er det bare å velge ESP32 -kortet i "tools >> board" og kompilere koden din.

Trinn 6: WiFi -skanning

Her er et eksempel på hvordan du ser etter tilgjengelige WiFi-nettverk i nærheten av ESP-32, samt signalstyrken til hver av dem. Med hver skanning vil vi også finne ut hvilket nettverk som har den beste signalstyrken.

Trinn 7: Kode

La oss først inkludere biblioteket "WiFi.h", det vil være nødvendig å la oss jobbe med nettverkskortet til enheten vår.

#inkludere "WiFi.h"

Her er to variabler som skal brukes til å lagre nettverkets SSID (navn) og signalstyrke.

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

Trinn 8: Oppsett

I oppsett () -funksjonen definerer vi WiFi -oppføringsmodus for enheten vår. I dette tilfellet, siden målet er å søke etter tilgjengelige nettverk, vil vi konfigurere enheten til å fungere som en "stasjon".

void setup () {// Initialize Serial for logging in Serial Monitor Serial.begin (115200);

// konfigurere driftsmåten til WiFi som stasjon WiFi.mode (WIFI_STA); // WIFI_STA er en konstant som indikerer stasjonsmodus

// koble fra tilgangspunktet hvis det allerede er tilkoblet WiFi. koble fra (); forsinkelse (100);

// Serial.println ("Oppsett utført");}

Trinn 9: Sløyfe

I loop () -funksjonen vil vi søke etter de tilgjengelige nettverkene og deretter skrive ut loggen i de funnet nettverkene. For hvert av disse nettverkene vil vi sammenligne for å finne det med den høyeste signalstyrken.

void loop () {// Serial.println ("scan start"); // utfører skanning av tilgjengelige nettverk

int n = WiFi.scanNetworks ();

Serial.println ("Skanning utført");

// sjekk om du har funnet noe nettverk hvis (n == 0) {Serial.println ("Ingen nettverk funnet"); } annet {networkSSID = ""; strengthSignal = -9999; Serial.print (n); Serial.println ("nettverk funnet / n"); for (int i = 0; i <n; ++ i) {// skriv ut på seriell skjerm hvert av nettverkene Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // nettverksnavn (ssid) Serial.print ("SIGNAL:"); Serial.print (WiFi. RSSI (i)); // signalstyrke 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 ("NETWORK WITH THE BEST SIGNAL FOUND: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (strengthSignal); Serial.println (")"); } forsinkelse (10); }} Serial.println ("\ n ----------------------------------------- ------------------------------------------- / n ");

// intervall på 5 sekunder for å utføre en ny skanneforsinkelse (5000); }

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

Vær oppmerksom på at i setningen ovenfor bruker vi abs (), denne funksjonen tar den absolutte verdien (dvs. ikke negativ) av tallet. I vårt tilfelle gjorde vi dette for å finne den minste av verdiene i sammenligningen, fordi signalintensiteten er gitt som et negativt tall og jo nærmere null jo bedre signal.

Trinn 10: Filer

Last ned alle filene mine på: www.fernandok.com

Anbefalt: