Domotique et objets connectés à faire soi-même

Comment attribuer une IP fixe à un projet ESP32 ESP8266 ou ESP01

attribuer ip fixe esp01 esp32 esp8266 code arduino

Lorsqu’on développe un objet connecté au WiFi avec un ESP32, ESP8266 ou ESP-01 (ou n’importe quel autre micro-contrôleur d’ailleurs), il est beaucoup plus pratique d’attribuer une adresse IP fixe. On pourra ainsi toujours se connecter à l’objet sur le réseau local même en cas de changement de routeur ou de box internet.

 

En faisant une routage de port, on pourra également se connecter depuis internet à ses objets connectés. Attention toutefois aux failles de sécurité. Il est préférable de connecter vos objets à un serveur domotique dont c’est le métier après tout !

Comment attribuer une adresse IP fixe à un projet ESP8266 ou ESP-01 ?

La librairie ESP8266WiFi permet d’attribuer précisément les paramètres de connexion :

Ici, on va attribuer l’adresse IP 192.168.1.40 au module ESP01 ou ESP8266.

IPAddress ip(192, 168, 1, 40);
IPAddress dns(192, 168, 1, 1);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);

La méthode WiFi.config() permet de configurer l’adresse IP et les paramètres de connexion au réseau WiFi local.

WiFi.config(ip, dns, gateway, subnet);

Ensuite, on peut se connecter comme d’habitude

WiFi.begin(ssid, password);

Lisez cet article pour en savoir plus sur la librairie ESP8266WiFi

Comment attribuer une adresse IP fixe à un projet ESP

La librairie WiFi.h pour ESP32 est l’équivalent de la librairie ESP8266WiFi.

La configuration et l’appel des méthodes est parfaitement identique !

Il faudra juste inclure du code conditionnel au début du projet pour charger la librairie qui correspond à la plateforme. La détection est automatique.

#ifdef ESP32 
  #include <WiFi.h>
#else 
  #include <ESP8266WiFi.h> 
#endif

Téléverser le code Arduino pour tester l’adresse IP fixe

Voici un exemple de code complet que vous pouvez téléverser depuis l’IDE Arduino ou PlatformIO.

Le code est compatible ESP32 et ESP8266 (y compris ESP01). Sur l’IDE Arduino, vous pouvez supprimer la première ligne #include <Arduino.h>.

#include <Arduino.h>
#ifdef ESP32
  #include <WiFi.h>
#else
  #include <ESP8266WiFi.h>
#endif

const char* ssid = "enter_your_ssid";
const char* password = "enter_your_password";

WiFiServer server(80);

void setup() {

  Serial.begin(115200);
  delay(10);

  IPAddress ip(192, 168, 1, 40);
  IPAddress dns(192, 168, 1, 1);
  IPAddress gateway(192, 168, 1, 1);
  IPAddress subnet(255, 255, 255, 0);
  WiFi.config(ip, dns, gateway, subnet);

  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print("...");
  }
  Serial.println("WiFi connected");

  server.begin();
  Serial.println("Web server running.");
  delay(500);

  Serial.println(WiFi.localIP());
}

void loop() {
  // put your main code here, to run repeatedly:
}

Configurations PlatformIO pour ESP32, ESP8266 ou ESP-01

Voici quelques configurations PlatformIO pour une LoLin d1 Mini (ESP8266), un module WiFi ESP-01 (512 Ko) / ESP-01S (1Mo) ou une LoLin D32 Pro (ESP32).

LoLin d1 mini (ESP8266) ESP-01 (512Ko) ou ESP-01S (1Mo) LoLin D32 Pro (ESP32)
[env:d1_mini_lite]
platform = espressif8266
board = d1_mini_lite
framework = arduino
monitor_speed = 115200
[env:esp01_1m]
platform = espressif8266
board = esp01_1m
framework = arduino
;upload_protocol = esptool
;board_build.flash_mode = dout
;upload_speed = 115200
monitor_speed = 115200

[env:esp01]
platform = espressif8266
board = esp01
framework = arduino
;upload_protocol = esptool
;board_build.flash_mode = dout
;upload_speed = 115200
monitor_speed = 115200
[env:lolin_d32_pro]
platform = espressif32
board = lolin_d32_pro
framework = arduino
monitor_speed = 115200

Vérifier l’adresse IP attribuée

Téléverser le projet et ouvrez le moniteur série pour vérifier que l’adresse IP a correctement été attribuée

Depuis l’IDE Arduino

Depuis PlatformIO

--- More details at http://bit.ly/pio-monitor-filters
--- Miniterm on /dev/cu.usbserial-1410  115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
.....................WiFi connected
Web server running.
192.168.1.40

Mises à jour

17/09/2020 Publication de l’article

Avez-vous aimé cet article ?
[Total: 0 Moyenne: 0]
Quitter la version mobile