Innehållsförteckning:

Introduktion till ESP32: 10 steg
Introduktion till ESP32: 10 steg

Video: Introduktion till ESP32: 10 steg

Video: Introduktion till ESP32: 10 steg
Video: ESP32 Turorial 1 - Introduction to SunFounder's ESP32 IoT Learnig kit Software and Arduino IDE 2024, Juli
Anonim
Image
Image
Nyckelfunktioner
Nyckelfunktioner

I den här artikeln ska vi prata om ESP32, som jag anser vara en äldre bror till ESP8266. Jag gillar verkligen denna mikrokontroller eftersom den har WiFi. Bara så att du har en idé, innan ESP finns, om du behövde en Arduino för att ha WiFi, måste du spendera mellan $ 200 och $ 300 för att köpa en Wifi -adapter. Adaptern för nätverkskabel är inte så dyr, men för WiFi har det alltid varit och är fortfarande dyrt. Men lyckligtvis har Espressif Systems lanserat ESP och löser våra liv.

Jag gillar ESP32 med det här formatet som har en USB -port. Detta NodeMCU -schema är lätt att manipulera eftersom det inte behöver någon elektronik. Anslut bara kabeln, slå på enheten och programmera den. Det fungerar precis som en Arduino.

Hur som helst, idag kommer vi att prata om de allmänna aspekterna av ESP32 och hur man konfigurerar Arduino IDE för att programmera fler enheter av den typen. Vi kommer också att göra ett program som söker i nätverken och visar vilket som är mer kraftfullt.

Steg 1: Viktiga funktioner

Chip med inbyggt WiFi: standard 802.11 B / G / N, som fungerar inom intervallet 2,4 till 2,5 GHz

Driftsätt: Client, Access Point, Station + Access Point

Dubbelkärnig mikroprocessor Tensilica Xtensa 32-bitars LX6

Justerbar klocka från 80MHz upp till 240MHz

Driftspänning: 3,3 VDC

Den har SRAM på 512 KB

Har 448KB ROM

Den har ett externt flashminne på 32 Mb (4 megabyte)

Maximal ström per stift är 12mA (rekommenderas att använda 6mA)

Den har 36 GPIO: er

GPIO: er med PWM / I2C- och SPI -funktioner

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

Steg 2: Jämförelse mellan ESP32, ESP8266 och Arduino R3

Jämförelse mellan ESP32, ESP8266 och Arduino R3
Jämförelse mellan ESP32, ESP8266 och Arduino R3

Steg 3: Typer av ESP32

Typer av ESP32
Typer av ESP32

ESP32 föddes med många syskon. Idag använder jag den första från vänster, Espressif, men det finns flera märken och typer, inklusive inbyggd Oled-display. Skillnaderna är dock samma chip: Tensilica LX6, 2 Core.

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

WiFi-nodMCU-32S ESP-WROOM-32
WiFi-nodMCU-32S ESP-WROOM-32

Detta är diagrammet över ESP som vi använder i vår montering. Det är ett chip som har mycket överklagande och kraft. De är flera stift du väljer om de vill arbeta som digital analog, analog digital eller även om det fungerar dörren som digital.

Steg 5: Konfigurera Arduino IDE (Windows)

Konfigurera Arduino IDE (Windows)
Konfigurera Arduino IDE (Windows)
Konfigurera Arduino IDE (Windows)
Konfigurera Arduino IDE (Windows)

Så här konfigurerar du Arduino IDE så att vi kan kompilera för ESP32:

1. Ladda ner filerna via länken:

2. Packa upp filen och kopiera innehållet till följande sökväg:

C: / Användare / [YOUR_USER_NAME] / Dokument / Arduino / hardware / espressif / esp32

Obs! Om det inte finns någon katalog "espressif" och "esp32", skapar du dem normalt.

3. Öppna katalogen

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

Kör filen "get.exe".

4. När "get.exe" är klar kopplar du in ESP32, väntar på att drivrutinerna installeras (eller installeras manuellt).

Klar, välj nu bara ESP32 -kortet i "verktyg >> kort" och sammanställ din kod.

Steg 6: WiFi -skanning

Här är ett exempel på hur man letar efter tillgängliga WiFi-nätverk nära ESP-32, samt signalstyrkan för var och en av dem. Med varje genomsökning kommer vi också att ta reda på vilket nätverk som har den bästa signalstyrkan.

Steg 7: Kod

Låt oss först inkludera biblioteket "WiFi.h", det kommer att vara nödvändigt för att vi ska kunna arbeta med nätverkskortet på vår enhet.

#inkludera "WiFi.h"

Här är två variabler som kommer att användas för att lagra nätverkets SSID (namn) och signalstyrka.

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

Steg 8: Inställning

I funktionen setup () kommer vi att definiera WiFi -beteende -läget för vår enhet. I det här fallet, eftersom målet är att söka efter tillgängliga nätverk, kommer vi att konfigurera vår enhet för att fungera som en "station".

void setup () {// Initialize Serial to log in Serial Monitor Serial.begin (115200);

// konfigurera driftsläget för WiFi som stationens WiFi.mode (WIFI_STA); // WIFI_STA är en konstant som indikerar stationsläget

// koppla bort från åtkomstpunkten om den redan är ansluten WiFi.disconnect (); fördröjning (100);

// Serial.println ("Installation klar");}

Steg 9: Slinga

I loop () -funktionen kommer vi att söka efter tillgängliga nätverk och sedan skriva ut loggen i de hittade nätverken. För vart och ett av dessa nätverk kommer vi att göra jämförelsen för att hitta den med den högsta signalstyrkan.

void loop () {// Serial.println ("scan start"); // utför skanning av tillgängliga nätverk

int n = WiFi.scanNetworks ();

Serial.println ("Skanning utförd");

// kontrollera om du har hittat något nätverk om (n == 0) {Serial.println ("Inget nätverk hittades"); } annat {networkSSID = ""; strengthSignal = -9999; Serial.print (n); Serial.println ("nätverk hittade / n"); för (int i = 0; i <n; ++ i) {// skriv ut på seriell bildskärm vart och ett av de nätverk som hittats Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // nätverksnamn (ssid) Serial.print ("SIGNAL:"); Serial.print (WiFi. RSSI (i)); // signalstyrka 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 (")"); } fördröjning (10); }} Serial.println ("\ n ----------------------------------------- ------------------------------------------- / n ");

// intervall på 5 sekunder för att utföra en ny skanningsfördröjning (5000); }

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

Observera att i ovanstående sats använder vi abs (), den här funktionen tar det absoluta värdet (dvs inte negativt) av talet. I vårt fall gjorde vi detta för att hitta de minsta av värdena i jämförelsen, eftersom signalintensiteten anges som ett negativt tal och ju närmare noll desto bättre signal.

Steg 10: Filer

Ladda ner alla mina filer på: www.fernandok.com

Rekommenderad: