Esp8266 wifi

De The Linux Craftsman
Aller à la navigation Aller à la recherche

Introduction

Introduction

Warning manual.jpg

Soyez sûr de comprendre la section sur comment écrire un sketch avant de poursuivre. Le code ci-dessous fait référence à des parties bien spécifiques, détaillées et expliquées dans la section suscitée.

La puce ESP8266 peut se configurer en point d'accès, en client WiFi ou les deux en même temps.

Client WiFi

Commençons par nous connecter à un réseau en utilisant le DHCP :

#include <ESP8266WiFi.h>

const char* ssid = "CAMPUSCD-CROIXVERTE2";
const char* password = "";

void setup() {
	// on démarre le port série
	Serial.begin(115200);
	// On attend "un peu" que le buffer soit prêt
	delay(10);
	// On efface la configuration précédente
	WiFi.disconnect(true);
	Serial.println();
	Serial.print("Connexion a ");
	Serial.println(ssid);
	// Initialisation de la connection
	WiFi.begin(ssid, password);
	// Test pour déterminer quand la connection est prete
	while (WiFi.status() != WL_CONNECTED) {
		delay(500);
		Serial.print(".");
	}
	// Affichage des informations
	Serial.println("");
	Serial.println(" connecte");
	Serial.print("Adresse IP: ");
	Serial.println(WiFi.localIP());
	Serial.print("Adresse MAC: ");
	Serial.println(WiFi.macAddress());
	Serial.print("Masque : ");
	Serial.println(WiFi.subnetMask());
	Serial.print("Passerelle : ");
	Serial.println(WiFi.gatewayIP());
	Serial.print("RSSI (force du signal): ");
	Serial.println(WiFi.RSSI());
	Serial.print("Canal: ");
	Serial.println(WiFi.channel());
}

Le code précédent vous donne le résultat suivant sur le port série :

Connexion a CAMPUSCD-CROIXVERTE2.. connecte
Adresse MAC: 2E:3A:E8:17:2C:A7
Adresse IP: 192.168.52.85
Masque : 255.255.252.0
Passerelle : 192.168.55.250
RSSI (force du signal): -67
Canal: 6

Maintenant que nous connaissons les paramètres données par le réseau, essayons de nous y connecter de manière statique. Dans la partie des variables statiques ajoutez les lignes suivantes :

IPAddress ip(192, 168, 52, 85);
IPAddress dns(192, 168, 55, 250);
IPAddress gw(192, 168, 55, 250);
IPAddress mask(255, 255, 252, 0);

Avant la ligne :

WiFi.begin(ssid, password);

Insérez les lignes :

// Application de la configuration de niveau 3 OSI
WiFi.config(ip, gw, mask, dns);

La connexion devrait être quasiment instantanée !

Point d'accès

Pour mettre en place un point d'accès, rien de plus simple :

#include <ESP8266WiFi.h>

const char *ssid = "tala";
const char *password = "informatique";

void setup() {
	// on démarre le port série
	Serial.begin(115200);
	// On attend "un peu" que le buffer soit prêt
	delay(10);
	// On efface la configuration précédente
	WiFi.disconnect(true);
	Serial.println();
	Serial.println("Demarrage du point d'acces...");
	// Initialisation du point d'accès
	WiFi.softAP(ssid, password);
	// Réglage de la puissance (0dBm < x < 20dBm)
	WiFi.setOutputPower(5);
	// Affichage de l'adresse IP
	Serial.print("Adresse MAC: ");
	Serial.println(WiFi.softAPmacAddress());
	Serial.print("Adresse IP: ");
	Serial.println(WiFi.softAPIP());
}

void loop() {
}

Le code précédent vous donne le résultat suivant sur le port série :

Demarrage du point d'acces...
Adresse MAC: 2E:3A:E8:17:2C:A7
Adresse IP: 192.168.4.1

Il est possible de modifier certain paramètres de niveau 3 OSI. Dans la partie des variables statiques ajoutez les lignes suivantes :

IPAddress ip(192, 168, 10, 1);
IPAddress gw(192, 168, 10, 254);
IPAddress mask(255, 255, 252, 0);

Avant la ligne :

WiFi.softAP(ssid, password);

Insérez les lignes :

// Application de la configuration de niveau 3 OSI
WiFi.softAPConfig(ip, gw, mask);

La sorite console doit afficher :

Demarrage du point d'acces... 
Adresse MAC: 2E:3A:E8:17:2C:A7
Adresse IP: 192.168.10.1

Lorsque vous utilisez l'ESP comme point d'accès, un serveur DHCP fournira automatiquement la configuration de niveau 3 OSI.