PrécédentLinux3 / 10SuivantMise en pratique avec les capteurs
4. Les serveurs Web

Une amélioration possible

Une amélioration possible

il est possible d'afficher l'adresse IP du serveur sur un écran OLED afin d'éviter d'ouvrir le moniteur série Arduino.
Pour cela, nous allons effectuer le branchement suivant :

Branchement de l'écran OLED à l'ESP12
Branchement de l'écran OLED à l'ESP12

Affichage de l'adresse IP sur l'écran OLED0.0890

Code complet avec l'écran OLED

💡

Le code complet est disponible en faisant un clic-droit puis Copy link Adress sur le lien suivant :

C++

Code complet avec l'écran OLED

#include 
 #include 
 #include 
 
 
 #include 
 #include 
 #include 
 #include 
 
 
 #define PORT 80 //Port par défaut
 #define LED D4  //Broche de la LED
 
 ESP8266WebServer server(PORT);
 
 const char* ssid     = "creafab_invite";//Nom du routeur sur le réseau 
 const char* password = "MonTraficEstJournalise"; //Mot de passe du routeur
 
 
 #define SCREEN_WIDTH 128 // OLED display width, in pixels
 #define SCREEN_HEIGHT 64 // OLED display height, in pixels
 
 #define OLED_RESET     -1 //Broche reset
 #define SCREEN_ADDRESS 0x3C ///Parfois 0x3D ou 0x3F
 
 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
 
 //Page principale
 const String minimalPageContent = "\
   \
     Serveur Web CREPP\
      \
     \
   \
     

Led ESP8266


\

Contrôle de la LED sur la broche D4


\ \ \ \ "; void setup() { pinMode(LED, OUTPUT); //LED en sortie Serial.begin(115200); //Communication à 115200 bits/s WiFi.begin(ssid, password); //Connexion Serial.println(""); //Retour à la ligne delay(100); while (WiFi.status() != WL_CONNECTED) delay(500); Serial.println(">>> Impossible de se connecter au réseau..."); if (MDNS.begin("esp8266")) //Multicast DNS Serial.println(">>> Serveur MDNS activé"); Serial.println("Connexion au reseau "); Serial.println(ssid); Serial.println("avec l'adresse IP : "); Serial.println(WiFi.localIP()); server.on("/", mainPage); //Affichage de la page principale si requête sur '/' -> saisir IP dans le navigateur server.onNotFound(notFoundPage); //Affichage de la page d'erreur si adresse non valide server.begin(); //Initialisation du serveur Serial.println(">>> démarrage du serveur : OK"); if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) Serial.println(F("Echec OLED")); for(;;); display.display(); //Affiche le logo Adafruit delay(500); display.clearDisplay(); //efface l'écran display.setTextSize(1); //Facteur d'échelle display.setTextColor(SSD1306_WHITE); //texte blanc display.setCursor(0, 0); //Place le curseur en (0,0) display.println("Connexion au reseau "); display.println(ssid); display.println("avec l'adresse IP : "); display.println(WiFi.localIP()); display.display(); //met à jour le contenu }//Fin setup void loop() server.handleClient(); //Gestion des clients sur le serveur //Fin loop void mainPage() //Page principale { if(server.arg("LED")=="ON") //Lecture de l'argument 'LED' digitalWrite(LED, LOW); //On allume la led display.clearDisplay(); display.setCursor(0, 0); display.println("LED : 1"); display.display(); //Fin if else if(server.arg("LED")=="OFF") digitalWrite(LED, HIGH); //On eteint la led display.clearDisplay(); display.setCursor(0, 0); display.println("LED : 0"); display.display(); //Fin else if else //nothing server.send(200, "text/html", minimalPageContent); //On envoie la page principale }//FIn mainPage void notFoundPage() //Gestion si mauvaise URL server.send(404, "text/plain", "Page introuvable !");