try:
import usocket as socket
except:
import socket
import network
#Configuration de WIFI (L2) :
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
#Scan de WLAN existants
for ap in wlan.scan() :
print("SSID: " + ap[0].decode()) # Nom du réseau (SSID)
print("BSSID: " + ":".join("{:02x}".format(x) for x in ap[1])) # Adresse MAC (BSSID)
print("RSSI: " + str(ap[3])) # Puissance du signal (RSSI)
print("Channel: " + str(ap[2])) # Canal du réseau
print("````````````````````````````````````````````````````````")
#Connexion au WLAN GUEST :
wlan.connect("Wokwi-GUEST", "")
while not wlan.isconnected():
pass
# Fonction pour afficher le statut de la connexion
def afficher_statut():
statuts = {
network.STAT_IDLE: "Aucune connexion et aucune activité",
network.STAT_CONNECTING: "Connexion en cours",
network.STAT_WRONG_PASSWORD: "Échec de connexion - Mot de passe incorrect",
network.STAT_NO_AP_FOUND: "Échec de connexion - Aucun point d'accès trouvé",
network.STAT_GOT_IP: "Connexion réussie - Adresse IP obtenue"
}
status = wlan.status()
if status in statuts:
print("Statut de la connexion Wi-Fi:", statuts[status])
else:
print("Statut de la connexion Wi-Fi: Inconnu")
# Appel de la fonction pour afficher le statut actuel
afficher_statut()
#Configurer les paramètres L2
def configurer_parametres():
# @MAC, hostname, power management et tx power :
wlan.config(mac=b'\x12\x34\x56\x78\x90\xAB', hostname='ESP32-Client', txpower=20, pm=0)
# Affichage des paramètres configurés
print("Paramètres configurés :")
print("Adresse MAC :", wlan.config('mac'))
print("Hostname :", wlan.config('hostname'))
print("Puissance de transmission (txpower) :", wlan.config('txpower'))
print("Gestion de l'alimentation (pm) :", wlan.config('pm'))
# Appel de la fonction pour configurer les paramètres L2
configurer_parametres()
#Afficher les paramères de connexion IP (L3) :
def afficher_parametres_connexion():
# Récupération des paramètres de configuration IP
config_ip = wlan.ifconfig()
print("Adresse IP locale:", config_ip[0])
print("Masque de sous-réseau:", config_ip[1])
print("Passerelle par défaut:", config_ip[2])
print("Serveur DNS:", config_ip[3])
# Appel de la fonction pour afficher les paramètres de connexion IP
afficher_parametres_connexion()
#Configurer les paramètres de connexion IP :
wlan.ifconfig(('192.168.10.2', '255.255.255.0', '192.168.10.1', '8.8.8.8'))
# Appel de la fonction pour afficher les paramètres de connexion IP
afficher_parametres_connexion()
#***************************** Connexion L4 ************************************
# Configuration du socket UDP client (L4)
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = ('192.168.10.1', 8081) # Remplacez par l'adresse IP et port du serveur UDP
try:
# Envoi de données au serveur UDP
message = "Hello, server! UDP"
client_socket.sendto(message.encode('utf-8'), server_address)
print("Message envoyé au serveur UDP")
# Réception de la réponse du serveur UDP
data, addr = client_socket.recvfrom(1024)
print("Réponse du serveur UDP :", data.decode('utf-8'))
finally:
client_socket.close()
# Configuration du socket TCP client (L4)
client_socket = socket.socket()
server_address = ('192.168.10.1', 8555) # Remplacez par l'adresse IP et port du serveur TCP
try:
# Connexion au serveur TCP
client_socket.connect(server_address)
print("Connecté au serveur TCP")
# Envoi de données au serveur TCP
message = "Hello, server! TCP"
client_socket.sendall(message.encode('utf-8'))
# Réception de la réponse du serveur TCP
data = client_socket.recv(1024)
print("Réponse du serveur TCP :", data.decode('utf-8'))
finally:
client_socket.close()