Tutorial: Scanner Wi-Fi cu ESP32
Unul dintre cele mai simple, dar impresionante proiecte de început cu ESP32. Vom scrie un program care scanează și afișează toate rețelele Wi-Fi din apropiere.
Componente Necesare
- 1x Placă de dezvoltare ESP32
- 1x Cablu Micro-USB
Asta este tot! Nu avem nevoie de niciun circuit extern, deoarece totul se întâmplă în interiorul microcontrolerului.
Configurarea Arduino IDE pentru ESP32
Dacă nu ați făcut-o deja, trebuie să adăugați suport pentru plăcile ESP32 în Arduino IDE. Mergeți la File > Preferences și adăugați următorul URL în câmpul "Additional Board Manager URLs":
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Apoi, mergeți la Tools > Board > Boards Manager..., căutați "esp32" și instalați pachetul de la Espressif Systems.
Codul Sursă
Selectați placa corectă din meniul Tools > Board (de ex. "DOIT ESP32 DEVKIT V1"), alegeți portul COM și încărcați codul de mai jos. Deschideți Serial Monitor setat la viteza 115200.
#include "WiFi.h"
void setup() {
Serial.begin(115200);
// Setam modul Wi-Fi la Station (client)
WiFi.mode(WIFI_STA);
// Deconectam orice conexiune anterioara
WiFi.disconnect();
delay(100);
Serial.println("Setup finalizat. Se scaneaza retelele...");
}
void loop() {
Serial.println("Scanare pornita...");
// WiFi.scanNetworks() va returna numarul de retele gasite
int n = WiFi.scanNetworks();
Serial.println("Scanare finalizata.");
if (n == 0) {
Serial.println("Nicio retea gasita.");
} else {
Serial.print(n);
Serial.println(" retele gasite:");
// Afisam informatii despre fiecare retea
for (int i = 0; i < n; ++i) {
// Afiseaza: SSID (numele retelei), RSSI (puterea semnalului), Tipul de criptare
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.print(")");
Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? " " : "*");
delay(10);
}
}
Serial.println("");
// Asteapta 5 secunde inainte de a scana din nou
delay(5000);
}