Le Wi-Fi et le Bluetooth sont deux technologies sans fil couramment utilisées pour la communication entre différents appareils, mais ils présentent des différences importantes en termes d'utilisation, de portée, de vitesse et de fonctionnalités. Voici un aperçu des principales différences entre le Wi-Fi et le Bluetooth :
- Wi-Fi : Le Wi-Fi offre généralement une portée plus longue que le Bluetooth, allant de quelques mètres à plusieurs centaines de mètres, en fonction de la norme Wi-Fi utilisée (par exemple, Wi-Fi 802.11n, 802.11ac, 802.11ax).
- Bluetooth : Le Bluetooth a une portée plus limitée, généralement d'environ 10 mètres (Bluetooth classique) à 100 mètres (Bluetooth avec la norme Bluetooth 5.0 et ultérieures).
- Wi-Fi : Le Wi-Fi offre généralement des débits de données beaucoup plus élevés que le Bluetooth. Les normes Wi-Fi les plus récentes peuvent atteindre des vitesses de plusieurs gigabits par seconde (Gbps).
- Bluetooth : Le Bluetooth a des vitesses de transfert de données plus modestes, généralement de quelques mégabits par seconde (Mbps). Cela le rend adapté à des applications telles que les écouteurs sans fil, les claviers et les souris, mais moins adapté aux transferts de fichiers volumineux.
- Wi-Fi : Le Wi-Fi est couramment utilisé pour la connectivité Internet sans fil, le partage de fichiers entre appareils sur le même réseau, la diffusion de contenu multimédia en continu, les jeux en ligne et bien d'autres applications nécessitant une bande passante élevée.
- Bluetooth : Le Bluetooth est souvent utilisé pour des applications à courte portée, telles que les écouteurs sans fil, les haut-parleurs portables, les claviers, les souris, les dispositifs de suivi (comme les trackers d'activité) et la connexion de périphériques à un smartphone ou une tablette.
- Wi-Fi : Le Wi-Fi consomme généralement plus d'énergie que le Bluetooth, ce qui peut être un facteur limitant pour les appareils alimentés par batterie.
- Bluetooth : Le Bluetooth est conçu pour être économe en énergie, ce qui en fait un choix idéal pour les appareils alimentés par batterie, tels que les écouteurs sans fil et les dispositifs IoT (Internet des objets).
- Wi-Fi : Le Wi-Fi offre des options de sécurité robustes, notamment des protocoles de chiffrement avancés, ce qui en fait un choix sécurisé pour la communication sur un réseau.
- Bluetooth : Le Bluetooth prend également en charge des fonctionnalités de sécurité, mais il est généralement utilisé pour des connexions de périphériques plus courtes et locales, ce qui réduit le risque d'interception des données.
En résumé, le Wi-Fi est principalement utilisé pour des connexions Internet sans fil à haut débit sur de longues distances, tandis que le Bluetooth est utilisé pour des connexions sans fil à courte portée à faible consommation d'énergie entre des appareils périphériques. Les deux technologies ont leurs avantages et sont adaptées à des applications spécifiques.
L'ESP32 est un microcontrôleur très populaire et polyvalent fabriqué par Espressif Systems. Il est doté de nombreuses fonctionnalités, notamment une connectivité Wi-Fi intégrée, ce qui en fait un choix populaire pour les projets IoT (Internet des objets), les systèmes embarqués et les projets électroniques nécessitant une communication sans fil.
Voici quelques points clés à connaître sur l'ESP32 et sa connexion Wi-Fi :
1- Connectivité Wi-Fi intégrée : L'ESP32 est équipé d'un module Wi-Fi intégré, ce qui signifie qu'il peut se connecter à des réseaux Wi-Fi existants pour la communication sans fil. Il prend en charge plusieurs modes Wi-Fi, notamment le mode station (STA) pour se connecter à un réseau Wi-Fi existant et le mode point d'accès (AP) pour créer son propre réseau Wi-Fi.
2- Utilisations courantes : En raison de sa connectivité Wi-Fi intégrée, l'ESP32 est couramment utilisé pour des projets tels que la surveillance à distance, la domotique, la collecte de données à partir de capteurs et leur transmission vers le cloud, la commande à distance d'appareils et bien plus encore.
3- Bibliothèques et outils : Il existe de nombreuses bibliothèques et outils disponibles pour l'ESP32 qui facilitent la configuration et l'utilisation de la connectivité Wi-Fi. Arduino IDE, PlatformIO et l'IDE officiel d'Espressif, ESP-IDF, sont quelques-uns des environnements de développement populaires pour programmer l'ESP32 en utilisant le Wi-Fi.
4- Sécurité Wi-Fi : L'ESP32 prend en charge des fonctionnalités de sécurité Wi-Fi, notamment le chiffrement WPA2/WPA3, ce qui signifie que vous pouvez sécuriser vos communications sans fil.
5- Consommation d'énergie : L'une des caractéristiques importantes de l'ESP32 est sa capacité à gérer efficacement la consommation d'énergie, ce qui en fait un choix approprié pour les projets alimentés par batterie. Vous pouvez mettre en veille ou désactiver le Wi-Fi lorsque vous n'en avez pas besoin pour économiser de l'énergie.
En résumé, l'ESP32 est une carte de développement puissante avec une connectivité Wi-Fi intégrée qui offre de nombreuses possibilités pour la création de projets IoT et sans fil. Sa flexibilité, ses performances et son faible coût en font un choix populaire pour les développeurs et les amateurs. Vous pouvez utiliser l'ESP32 pour créer des appareils connectés, des capteurs sans fil, des objets intelligents et bien d'autres applications.
Les fichiers boot.py
et main.py
sont deux fichiers importants dans le contexte d'une carte ESP32, qui est un microcontrôleur populaire pour les projets IoT (Internet des objets) et les applications embarquées. Voici leurs rôles respectifs :
1-boot.py
:
- Ce fichier est exécuté dès que la carte ESP32 est alimentée ou redémarrée.
- Il est principalement utilisé pour initialiser des paramètres de bas niveau et configurer l'environnement d'exécution, comme l'initialisation de la communication série (UART) et la configuration des broches (pins) GPIO.
- Vous pouvez également y mettre des tâches de maintenance ou des paramètres de configuration critiques qui doivent être définis au démarrage.
2-main.py
:
- Après que boot.py
ait été exécuté, le fichier main.py
est exécuté automatiquement, s'il est présent sur la carte.
- main.py
est l'endroit où vous mettez généralement votre code principal pour votre projet. Il contient le programme principal que vous souhaitez exécuter sur votre ESP32.
- Vous pouvez y charger des bibliothèques, définir des fonctions, configurer des broches, et écrire votre logique de contrôle spécifique au projet.
- Il est important de noter que si vous ne créez pas un fichier main.py
, l'ESP32 continuera à fonctionner normalement après l'exécution de boot.py
, mais il n'exécutera aucun code utilisateur spécifique.
En résumé, boot.py
est principalement utilisé pour la configuration de bas niveau et l'initialisation de l'environnement, tandis que main.py
est le point d'entrée de votre programme utilisateur principal sur la carte ESP32. Vous pouvez personnaliser le comportement de votre carte en fonction de vos besoins en écrivant du code dans ces fichiers.
Créer un serveur web avec une carte ESP32 est une tâche courante dans de nombreux projets IoT. Vous pouvez utiliser l'ESP32 pour créer un serveur web qui peut afficher des pages web, gérer des requêtes HTTP et interagir avec d'autres appareils ou services sur votre réseau local. Voici les étapes de base pour créer un serveur web avec une carte ESP32 :
1- Configuration de l'environnement de développement :
Assurez-vous d'avoir un environnement de développement tel que Thonny configuré pour travailler avec l'ESP32. Vous devrez également installer les bibliothèques ESP32 nécessaires.
2- Inclure les bibliothèques nécessaires :
Pour créer un serveur web, vous devrez inclure les bibliothèques WiFi et WebServer dans votre code. Voici comment le faire en utilisant le Micropython:
Importez les modules network
et ure
pour gérer la connexion Wi-Fi, et le module usocket
pour créer un serveur socket.
Le serveur web avec une carte ESP32 et MicroPython est un excellent moyen de créer des applications IoT (Internet des objets) qui peuvent être contrôlées et surveillées à distance via un navigateur web. Voici les étapes de base pour créer un serveur web avec une carte ESP32 et MicroPython :
Matériel requis :
Étapes à suivre :
1- Installer MicroPython sur la carte ESP32 :
- Téléchargez la dernière version de MicroPython pour ESP32 depuis le site officiel de MicroPython.
- Utilisez un outil comme esptool pour flasher le firmware MicroPython sur votre carte ESP32.
2- Se connecter au port série :
Utilisez un terminal série (par exemple, PuTTY, Minicom, ou l'outil de terminal intégré de l'IDE Thonny) pour vous connecter au port série de la carte ESP32. Vous devrez connaître le port COM ou /dev/tty de votre carte.
3- Écrire le code du serveur web :
- Vous pouvez écrire le code pour votre serveur web directement depuis le terminal série ou en utilisant un éditeur de texte comme Thonny.
- Voici un exemple simple de code pour un serveur web minimal :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import network import usocket as socket # Configurer la connexion Wi-Fi ssid = 'VotreSSID' password = 'VotreMotDePasse' sta_if = network.WLAN(network.STA_IF) sta_if.active(True) sta_if.connect(ssid, password) # Attendre que la connexion Wi-Fi soit établie while not sta_if.isconnected(): pass # Définir la fonction de gestion de la requête HTTP def handle_request(client_socket): request = client_socket.recv(1024) print("Requête reçue:") print(request) response = "HTTP/1.1 200 OK\nContent-Type: text/html\n\nHello, ESP32!" client_socket.send(response) client_socket.close() # Configurer le serveur web addr = ('0.0.0.0', 80) s = socket.socket() s.bind(addr) s.listen(1) print("Serveur web en cours d'exécution sur http://0.0.0.0:80") while True: client, addr = s.accept() handle_request(client) |
4- Exécuter le code sur l'ESP32 :
- Enregistrez le code dans un fichier avec l'extension .py (par exemple, main.py).
- Transférez le fichier sur la carte ESP32 à l'aide d'un outil de transfert de fichiers comme Ampy ou WebREPL.
- Une fois le fichier transféré, il devrait être exécuté automatiquement.
5- Accéder au serveur web :
- Connectez-vous au même réseau Wi-Fi que votre ESP32.
- Ouvrez un navigateur web et accédez à l'adresse IP de l'ESP32 (vous pouvez la trouver dans la sortie du terminal série).
Pour allumer trois LEDs connectées à la carte ESP32 via Wi-Fi en utilisant MicroPython, suivez ces étapes :
Matériel requis :
1- Carte ESP32
2- Quatre LEDs et quatre résistances appropriées (par exemple, des résistances de 220 ohms)
3- Câbles de connexion
4- Accès à un réseau Wi-Fi
Étapes à suivre :
1- Connexion matérielle :
- Connectez la LED rouge à l'ESP32. Connectez la patte longue de la LED (anode) à la broche GPIO 23 de l'ESP32 via une résistance (220 ohms) et connectez la patte courte (cathode) de la LED à la masse (GND) de l'ESP32.
- Connectez la LED verte à l'ESP32. Connectez la patte longue de la LED (anode) à une broche GPIO 22 de l'ESP32 via une résistance (220 ohms) et connectez la patte courte (cathode) de la LED à la masse (GND) de l'ESP32.
2- Configurer la connexion Wi-Fi :
Étape 1 : Assurez-vous d'avoir correctement flashé MicroPython sur votre ESP32 et que vous pouvez vous connecter à l'ESP32 via le terminal série (COM ou /dev/tty).
Étape 2 : Créez ou modifiez le fichier boot.py
pour configurer la connexion Wi-Fi au démarrage. Le fichier boot.py
est exécuté automatiquement au démarrage de l'ESP32. Voici un exemple de contenu pour boot.py
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# Complete project details at https://RandomNerdTutorials.com try: import usocket as socket except: import socket from machine import Pin import network import esp esp.osdebug(None) import gc gc.collect() ssid = 'HUAWEI Y5 2019' password = 'b582058c4d86' station = network.WLAN(network.STA_IF) station.active(True) station.connect(ssid, password) while station.isconnected() == False: pass print('Connection successful') print(station.ifconfig()) red_led = Pin(23, Pin.OUT) green_led = Pin(22, Pin.OUT) yellow_led=Pin(21,Pin.OUT) blue_led=Pin(19,Pin.OUT) |
Étape 3 : Créez ou modifiez le fichier main.py
pour gérer les quatre LEDs et le serveur web. Voici un exemple de contenu pour main.py
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
def web_page(): html = """<html><head> <title>ESP Web Server</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" href="data:,"> <style>html{font-family: Helvetica; display:inline-block; margin: 0px auto; text-align: center;} h1{color: #0F3376; padding: 2vh;}p{font-size: 1.5rem;}.button{display: inline-block; background-color: #009933; border: none; border-radius: 4px; color: white; padding: 16px 40px; text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;} .button2{background-color: #e7bd3b;} .button3{background-color: #ff0000;} .button4{background-color: #0014ff;}</style></head> <body> <h1>ESP Web Server</h1> <p><a href="/?led=green"><button class="button">Green LED</button></a></p> <p><a href="/?led=yellow"><button class="button button2">Yellow LED</button></a></p> <p><a href="/?led=red"><button class="button button3">Red LED</button></a></p><p><a href="/?led=blue"><button class="button button4">Blue LED</button></a></p></body></html>""" return html s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('', 80)) s.listen(5) red_on=0 green_on=0 yellow_on=0 blue_on=0 while True: conn, addr = s.accept() print('Got a connection from %s' % str(addr)) request = conn.recv(1024) request = str(request) print('Content = %s' % request) red = request.find('/?led=red') green = request.find('/?led=green') yellow = request.find('/?led=yellow') blue=request.find('/?led=blue') if red == 6: # Si on appuie sur le bouton rouge if red_on==0: print('RED') red_led.value(1) # allumer la LED rouge red_on=1 else: red_on=0 # Eteindre la LED rouge red_led.value(0) if green == 6: # Si on appuie sur le bouton vert if green_on==0: print('green') green_led.value(1) # allumer la LED verte green_on=1 else: green_led.value(0) # Eteindre la LED verte green_on=0 if yellow == 6: # Si on appuie sur le bouton jaune if yellow_on==0: print('yellow') yellow_led.value(1) # allumer la LED jaune yellow_on=1 else: yellow_led.value(0) # Eteindre la LED jaune yellow_on=0 if blue == 6: # Si on appuie sur le bouton bleu if blue_on==0: print('blue') blue_led.value(1) # allumer la LED bleue blue_on=1 else: blue_led.value(0) # Eteindre la LED bleue blue_on=0 response = web_page() conn.send('HTTP/1.1 200 OK\n') conn.send('Content-Type: text/html\n') conn.send('Connection: close\n\n') conn.sendall(response) conn.close() |
Étape 4 : Enregistrez les fichiers boot.py
et main.py
sur votre ESP32. Vous pouvez utiliser un outil de transfert de fichiers tel qu'Ampy ou WebREPL pour cela.
Étape 5 : Redémarrez l'ESP32. Les fichiers boot.py
et main.py
seront exécutés automatiquement au démarrage. Le fichier boot.py
configurera la connexion Wi-Fi, puis le fichier main.py
gérera les quatre LEDs et le serveur web.
Étape 6 : Connectez-vous au réseau Wi-Fi et accédez à l'adresse IP de l'ESP32 à partir d'un navigateur Web pour allumer les quatre LEDs.
Cette configuration vous permettra d'allumer les quatre LEDs connectées à votre carte ESP32 via Wi-Fi à chaque démarrage de l'ESP32.
Pour contrôler quatre LEDs avec la carte ESP32, vous aurez besoin des composants suivants :
La carte ESP32 est une carte de développement basée sur le microcontrôleur ESP32, qui offre des fonctionnalités WiFi et Bluetooth intégrées. Vous pouvez utiliser cette carte pour programmer et contrôler la LED.
Sélectionnez la LED de votre choix, en tenant compte de la couleur et de la tension de fonctionnement appropriées. Assurez-vous également d'avoir une résistance appropriée pour limiter le courant de la LED.
Vous aurez besoin d'une résistance pour limiter le courant traversant la LED et éviter de l'endommager. La valeur de la résistance peut être calculée en utilisant la loi d'Ohm, en fonction de la tension de fonctionnement de la LED et du courant souhaité. Par exemple, pour une LED rouge typique avec une tension de 2V et un courant de 20mA, une résistance d'environ 220 ohms peut être utilisée (R = (Vcc - Vled) / Iled).
Une breadboard est utile pour créer un circuit temporaire et connecter facilement les composants entre eux.
Des fils de connexion sont nécessaires pour relier les différents composants ensemble, tels que la connexion entre la carte ESP32, la LED et la résistance.
Voici les étapes générales pour monter les LEDs avec la carte ESP32 :
1- Connectez une extrémité de chaque résistance à une broche GPIO de l'ESP32. Choisissez les broches GPIO disponibles selon vos préférences. Assurez-vous de noter les numéros des broches GPIO que vous utilisez pour chaque LED. Dans notre montage on va connecter la LED rouge à la broche GPIO23, la LED verte à la broche GPIO22, la LED jaune à la broche GPIO21 et la LED bleue à la broche GPIO19.
2- Connectez l'autre extrémité de chaque résistance à l'anode de chaque LED (la patte la plus longue).
3- Connectez la cathode de chaque LED (la patte la plus courte) à la masse (GND) de l'ESP32. Vous pouvez utiliser une rangée de broches GND sur la carte pour cela.
4- Assurez-vous que toutes les connexions sont sécurisées et bien fixées.
5- Assurez-vous d'avoir correctement alimenté l'ESP32 en utilisant l'alimentation appropriée. Vous pouvez le connecter à un port USB ou à une autre source d'alimentation compatible.
Une fois que vous avez terminé le câblage, vous pouvez passer à la programmation de l'ESP32 pour contrôler les LEDs. Vous pouvez utiliser le langage de programmation Arduino ou d'autres frameworks de développement compatibles avec l'ESP32 pour écrire votre code.
Dans votre code, vous devrez configurer les broches GPIO que vous avez utilisées comme sorties et les contrôler en fonction de vos besoins. Par exemple, vous pouvez allumer ou éteindre les LEDs dans un certain modèle ou en réponse à des événements spécifiques.
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info