Përmbajtje:

Hyrje në ESP32: 10 hapa
Hyrje në ESP32: 10 hapa

Video: Hyrje në ESP32: 10 hapa

Video: Hyrje në ESP32: 10 hapa
Video: ESP32 Tutorial 7 - Using Array with ESP32 Arduino Programming-SunFounder's ESP32 IoT Learnig kit 2024, Korrik
Anonim
Image
Image
Karakteristikat kryesore
Karakteristikat kryesore

Në këtë artikull do të flasim për ESP32, të cilin e konsideroj si një vëlla më të madh të ESP8266. Më pëlqen shumë ky mikrokontrollues sepse ka WiFi. Vetëm për të pasur një ide, para se të ekzistojë ESP, nëse keni nevojë për një Arduino për të pasur WiFi, do të duhet të shpenzoni midis $ 200 dhe $ 300 për të blerë një përshtatës Wifi. Përshtatësi për kabllon e rrjetit nuk është aq i shtrenjtë, por për WiFi ka qenë gjithmonë dhe është ende i shtrenjtë. Por për fat të mirë, Espressif Systems ka nisur ESP dhe po zgjidh jetën tonë.

Më pëlqen ESP32 me këtë format që ka një port USB. Kjo skemë NodeMCU është e lehtë për tu manipuluar sepse nuk ka nevojë për pajisje elektronike. Thjesht lidhni kabllon, ndizni pajisjen dhe programojeni atë. Punon ashtu si një Arduino.

Sidoqoftë, sot do të flasim për aspektet e përgjithshme të ESP32 dhe si të konfiguroni Arduino IDE për të programuar më shumë pajisje të këtij lloji. Gjithashtu ne do të bëjmë një program që kërkon rrjetet dhe tregon se cili është më i fuqishëm.

Hapi 1: Karakteristikat kryesore

Çip me WiFi të integruar: standard 802.11 B / G / N, që funksionon në rangun prej 2.4 deri 2.5GHz

Mënyrat e funksionimit: Klienti, Pika e hyrjes, Stacioni + Pika e hyrjes

Mikroprocesor me dy bërthama Tensilica Xtensa 32-bit LX6

Orë e rregullueshme nga 80MHz deri në 240MHz

Tensioni i funksionimit: 3.3 VDC

Ka SRAM prej 512KB

Karakteristikat ROM 448KB

Ka memorie flash të jashtme 32Mb (4 megabajt)

Rryma maksimale për pin është 12mA (rekomandohet të përdorni 6mA)

Ka 36 GPIO

GPIO me funksione PWM / I2C dhe SPI

Ka Bluetooth v4.2 BR / EDR dhe BLE (Bluetooth me energji të ulët)

Hapi 2: Krahasimi midis ESP32, ESP8266 dhe Arduino R3

Krahasimi midis ESP32, ESP8266 dhe Arduino R3
Krahasimi midis ESP32, ESP8266 dhe Arduino R3

Hapi 3: Llojet e ESP32

Llojet e ESP32
Llojet e ESP32

ESP32 lindi me shumë vëllezër e motra. Sot po përdor të parën nga e majta, Espressif, por ka disa marka dhe lloje, duke përfshirë ekranin Oled të integruar. Sidoqoftë, ndryshimet janë të gjitha të njëjtat çipa: Tensilica LX6, 2 Core.

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

WiFi NyjeMCU-32S ESP-WROOM-32
WiFi NyjeMCU-32S ESP-WROOM-32

Ky është diagrami i ESP që ne po përdorim në asamblenë tonë. Shtë një çip që ka shumë tërheqje dhe fuqi. Ato janë disa kunja që ju zgjidhni nëse duan të punojnë si analoge dixhitale, analoge dixhitale apo edhe nëse ato funksionojnë si derivale.

Hapi 5: Konfigurimi i Arduino IDE (Windows)

Konfigurimi i Arduino IDE (Windows)
Konfigurimi i Arduino IDE (Windows)
Konfigurimi i Arduino IDE (Windows)
Konfigurimi i Arduino IDE (Windows)

Ja se si të konfiguroni Arduino IDE në mënyrë që të mund të përpilojmë për ESP32:

1. Shkarkoni skedarët përmes lidhjes:

2. Zbërtheni skedarin dhe kopjoni përmbajtjen në rrugën e mëposhtme:

C: / Përdoruesit / [YOUR_USER_NAME] / Documents / Arduino / hardware / espressif / esp32

Shënim: Nëse nuk ka drejtori "espressif" dhe "esp32", thjesht krijojini ato normalisht.

3. Hapni drejtorinë

C: / Përdoruesit / [YOUR_USER_NAME] / Documents / Arduino / hardware / espressif / esp32 / tools

Drejtoni skedarin "get.exe".

4. Pasi të përfundojë "get.exe", lidhni ESP32, prisni që drejtuesit të instalohen (ose instaloni me dorë).

Gati, tani thjesht zgjidhni bordin ESP32 në "mjetet >> bordi" dhe përpiloni kodin tuaj.

Hapi 6: Skanimi i WiFi

Këtu keni një shembull se si të kërkoni rrjete WiFi në dispozicion pranë ESP-32, si dhe fuqinë e sinjalit të secilit prej tyre. Me çdo skanim, ne gjithashtu do të zbulojmë se cili rrjet ka fuqinë më të mirë të sinjalit.

Hapi 7: Kodi

Së pari le të përfshijmë bibliotekën "WiFi.h", do të jetë e nevojshme të na lejojë të punojmë me kartën e rrjetit të pajisjes sonë.

#përfshi "WiFi.h"

Këtu janë dy variabla që do të përdoren për të ruajtur SSID (emrin) e rrjetit dhe fuqinë e sinjalit.

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

Hapi 8: Konfigurimi

Në funksionin e konfigurimit (), ne do të përcaktojmë mënyrën e sjelljes WiFi të pajisjes sonë. Në këtë rast, meqenëse qëllimi është të kërkojmë për rrjetet në dispozicion, ne do të konfigurojmë pajisjen tonë që të funksionojë si një "stacion".

void setup () {// Initialize Serial për t'u regjistruar në Serial Monitor Serial.begin (115200);

// konfigurimi i mënyrës së funksionimit të WiFi si stacion WiFi.mode (WIFI_STA); // WIFI_STA është një konstante që tregon mënyrën e stacionit

// shkëputeni nga pika e hyrjes nëse është e lidhur tashmë WiFi.disponnect (); vonesa (100);

// Serial.println ("Konfigurimi u krye");}

Hapi 9: Lak

Në funksionin loop (), ne do të kërkojmë rrjetet në dispozicion dhe më pas do të printojmë regjistrin në rrjetet e gjetura. Për secilin prej këtyre rrjeteve do të bëjmë krahasimin për të gjetur atë me fuqinë më të lartë të sinjalit.

lak void () {// Serial.println ("fillimi i skanimit"); // kryen skanimin e rrjeteve në dispozicion

int n = WiFi.scanNetworks ();

Serial.println ("Skanimi u krye");

// kontrolloni nëse keni gjetur ndonjë rrjet nëse (n == 0) {Serial.println ("Asnjë rrjet nuk u gjet"); } else {networkSSID = ""; forceSignal = -9999; Serial.print (n); Serial.println ("rrjetet e gjetura / n"); për (int i = 0; i <n; ++ i) {// printoni në monitor serik secilin nga rrjetet e gjetura Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // emri i rrjetit (ssid) Serial.print ("SIGNAL:"); Serial.print (WiFi. RSSI (i)); // fuqia e sinjalit Serial.print ("\ t / tCHANNEL:"); Serial.print ((int) WiFi.channel (i)); Serial.print ("\ t / tMAC:"); Serial.print (WiFi. BSSIDstr (i)); Serial.println ("\ n / n"); nëse (abs (WiFi. RSSI (i)) <abs (forceSignal)) {forceSignal = WiFi. RSSI (i); networkSSID = WiFi. SSID (i); Serial.print ("Rrjeti me sinjalin më të mirë të gjetur: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (forceSignal); Serial.println (")"); } vonesa (10); }} Serial.println ("\ n ----------------------------------------- ---------------------------------------------- / n ");

// interval prej 5 sekondash për të kryer një vonesë të re të skanimit (5000); }

"Nëse (abs (WiFi. RSSI (i))"

Vini re se në pohimin e mësipërm ne përdorim abs (), ky funksion merr vlerën absolute (dmth. Jo negative) të numrit. Në rastin tonë ne e bëmë këtë për të gjetur vlerat më të vogla në krahasim, sepse intensiteti i sinjalit jepet si një numër negativ dhe sa më afër zeros aq më i mirë është sinjali.

Hapi 10: Skedarët

Shkarkoni të gjithë skedarët e mi në: www.fernandok.com

Recommended: