Satura rādītājs:

Ievads ESP32: 10 soļi
Ievads ESP32: 10 soļi

Video: Ievads ESP32: 10 soļi

Video: Ievads ESP32: 10 soļi
Video: #193 Comparison of 10 ESP32 Battery powered Boards without display (incl. deep-sleep) 2024, Novembris
Anonim
Image
Image
Galvenās iezīmes
Galvenās iezīmes

Šajā rakstā mēs runāsim par ESP32, kuru es uzskatu par ESP8266 vecāko brāli. Man ļoti patīk šis mikrokontrolleris, jo tam ir WiFi. Lai jums būtu ideja, pirms ESP pastāv, ja jums bija nepieciešams Arduino, lai būtu WiFi, jums vajadzētu tērēt no 200 līdz 300 USD, lai iegādātos Wifi adapteri. Tīkla kabeļa adapteris nav tik dārgs, bet WiFi tas vienmēr ir bijis un joprojām ir dārgs. Bet par laimi, Espressif Systems ir uzsācis ESP un atrisina mūsu dzīvi.

Man patīk ESP32 ar šo formātu, kuram ir USB ports. Ar šo NodeMCU shēmu ir viegli manipulēt, jo tai nav nepieciešama elektronika. Vienkārši pievienojiet kabeli, ieslēdziet ierīci un programmējiet to. Tas darbojas tāpat kā Arduino.

Jebkurā gadījumā šodien mēs runāsim par ESP32 vispārīgajiem aspektiem un par to, kā konfigurēt Arduino IDE, lai ieprogrammētu vairāk šāda veida ierīču. Mēs arī izveidosim programmu, kas meklē tīklus un parāda, kurš no tiem ir jaudīgāks.

1. darbība. Galvenās iezīmes

Mikroshēma ar iebūvētu WiFi: standarta 802.11 B / G / N, darbojas diapazonā no 2,4 līdz 2,5 GHz

Darbības režīmi: klients, piekļuves punkts, stacija + piekļuves punkts

Divkodolu mikroprocesors Tensilica Xtensa 32 bitu LX6

Regulējams pulkstenis no 80MHz līdz 240MHz

Darba spriegums: 3,3 VDC

Tā SRAM ir 512 KB

Ir 448 KB ROM

Tam ir 32 MB (4 megabaiti) ārējā zibatmiņa

Maksimālā strāva uz tapu ir 12mA (ieteicams izmantot 6mA)

Tam ir 36 GPIO

GPIO ar PWM / I2C un SPI funkcijām

Tam ir Bluetooth v4.2 BR / EDR un BLE (Bluetooth Low Energy)

2. darbība. ESP32, ESP8266 un Arduino R3 salīdzinājums

ESP32, ESP8266 un Arduino R3 salīdzinājums
ESP32, ESP8266 un Arduino R3 salīdzinājums

3. darbība: ESP32 veidi

ESP32 veidi
ESP32 veidi

ESP32 piedzima kopā ar daudziem brāļiem un māsām. Šodien es izmantoju pirmo no kreisās puses, Espressif, taču ir vairāki zīmoli un veidi, tostarp iebūvēts Oled displejs. Tomēr atšķirības ir vienas un tās pašas mikroshēmas: Tensilica LX6, 2 Core.

4. solis: WiFi mezglsMCU-32S ESP-WROOM-32

WiFi mezglsMCU-32S ESP-WROOM-32
WiFi mezglsMCU-32S ESP-WROOM-32

Šī ir ESP diagramma, ko mēs izmantojam mūsu montāžā. Tā ir mikroshēma, kurai ir daudz pievilcības un spēka. Tās ir vairākas tapas, kuras izvēlaties, ja viņi vēlas strādāt kā digitālie analogie, analogie digitālie vai pat tad, ja durvis darbojas kā digitālās.

5. darbība: Arduino IDE konfigurēšana (Windows)

Arduino IDE konfigurēšana (Windows)
Arduino IDE konfigurēšana (Windows)
Arduino IDE konfigurēšana (Windows)
Arduino IDE konfigurēšana (Windows)

Lūk, kā konfigurēt Arduino IDE, lai mēs varētu apkopot ESP32:

1. Lejupielādējiet failus, izmantojot saiti:

2. Izsaiņojiet failu un nokopējiet saturu uz šādu ceļu:

C: / Lietotāji / [YOUR_USER_NAME] / Dokumenti / Arduino / hardware / espressif / esp32

Piezīme. Ja nav direktoriju "espressif" un "esp32", vienkārši izveidojiet tos normāli.

3. Atveriet direktoriju

C: / Lietotāji / [YOUR_USER_NAME] / Dokumenti / Arduino / aparatūra / espressif / esp32 / tools

Palaidiet failu "get.exe".

4. Pēc "get.exe" pabeigšanas pievienojiet ESP32, pagaidiet, līdz draiveri tiks instalēti (vai instalējiet manuāli).

Gatavs, tagad vienkārši izvēlieties rīku >> dēlis ESP32 plāksni un apkopojiet savu kodu.

6. darbība: WiFi skenēšana

Šeit ir piemērs, kā meklēt pieejamos WiFi tīklus ESP-32 tuvumā, kā arī katra no tiem signāla stiprumu. Ar katru skenēšanu mēs arī uzzināsim, kuram tīklam ir vislabākais signāla stiprums.

7. darbība: kods

Vispirms iekļausim bibliotēku "WiFi.h", būs nepieciešams ļaut mums strādāt ar mūsu ierīces tīkla karti.

#ietver "WiFi.h"

Šeit ir divi mainīgie, kas tiks izmantoti tīkla SSID (nosaukums) un signāla stipruma saglabāšanai.

Stīgu tīklsSSID = ""; int spēksSignāls = -9999;

8. darbība: iestatīšana

Funkcijā setup () mēs definēsim mūsu ierīces WiFi uzvedības režīmu. Šajā gadījumā, tā kā mērķis ir meklēt pieejamos tīklus, mēs konfigurēsim savu ierīci darbam kā "stacijai".

void setup () {// Initialize Serial, lai pieteiktos Serial Monitor Serial.begin (115200);

// WiFi darbības režīma konfigurēšana kā stacijas WiFi.mode (WIFI_STA); // WIFI_STA ir konstante, kas norāda stacijas režīmu

// atvienoties no piekļuves punkta, ja tas jau ir pieslēgts WiFi.disconnect (); kavēšanās (100);

// Serial.println ("Iestatīšana pabeigta");}

9. solis: cilpa

Funkcijā loop () mēs meklēsim pieejamos tīklus un pēc tam izdrukāsim žurnālu atrastajos tīklos. Katram no šiem tīkliem mēs salīdzināsim, lai atrastu tīklu ar vislielāko signāla stiprumu.

void loop () {// Serial.println ("skenēšanas sākums"); // veic pieejamo tīklu skenēšanu

int n = WiFi.scanNetworks ();

Serial.println ("Skenēšana veikta");

// pārbaudiet, vai esat atradis kādu tīklu, ja (n == 0) {Serial.println ("Netika atrasts tīkls"); } cits {networkSSID = ""; spēksSignāls = -9999; Sērijas nospiedums (n); Serial.println ("atrasti tīkli / n"); for (int i = 0; i <n; ++ i) {// drukāt uz seriālā monitora katru no atrastajiem tīkliem Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // tīkla nosaukums (ssid) Serial.print ("SIGNAL:"); Sērijas nospiedums (WiFi. RSSI (i)); // signāla stiprums Serial.print ("\ t / tCHANNEL:"); Serial.print ((int) WiFi.kanāls (i)); Serial.print ("\ t / tMAC:"); Sērijas nospiedums (WiFi. BSSIDstr (i)); Serial.println ("\ n / n"); ja (abs (WiFi. RSSI (i)) <abs (stiprumsSignāls)) {spēksSignāls = WiFi. RSSI (i); networkSSID = WiFi. SSID (i); Serial.print ("TĪKLS AR LABĀKO SIGNĀLU: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (forceSignal); Serial.println (")"); } kavēšanās (10); }} Serial.println ("\ n ----------------------------------------- ------------------------------------------- / n ");

// intervāls 5 sekundes, lai veiktu jaunu skenēšanas aizkavi (5000); }

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

Ņemiet vērā, ka iepriekš minētajā paziņojumā mēs izmantojam abs (), šī funkcija ņem skaitļa absolūto vērtību (ti, nav negatīva). Mūsu gadījumā mēs to darījām, lai salīdzinājumā atrastu mazāko no vērtībām, jo signāla intensitāte tiek dota kā negatīvs skaitlis un jo tuvāk nullei, jo labāks signāls.

10. darbība: faili

Lejupielādējiet visus manus failus: www.fernandok.com

Ieteicams: