Sommario:

Introduzione a ESP32: 10 passaggi
Introduzione a ESP32: 10 passaggi

Video: Introduzione a ESP32: 10 passaggi

Video: Introduzione a ESP32: 10 passaggi
Video: 😨COMUNICAZIONE LONG RANGE con ESP32 fino a 10Km - INVIO e RICEZIONE DATI 2024, Luglio
Anonim
Image
Image
Caratteristiche principali
Caratteristiche principali

In questo articolo parleremo di ESP32, che considero un fratello maggiore di ESP8266. Mi piace molto questo microcontrollore perché ha il WiFi. Solo così hai un'idea, prima che esista ESP, se avessi bisogno di un Arduino per avere il WiFi, dovresti spendere tra $ 200 e $ 300 per acquistare un adattatore Wifi. L'adattatore per il cavo di rete non è così costoso, ma per il WiFi lo è sempre stato ed è ancora costoso. Ma fortunatamente, Espressif Systems ha lanciato ESP e sta risolvendo le nostre vite.

Mi piace ESP32 con questo formato che ha una porta USB. Questo schema NodeMCU è facile da manipolare perché non necessita di elettronica. Basta collegare il cavo, alimentare il dispositivo e programmarlo. Funziona proprio come un Arduino.

Ad ogni modo, oggi parleremo degli aspetti generali di ESP32 e di come configurare l'IDE di Arduino per programmare più dispositivi del genere. Inoltre creeremo un programma che cerca le reti e mostra quale è più potente.

Passaggio 1: caratteristiche principali

Chip con WiFi integrato: standard 802.11 B/G/N, operante nell'intervallo da 2,4 a 2,5 GHz

Modalità di funzionamento: Client, Access Point, Station + Access Point

Microprocessore dual core Tensilica Xtensa 32 bit LX6

Orologio regolabile da 80 MHz fino a 240 MHz

Tensione di esercizio: 3,3 V CC

Ha SRAM di 512 KB

Dispone di 448 KB di ROM

Ha una memoria flash esterna di 32 Mb (4 megabyte)

La corrente massima per pin è 12 mA (si consiglia di utilizzare 6 mA)

Ha 36 GPIO

GPIO con funzioni PWM / I2C e SPI

Dispone di Bluetooth v4.2 BR/EDR e BLE (Bluetooth Low Energy)

Passaggio 2: confronto tra ESP32, ESP8266 e Arduino R3

Confronto tra ESP32, ESP8266 e Arduino R3
Confronto tra ESP32, ESP8266 e Arduino R3

Passaggio 3: tipi di ESP32

Tipi di ESP32
Tipi di ESP32

ESP32 è nato con molti fratelli. Oggi sto usando il primo da sinistra, Espressif, ma ne esistono di diverse marche e tipologie, compreso il display Oled integrato. Tuttavia, le differenze sono tutte nello stesso chip: il Tensilica LX6, 2 Core.

Passaggio 4: Nodo WiFiMCU-32S ESP-WROOM-32

Nodo WiFiMCU-32S ESP-WROOM-32
Nodo WiFiMCU-32S ESP-WROOM-32

Questo è il diagramma di ESP che stiamo usando nel nostro assembly. È un chip che ha molto fascino e potenza. Sono diversi pin che scegli se vogliono funzionare come digitale analogico, analogico digitale o anche se funzionano come digitali.

Passaggio 5: configurazione dell'IDE Arduino (Windows)

Configurazione dell'IDE Arduino (Windows)
Configurazione dell'IDE Arduino (Windows)
Configurazione dell'IDE Arduino (Windows)
Configurazione dell'IDE Arduino (Windows)

Ecco come configurare l'IDE Arduino in modo da poter compilare per ESP32:

1. Scarica i file tramite il link:

2. Decomprimi il file e copia il contenuto nel seguente percorso:

C: / Utenti / [YOUR_USER_NAME] / Documenti / Arduino / hardware / espressif / esp32

Nota: se non sono presenti directory "espressif" e "esp32", crearli normalmente.

3. Apri la directory

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

Esegui il file "get.exe".

4. Al termine di "get.exe", collegare ESP32, attendere l'installazione dei driver (o installare manualmente).

Pronto, ora scegli la scheda ESP32 in "strumenti >> scheda" e compila il tuo codice.

Passaggio 6: scansione WiFi

Ecco un esempio di come cercare le reti WiFi disponibili vicino all'ESP-32, nonché la potenza del segnale di ciascuna di esse. Ad ogni scansione, scopriremo anche quale rete ha la migliore potenza del segnale.

Passaggio 7: codice

Per prima cosa includiamo la libreria "WiFi.h", sarà necessario per consentirci di lavorare con la scheda di rete del nostro dispositivo.

#include "WiFi.h"

Ecco due variabili che verranno utilizzate per memorizzare l'SSID (nome) della rete e la potenza del segnale.

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

Passaggio 8: configurazione

Nella funzione setup(), definiremo la modalità di comportamento WiFi del nostro dispositivo. In questo caso, poiché l'obiettivo è cercare le reti disponibili, configureremo il nostro dispositivo per funzionare come una "stazione".

void setup(){ // Inizializza Serial per accedere a Serial Monitor Serial.begin(115200);

// configura la modalità di funzionamento del WiFi come stazione WiFi.mode(WIFI_STA);//WIFI_STA è una costante che indica la modalità della stazione

// disconnettersi dall'access point se è già connesso WiFi.disconnect(); ritardo(100);

// Serial.println("Installazione completata");}

Passaggio 9: ciclo

Nella funzione loop(), cercheremo le reti disponibili e quindi stamperemo il registro nelle reti trovate. Per ognuna di queste reti faremo il confronto per trovare quella con la potenza del segnale più alta.

void loop(){ // Serial.println("inizio scansione"); // esegue la scansione delle reti disponibili

int n = WiFi.scanNetworks();

Serial.println("Scansione eseguita");

//controlla se hai trovato qualche rete if (n == 0) { Serial.println("Nessuna rete trovata"); } else { networkSSID = ""; segnale di forza= -9999; Serial.print(n); Serial.println("reti trovate\n"); for (int i = 0; i < n; ++i) { //stampa sul monitor seriale ciascuna delle reti trovate Serial.print("SSID: "); Serial.println(WiFi. SSID(i)); //nome rete (ssid) Serial.print("SIGNAL: "); Serial.print(WiFi. RSSI(i)); //intensità del segnale 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)) { forceSignal = WiFi. RSSI(i); networkSSID = WiFi. SSID(i); Serial.print("RETE CON IL MIGLIOR SEGNALE TROVATO: ("); Serial.print(networkSSID); Serial.print(") - SIGNAL: ("); Serial.print(strengthSignal); Serial.println(")"); } ritardo(10); } } Serial.println("\n----------------------------------------- -------------------------------------------\n");

// intervallo di 5 secondi per eseguire una nuova scansione delay(5000); }

"Se (ass (WiFi. RSSI (i))"

Nota che nell'istruzione precedente usiamo abs(), questa funzione prende il valore assoluto (cioè non negativo) del numero. Nel nostro caso lo abbiamo fatto per trovare il più piccolo dei valori nel confronto, perché l'intensità del segnale è data come un numero negativo e più vicino allo zero migliore è il segnale.

Passaggio 10: file

Scarica tutti i miei file in: www.fernandok.com

Consigliato: