#Configurer le Wifi Client sur la ESP8266
import time
import network
import socket
# Remplacez ces valeurs par les informations de notre AP Wi-Fi.
SSID = "ESP32_AP_WIFI"
PASSWORD = "ESP32TEST" #Le mot de passe de connexion Wifi.
# Update Time :
UPDATE_TIME_INTERVAL = 5000 # in ms
last_update = time.ticks_ms()
# Fonction pour se connecter au réseau Wi-Fi
def connect_to_wifi(ssid, password):
sta_if = network.WLAN(network.STA_IF)
if not sta_if.isconnected():
print("Connexion au réseau Wi-Fi...")
sta_if.active(True)
sta_if.connect(ssid, password)
while not sta_if.isconnected():
pass # ne rien faire jusqu'a avoir le connexion valide
print("Connecté au réseau Wi-Fi")
# Fonction pour afficher les informations du signal Wi-Fi au niveau du client
def display_wifi_info():
sta_if = network.WLAN(network.STA_IF)
if sta_if.isconnected():
print("Informations du signal Wi-Fi :")
print(" - Est connecté : ", sta_if.isconnected())
print(" - Adresse IP : ", sta_if.ifconfig()[0])
print(" - SSID : ", sta_if.config("essid"))
print(" - RSSI : {} dBm".format(sta_if.status("rssi")))
print(" - Adresse MAC : ", ":".join("{:02X}".format(b) for b in sta_if.config("mac")))
else:
print("Non connecté au réseau Wi-Fi")
# Fonction pour retourner l'état de la connexion Wifi :
def re_wifi_info():
sta_if = network.WLAN(network.STA_IF)
if sta_if.isconnected():
Adresse_IP = sta_if.ifconfig()[0]
SSID = sta_if.config("essid")
RSSI = sta_if.status("rssi")
S_Q = 2*(RSSI + 100)
MAC = sta_if.config("mac")
S_connexion = sta_if.isconnected()
return(Adresse_IP, SSID, RSSI, S_Q, MAC, S_connexion)
else:
return(0, 0, 0, 0, False)
# Connexion au réseau Wi-Fi
connect_to_wifi(SSID, PASSWORD)
#Afficher les informations du client Wifi :
display_wifi_info()
# Configuration du socket UDP (Layer 4)
port = 12345 # Port de communication UDP
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(("0.0.0.0", port))
# Boucle principale : pour executer en boucle mon programme:
while True:
data, addr = sock.recvfrom(1024)
if data:
received_data = data.decode()
try:
power_tx = float(received_data)
Adresse_IP, SSID, RSSI, S_Q, MAC, S_connexion = re_wifi_info()
#Calcul du path loss à partir de la puissance d'émission reçue et du RSSI
# Assumons que RSSI contient la valeur du signal reçu depuis l'ESP32
path_loss = power_tx - RSSI # Calcul du path loss simple
#path_loss = power_tx + (2 + 3) - RSSI # Calcul du path loss simple
print("Path Loss estimé :", path_loss, "dB")
except ValueError:
print("Données reçues non valides pour la puissance d'émission")
#time.sleep(1) # Ajout d'un délai d'attente de 1 s avant de lire à nouveau les données