Taula de continguts:
- Pas 1: funcions clau
- Pas 2: comparació entre ESP32, ESP8266 i Arduino R3
- Pas 3: tipus d'ESP32
- Pas 4: WiFi NodeMCU-32S ESP-WROOM-32
- Pas 5: Configuració d'Arduino IDE (Windows)
- Pas 6: escaneig de WiFi
- Pas 7: Codi
- Pas 8: Configuració
- Pas 9: bucle
- Pas 10: fitxers
Vídeo: Introducció a ESP32: 10 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
En aquest article parlarem d’ESP32, que considero un germà gran de l’ESP8266. M’agrada molt aquest microcontrolador perquè té WiFi. Perquè tingueu una idea, abans que existeixi ESP, si necessiteu un Arduino per tenir WiFi, hauríeu de gastar entre 200 i 300 dòlars per comprar un adaptador Wifi. L’adaptador per al cable de xarxa no és tan car, però per al WiFi sempre ha estat i encara és car. Però, per sort, Espressif Systems ha llançat ESP i està resolent les nostres vides.
M'agrada ESP32 amb aquest format que té un port USB. Aquest esquema NodeMCU és fàcil de manipular perquè no necessita electrònica. Només cal connectar el cable, alimentar el dispositiu i programar-lo. Funciona com un Arduino.
De totes maneres, avui parlarem dels aspectes generals de l’ESP32 i de com configurar l’Arduino IDE per programar més dispositius d’aquest tipus. També farem un programa que busca a les xarxes i mostra quina és més potent.
Pas 1: funcions clau
Xip amb WiFi integrat: estàndard 802.11 B / G / N, que funciona en el rang de 2,4 a 2,5 GHz
Modes de funcionament: client, punt d'accés, estació + punt d'accés
Microprocessador de doble nucli Tensilica Xtensa LX6 de 32 bits
Rellotge ajustable des de 80 MHz fins a 240 MHz
Voltatge de funcionament: 3,3 V CC
Té SRAM de 512 KB
Inclou 448 KB de ROM
Té memòria flash externa de 32 MB (4 megabytes)
El corrent màxim per pin és de 12 mA (es recomana utilitzar 6 mA)
Té 36 GPIO
GPIO amb funcions PWM / I2C i SPI
Té Bluetooth v4.2 BR / EDR i BLE (Bluetooth de baix consum)
Pas 2: comparació entre ESP32, ESP8266 i Arduino R3
Pas 3: tipus d'ESP32
ESP32 va néixer amb molts germans. Avui faig servir el primer de l'esquerra, Espressif, però hi ha diverses marques i tipus, inclosa la pantalla Oled integrada. Tot i això, les diferències són totes iguals: el Tensilica LX6, 2 Core.
Pas 4: WiFi NodeMCU-32S ESP-WROOM-32
Aquest és el diagrama d’ESP que estem utilitzant en el nostre muntatge. És un xip que té molt d’atractiu i força. Són diversos pins que trieu si volen funcionar com a analògics digitals, analògics digitals o fins i tot si funcionen com a digitals.
Pas 5: Configuració d'Arduino IDE (Windows)
A continuació s’explica com configurar l’IDE Arduino perquè puguem compilar per ESP32:
1. Baixeu els fitxers mitjançant l'enllaç:
2. Descomprimiu el fitxer i copieu el contingut al camí següent:
C: / Usuaris / [YOUR_USER_NAME] / Documents / Arduino / hardware / espressif / esp32
Nota: Si no hi ha cap directori "espressif" ni "esp32", només cal que els creeu normalment.
3. Obriu el directori
C: / Usuaris / [YOUR_USER_NAME] / Documents / Arduino / hardware / espressif / esp32 / tools
Executeu el fitxer "get.exe".
4. Quan finalitzi "get.exe", connecteu l'ESP32, espereu que s'instal·lin els controladors (o instal·leu-los manualment).
A punt, ara només heu de triar el tauler ESP32 a "eines >> tauler" i compilar el vostre codi.
Pas 6: escaneig de WiFi
Aquí teniu un exemple de com cercar les xarxes WiFi disponibles a prop de l’ESP-32, així com la intensitat del senyal de cadascuna d’elles. Amb cada exploració, també descobrirem quina xarxa té la millor intensitat de senyal.
Pas 7: Codi
Primer, incloguem la biblioteca "WiFi.h", serà necessari que puguem treballar amb la targeta de xarxa del nostre dispositiu.
#include "WiFi.h"
A continuació, es mostren dues variables que s’utilitzaran per emmagatzemar el SSID (nom) i la intensitat del senyal de la xarxa.
Cadena networkSSID = ""; int strengthSignal = -9999;
Pas 8: Configuració
A la funció setup () definirem el mode de comportament WiFi del nostre dispositiu. En aquest cas, atès que l'objectiu és buscar xarxes disponibles, configurarem el nostre dispositiu perquè funcioni com a "estació".
void setup () {// Inicialitza el serial per iniciar la sessió Serial Monitor Serial.begin (115200);
// configurar el mode de funcionament de WiFi com a estació WiFi.mode (WIFI_STA); // WIFI_STA és una constant que indica el mode d’estació
// desconnecteu del punt d'accés si ja està connectat WiFi.disconnect (); retard (100);
// Serial.println ("Configuració feta");}
Pas 9: bucle
A la funció loop (), cercarem les xarxes disponibles i després imprimirem el registre a les xarxes trobades. Per a cadascuna d’aquestes xarxes farem la comparació per trobar la que tingui la intensitat de senyal més alta.
bucle buit () {// Serial.println ("inici de digitalització"); // realitza l’escaneig de les xarxes disponibles
int n = WiFi.scanNetworks ();
Serial.println ("Escaneig realitzat");
// comproveu si heu trobat alguna xarxa si (n == 0) {Serial.println ("No s'ha trobat cap xarxa"); } else {networkSSID = ""; strengthSignal = -9999; Serial.print (n); Serial.println ("xarxes trobades / n"); for (int i = 0; i <n; ++ i) {// imprimeix al monitor sèrie cadascuna de les xarxes trobades Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // nom de la xarxa (ssid) Serial.print ("SIGNAL:"); Serial.print (WiFi. RSSI (i)); // intensitat del senyal 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)) {strengthSignal = WiFi. RSSI (i); networkSSID = WiFi. SSID (i); Serial.print ("XARXA AMB EL MILLOR SENYAL TROBAT: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (strengthSignal); Serial.println (")"); } retard (10); }} Serial.println ("\ n ----------------------------------------- ------------------------------------------- / n ");
// interval de 5 segons per realitzar un nou retard d'escaneig (5000); }
"If (abs (WiFi. RSSI (i))"
Tingueu en compte que a l’afirmació anterior fem servir abs (), aquesta funció pren el valor absolut (és a dir, no negatiu) del nombre. En el nostre cas, hem fet això per trobar el valor més petit de la comparació, perquè la intensitat del senyal es dóna com a nombre negatiu i com més a prop de zero millor serà el senyal.
Pas 10: fitxers
Descarregueu tots els meus fitxers a: www.fernandok.com
Recomanat:
Introducció a la interfície del sensor I2C ?? - Interfície del MMA8451 mitjançant ESP32: 8 passos
Introducció a la interfície del sensor I2C ?? - Interfície del MMA8451 mitjançant ESP32s: en aquest tutorial, aprendreu tot sobre com iniciar, connectar-se i aconseguir que el dispositiu I2C (acceleròmetre) funcioni amb el controlador (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Introducció a Python per a ESP8266 i ESP32: 6 passos
Introducció a Python per a ESP8266 i ESP32: Bacground L'ESP8266 i el seu germà petit ESP32 són microxips Wi-Fi de baix cost amb pila TCP / IP completa i capacitat de microcontrolador. El xip ESP8266 va arribar a l'atenció de la comunitat de fabricants per primera vegada el 2014. Des de llavors, el baix preu (
Introducció a ESP32 CAM - Reproducció de vídeo mitjançant ESP CAM mitjançant Wifi - Projecte de càmera de seguretat ESP32: 8 passos
Introducció a ESP32 CAM | Reproducció de vídeo mitjançant ESP CAM a través de Wifi | Projecte de càmera de seguretat ESP32: Avui aprendrem a utilitzar aquesta nova placa ESP32 CAM i com podem codificar-la i utilitzar-la com a càmera de seguretat i obtenir un vídeo en streaming per wifi
Introducció a ESP32 - Instal·lació de plaques ESP32 a Arduino IDE - ESP32 Blink Code: 3 passos
Introducció a ESP32 | Instal·lació de plaques ESP32 a Arduino IDE | ESP32 Blink Code: en aquest instructable veurem com començar a treballar amb esp32 i com instal·lar plaques esp32 a Arduino IDE i programarem esp 32 per executar codi blink amb arduino ide
Introducció Pantalla OLED ESP32 Lora: 8 passos
Introducció Pantalla OLED ESP32 Lora: aquest és un altre vídeo sobre la introducció a l’ESP32 LoRa. Aquesta vegada, parlarem específicament d’una pantalla gràfica (de 128x64 píxels). Utilitzarem la biblioteca SSD1306 per mostrar informació sobre aquesta pantalla OLED i presentarem un exemple de