Table des matières:

Introduction à ESP32 : 10 étapes
Introduction à ESP32 : 10 étapes

Vidéo: Introduction à ESP32 : 10 étapes

Vidéo: Introduction à ESP32 : 10 étapes
Vidéo: Review PZEM-004T with Arduino ESP32 ESP8266 Python & Raspberry Pi : PDAControl 2024, Novembre
Anonim
Image
Image
Principales caractéristiques
Principales caractéristiques

Dans cet article, nous allons parler de l'ESP32, que je considère comme un frère aîné de l'ESP8266. J'aime beaucoup ce microcontrôleur car il dispose du WiFi. Juste pour que vous ayez une idée, avant que l'ESP n'existe, si vous aviez besoin d'un Arduino pour avoir du WiFi, vous devriez débourser entre 200 $ et 300 $ pour acheter un adaptateur Wifi. L'adaptateur pour câble réseau n'est pas si cher, mais pour le WiFi, il a toujours été et est toujours cher. Mais heureusement, Espressif Systems a lancé ESP et résout nos vies.

J'aime l'ESP32 avec ce format qui a un port USB. Ce schéma NodeMCU est facile à manipuler car il ne nécessite aucune électronique. Il suffit de brancher le câble, d'alimenter l'appareil et de le programmer. Cela fonctionne comme un Arduino.

Quoi qu'il en soit, aujourd'hui, nous allons parler des aspects généraux de l'ESP32 et de la façon de configurer l'IDE Arduino pour programmer plus d'appareils du type. Nous allons également créer un programme qui recherche les réseaux et montre lequel est le plus puissant.

Étape 1: Fonctionnalités clés

Puce avec WiFi intégré: norme 802.11 B/G/N, fonctionnant dans la plage de 2,4 à 2,5 GHz

Modes de fonctionnement: Client, Point d'accès, Station + Point d'accès

Microprocesseur double cœur Tensilica Xtensa 32 bits LX6

Horloge réglable de 80MHz à 240MHz

Tension de fonctionnement: 3,3 VCC

Il a une SRAM de 512 Ko

Comprend une ROM de 448 Ko

Il a une mémoire flash externe de 32 Mo (4 mégaoctets)

Le courant maximum par broche est de 12mA (il est recommandé d'utiliser 6mA)

Il a 36 GPIO

GPIO avec fonctions PWM / I2C et SPI

Il a Bluetooth v4.2 BR / EDR et BLE (Bluetooth Low Energy)

Étape 2: Comparaison entre ESP32, ESP8266 et Arduino R3

Comparaison entre ESP32, ESP8266 et Arduino R3
Comparaison entre ESP32, ESP8266 et Arduino R3

Étape 3: Types d'ESP32

Types d'ESP32
Types d'ESP32

ESP32 est né avec beaucoup de frères et sœurs. Aujourd'hui, j'utilise le premier en partant de la gauche, Espressif, mais il existe plusieurs marques et types, dont l'écran Oled intégré. Cependant, les différences sont toutes de la même puce: la Tensilica LX6, 2 Core.

Étape 4: Nœud Wi-FiMCU-32S ESP-WROOM-32

Nœud Wi-FiMCU-32S ESP-WROOM-32
Nœud Wi-FiMCU-32S ESP-WROOM-32

C'est le schéma de l'ESP que nous utilisons dans notre montage. C'est une puce qui a beaucoup d'attrait et de puissance. Ce sont plusieurs broches que vous choisissez si elles veulent fonctionner en analogique numérique, en numérique analogique ou même si cela fonctionne comme en numérique.

Étape 5: Configuration de l'IDE Arduino (Windows)

Configuration de l'IDE Arduino (Windows)
Configuration de l'IDE Arduino (Windows)
Configuration de l'IDE Arduino (Windows)
Configuration de l'IDE Arduino (Windows)

Voici comment configurer l'IDE Arduino afin que nous puissions compiler pour ESP32:

1. Téléchargez les fichiers via le lien:

2. Décompressez le fichier et copiez le contenu dans le chemin suivant:

C:/Utilisateurs/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32

Remarque: S'il n'y a pas de répertoire "espressif" et "esp32", créez-les simplement normalement.

3. Ouvrez le répertoire

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

Exécutez le fichier "get.exe".

4. Une fois le "get.exe" terminé, branchez l'ESP32, attendez que les pilotes soient installés (ou installez-les manuellement).

Prêt, il suffit maintenant de choisir la carte ESP32 dans "outils >> carte" et de compiler votre code.

Étape 6: Analyse Wi-Fi

Voici un exemple de recherche de réseaux WiFi disponibles à proximité de l'ESP-32, ainsi que la force du signal de chacun d'eux. À chaque analyse, nous découvrirons également quel réseau a la meilleure force de signal.

Étape 7: Coder

Incluons d'abord la librairie "WiFi.h", elle sera nécessaire pour nous permettre de travailler avec la carte réseau de notre appareil.

#include "WiFi.h"

Voici deux variables qui seront utilisées pour stocker le SSID (nom) du réseau et la force du signal.

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

Étape 8: configuration

Dans la fonction setup(), nous allons définir le mode de comportement WiFi de notre appareil. Dans ce cas, puisque le but est de rechercher les réseaux disponibles, nous allons configurer notre appareil pour qu'il fonctionne comme une "station".

void setup(){ // Initialiser Serial pour se connecter Serial Monitor Serial.begin(115200);

// configuration du mode de fonctionnement du WiFi en tant que station WiFi.mode(WIFI_STA);//WIFI_STA est une constante indiquant le mode de la station

// se déconnecte du point d'accès s'il est déjà connecté WiFi.disconnect(); retard (100);

// Serial.println("Configuration terminée");}

Étape 9: boucle

Dans la fonction loop(), nous allons rechercher les réseaux disponibles puis imprimer le log dans les réseaux trouvés. Pour chacun de ces réseaux, nous allons faire la comparaison pour trouver celui avec la force de signal la plus élevée.

void loop(){ // Serial.println("scan start"); // effectue le scan des réseaux disponibles

int n = WiFi.scanNetworks();

Serial.println("Analyse effectuée");

//vérifiez si vous avez trouvé un réseau if (n == 0) { Serial.println("Aucun réseau trouvé"); } else { networkSSID = ""; forceSignal= -9999; Serial.print(n); Serial.println(" réseaux trouvés\n"); for (int i = 0; i < n; ++i) { //impression sur le moniteur série chacun des réseaux trouvés Serial.print("SSID: "); Serial.println(WiFi. SSID(i)); //nom du réseau (ssid) Serial.print("SIGNAL: "); Serial.print(WiFi. RSSI(i)); //force du signal 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(forceSignal)) { forceSignal = WiFi. RSSI(i); networkSSID = WiFi. SSID(i); Serial.print("RÉSEAU AVEC LE MEILLEUR SIGNAL TROUVÉ: ("); Serial.print(networkSSID); Serial.print(") - SIGNAL: ("); Serial.print(strengthSignal); Serial.println(")"); } délai(10); } } Serial.println("\n------------------------------------------ -------------------------------------------\n");

// intervalle de 5 secondes pour effectuer un nouveau scan delay (5000); }

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

Notez que dans l'instruction ci-dessus, nous utilisons abs(), cette fonction prend la valeur absolue (c'est-à-dire non négative) du nombre. Dans notre cas, nous l'avons fait pour trouver la plus petite des valeurs de la comparaison, car l'intensité du signal est donnée sous la forme d'un nombre négatif et plus le signal est proche de zéro, meilleur est le signal.

Étape 10: Fichiers

Téléchargez tous mes fichiers sur: www.fernandok.com

Conseillé: