#ESP32 EN MODE AP
import machine
import network
import socket
import time
import dht
# Configuration de la ESP en AP Wi-Fi
ssid = "ESP32_AP_WIFI"
password = "ESP32TEST"
channel = 4 # Canal Wifi
txpower = 20 # Puissance d'émission en dBm (0 à 20, selon la réglementation locale)
authmode=network.AUTH_WPA_WPA2_PSK
max_clients = 2 #nombre maximum de client
#Configuration des paramètres de la couche 2 Standard (802.11n)
ap = network.WLAN(network.AP_IF)
ap.active(True)
ap.config(essid=ssid, password=password, authmode=authmode, max_clients=max_clients, channel = channel, txpower= txpower)
# Attendez que le point d'accee Wifi soit active
while ap.active() == False:
pass
# Configuration de la couche 3 (Protocole IP)
ip_address = "192.168.10.1" # Adresse IP statique souhaitée
subnet_mask = "255.255.255.0" # Masque de sous-réseau
gateway = "192.168.10.1" # Passerelle par défaut
dns_server = "8.8.8.8" # Serveur DNS
#Activer la configuration au point d'accès Wifi (L3)
ap.ifconfig((ip_address, subnet_mask, gateway, dns_server))
# fonction d'affichage des paramètres :
def display_wifi_info():
ap = network.WLAN(network.AP_IF)
if ap.isconnected():
print("Adresse IP : ", ap.ifconfig()[0])
print("Adresse MAC : ", ":".join("{:02X}".format(b) for b in ap.config("mac")))
print("SSID : ", ap.config("ssid"))
print("Mode de chiffrement : ", ap.config("authmode"))
print("Canal Wi-Fi : ", ap.config("channel"))
print("Puissance d'émission: {} dBm".format(ap.config("txpower")))
else:
print("Non connecté avec un Client Wifi")
# Configuration du socket UDP (Mode UDP) (L4)
ip_client = "192.168.10.2" # Adresse IP du client
port = 12345 # Port de communication UDP
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
ap = network.WLAN(network.AP_IF)
if ap.isconnected():
data_to_send = ap.config("txpower") #tx power dbm de la ESP32
try:
sock.sendto(str(data_to_send).encode(), (ip_client, port)) # Envoie la puissance d'émission via UDP à l'ESP8266
print("Données de capteur envoyées :", data_to_send)
time.sleep(2) # Lire les données du capteur toutes les 2 secondes
except Exception as e:
print("Erreur d'envoi :", e)
else:
time.sleep(5)