Turinys:

Įvadas į ESP32: 10 žingsnių
Įvadas į ESP32: 10 žingsnių

Video: Įvadas į ESP32: 10 žingsnių

Video: Įvadas į ESP32: 10 žingsnių
Video: Using 28BYJ-48 Stepper Motor Push button Speed with 8 projects: Ultimate Video Tutorial Lesson 107 2024, Liepa
Anonim
Image
Image
Pagrindiniai bruožai
Pagrindiniai bruožai

Šiame straipsnyje mes kalbėsime apie ESP32, kurį laikau vyresniu ESP8266 broliu. Man labai patinka šis mikrovaldiklis, nes jis turi WiFi. Tiesiog, kad turėtumėte idėją, kol dar nebuvo ESP, jei jums reikėjo „Arduino“, kad galėtumėte naudotis „WiFi“, turėsite išleisti nuo 200 iki 300 USD, kad nusipirktumėte „Wifi“adapterį. Tinklo kabelio adapteris nėra toks brangus, tačiau „WiFi“jis visada buvo ir tebėra brangus. Bet, laimei, „Espressif Systems“pradėjo ESP ir sprendžia mūsų gyvenimą.

Man patinka šio formato ESP32, turintis USB prievadą. Šia „NodeMCU“schema lengva manipuliuoti, nes jai nereikia jokios elektronikos. Tiesiog prijunkite laidą, įjunkite įrenginį ir užprogramuokite. Jis veikia kaip „Arduino“.

Šiaip ar taip, šiandien kalbėsime apie bendruosius ESP32 aspektus ir kaip sukonfigūruoti „Arduino IDE“programuoti daugiau tokio tipo įrenginių. Taip pat sukursime programą, kuri ieško tinklų ir parodo, kuris iš jų yra galingesnis.

1 žingsnis: pagrindinės savybės

Lustas su įmontuotu „WiFi“: standartinis 802.11 B / G / N, veikiantis 2,4–2,5 GHz diapazone

Veikimo režimai: klientas, prieigos taškas, stotis + prieigos taškas

Dviejų branduolių mikroprocesorius Tensilica Xtensa 32 bitų LX6

Reguliuojamas laikrodis nuo 80MHz iki 240MHz

Darbinė įtampa: 3,3 VDC

Jo SRAM yra 512 KB

Turi 448KB ROM

Išorinė „flash“atmintis yra 32 MB (4 megabaitai)

Maksimali srovė vienam kaiščiui yra 12 mA (rekomenduojama naudoti 6 mA)

Jame yra 36 GPIO

GPIO su PWM / I2C ir SPI funkcijomis

Turi „Bluetooth v4.2 BR / EDR“ir BLE („Bluetooth“mažai energijos)

2 žingsnis: ESP32, ESP8266 ir „Arduino R3“palyginimas

ESP32, ESP8266 ir „Arduino R3“palyginimas
ESP32, ESP8266 ir „Arduino R3“palyginimas

3 žingsnis: ESP32 tipai

ESP32 tipai
ESP32 tipai

ESP32 gimė su daugybe brolių ir seserų. Šiandien aš naudoju pirmąjį iš kairės, „Espressif“, tačiau yra keletas prekės ženklų ir tipų, įskaitant įmontuotą „Oled“ekraną. Tačiau skirtumai yra visi tie patys lustai: „Tensilica LX6, 2 Core“.

4 žingsnis: „WiFi NodeMCU-32S ESP-WROOM-32“

„WiFi“mazgasMCU-32S ESP-WROOM-32
„WiFi“mazgasMCU-32S ESP-WROOM-32

Tai yra ESP schema, kurią naudojame savo surinkime. Tai lustas, turintis daug patrauklumo ir galios. Tai yra keli kaiščiai, kuriuos pasirenkate, ar jie nori dirbti kaip skaitmeniniai analoginiai, analoginiai skaitmeniniai, ar net jei jie veikia kaip skaitmeniniai.

5 veiksmas: „Arduino IDE“konfigūravimas („Windows“)

„Arduino IDE“konfigūravimas („Windows“)
„Arduino IDE“konfigūravimas („Windows“)
„Arduino IDE“konfigūravimas („Windows“)
„Arduino IDE“konfigūravimas („Windows“)

Štai kaip sukonfigūruoti „Arduino IDE“, kad galėtume surinkti ESP32:

1. Atsisiųskite failus naudodami nuorodą:

2. Išpakuokite failą ir nukopijuokite turinį šiuo keliu:

C: / Vartotojai / [YOUR_USER_NAME] / Dokumentai / „Arduino“/ aparatinė įranga / espressif / esp32

Pastaba: jei nėra katalogų „espressif“ir „esp32“, tiesiog sukurkite juos įprastai.

3. Atidarykite katalogą

C: / Vartotojai / [YOUR_USER_NAME] / Dokumentai / „Arduino“/ aparatinė įranga / espressif / esp32 / tools

Paleiskite failą „get.exe“.

4. Užbaigus „get.exe“, prijunkite ESP32, palaukite, kol bus įdiegtos tvarkyklės (arba įdiekite rankiniu būdu).

Paruošta, dabar tiesiog pasirinkite ESP32 plokštę „įrankiai >> lentoje“ir surinkite savo kodą.

6 veiksmas: „WiFi“nuskaitymas

Štai pavyzdys, kaip ieškoti prieinamų „WiFi“tinklų netoli ESP-32, taip pat kiekvieno iš jų signalo stiprumas. Su kiekvienu nuskaitymu mes taip pat išsiaiškinsime, kuris tinklas turi geriausią signalo stiprumą.

7 žingsnis: kodas

Pirmiausia įtraukime biblioteką „WiFi.h“, turėsite leisti mums dirbti su savo įrenginio tinklo kortele.

#įtraukti „WiFi.h“

Čia yra du kintamieji, kurie bus naudojami tinklo SSID (pavadinimui) ir signalo stiprumui saugoti.

Styginių tinklasSSID = ""; int forceSignal = -9999;

8 veiksmas: sąranka

Funkcijoje setup () nustatysime savo įrenginio „WiFi“elgesio režimą. Šiuo atveju, kadangi tikslas yra ieškoti galimų tinklų, mes sukonfigūruosime savo įrenginį veikti kaip „stotį“.

void setup () {// Inicijuokite seriją, kad prisijungtumėte prie „Serial Monitor“Serial.begin (115200);

// „WiFi“režimo konfigūravimas kaip stoties „WiFi.mode“(WIFI_STA); // WIFI_STA yra konstanta, rodanti stoties režimą

// atsijungti nuo prieigos taško, jei jis jau prijungtas WiFi.disconnect (); vėlavimas (100);

// Serial.println ("Sąranka atlikta");}

9 žingsnis: ciklas

Funkcijoje „loop ()“ieškosime galimų tinklų ir tada išspausdinsime žurnalą rastuose tinkluose. Kiekvieną iš šių tinklų atliksime palyginimą, kad surastume tinklą, kurio signalo stiprumas yra didžiausias.

void loop () {// Serial.println ("nuskaitymo pradžia"); // atlieka galimų tinklų nuskaitymą

int n = WiFi.scanNetworks ();

Serial.println („Skenavimas atliktas“);

// patikrinkite, ar radote kokį nors tinklą, jei (n == 0) {Serial.println ("Nerasta tinklo"); } else {networkSSID = ""; stiprumasSignalas = -9999; Serijinis atspaudas (n); Serial.println ("rasti tinklai / n"); for (int i = 0; i <n; ++ i) {// spausdinti serijiniame monitoriuje kiekvieną rastą tinklą Serial.print ("SSID:"); Serial.println („WiFi. SSID (i)“); // tinklo pavadinimas (ssid) Serial.print ("SIGNAL:"); Serijinis spausdinimas („WiFi. RSSI (i)“); // signalo stiprumas Serial.print ("\ t / tCHANNEL:"); „Serial.print“((int) „WiFi“kanalas (i)); Serial.print ("\ t / tMAC:"); Serial.print („WiFi. BSSIDstr (i)“); Serial.println ("\ n / n"); if (abs (WiFi. RSSI (i)) <abs (stiprumo signalas)) {stiprumo signalas = WiFi. RSSI (i); networkSSID = WiFi. SSID (i); Serial.print ("TINKLAS SU GERIAUSIU SIGNALU RASTA: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (stiprumo signalas); Serial.println (")"); } uždelsimas (10); }} Serial.println ("\ n ----------------------------------------- ------------------------------------------- / n ");

// 5 sekundžių intervalas, norint atlikti naują nuskaitymo uždelsimą (5000); }

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

Atminkite, kad aukščiau pateiktame teiginyje mes naudojame abs (), ši funkcija ima absoliučią skaičiaus vertę (ty ne neigiamą). Mūsų atveju tai darėme norėdami rasti mažiausią palyginimo vertę, nes signalo intensyvumas pateikiamas kaip neigiamas skaičius, o kuo arčiau nulio, tuo geresnis signalas.

10 veiksmas: failai

Atsisiųskite visus mano failus: www.fernandok.com

Rekomenduojamas: