Faire deux tâches avec esp 32

Bonsoir à tous.

J'ai une idée, pour distraction, de créer un esp 32 avec deux fonctions.

La mesure d'une distance via un capteur ultrasons, avec écran pour la visu en local,
mais,
J'aimerai avoir aussi la lecture en wifi de cette valeur.

J'ai fait le capteur de distance avec l'écran qui fonctionne, j'ai aussi fait le serveur web qui fonctionne.
Par contre pour "assembler" les deux.........

La mesure serait toutes les demi heures, exemple, et la visu serait quand besoin de voir l'info.
Rien de soutenu.

J'ai bien cherché, mais c'est tellement technique que le débutant que je suis ne comprends pas forcément tout ce que je lis..
Qui pourrait m'indiquer de la lecture ou autre pour débroussailler tout ça?
Merci pour votre aide.

Postez vos deux codes (avec les balises de code) et expliquez quelle difficulté vous rencontrez pour intégrer les deux

Je précise tout d'abord que les deux codes sont "copiés", je suis incapable actuellement d'écrire cela, ils fonctionnent tous les deux:

Le code de la distance avec ultrasons est le suivant:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128  // OLED display width, in pixels
#define SCREEN_HEIGHT 64  // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

const int trigPin = 5;
const int echoPin = 18;

//define sound speed in cm/uS
#define SOUND_SPEED 0.034
#define CM_TO_INCH 0.393701

long duration;
int distanceCm;
int distanceInch;

void setup() {
  Serial.begin(115200);
  pinMode(trigPin, OUTPUT);  // Sets the trigPin as an Output
  pinMode(echoPin, INPUT);   // Sets the echoPin as an Input

  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;)
      ;
  }
  delay(500);
  display.clearDisplay();

  display.setTextSize(2);
  display.setTextColor(WHITE);
}

void loop() {
  // Clears the trigPin
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);

  // Calculate the distance
  distanceCm = duration * SOUND_SPEED / 2;

  // Convert to inches
  distanceInch = distanceCm * CM_TO_INCH;

  // Prints the distance in the Serial Monitor
  Serial.print("Distance (cm): ");
  Serial.println(distanceCm);
  Serial.print("Distance (inch): ");
  Serial.println(distanceInch);

  display.clearDisplay();
  display.setCursor(0, 25);
  //Display distance in cm
  display.print(distanceCm);
  display.print(" cm");

  // Display distance in inches
  /* display.print(distanceInch);
  display.print(" in");*/
  display.display();

  delay(5000);
}

Le délai de 5000 c'est pour le proto, je remplacerai par la valeur voulue.

A noter que l'exercice était de faire un serveur wifi avec l'esp 32.
Remplacer les gpio par la lecture de la distance il faudra, je ferai en avançant.

Pour le serveur wifi:

// Load Wi-Fi library
#include <WiFi.h>

// Replace with your network credentials
const char* ssid = "xxxxxxx";
const char* password = "xxxxxxx";

// Set web server port number to 80
WiFiServer server(80);

// Variable to store the HTTP request
String header;

// Auxiliar variables to store the current output state
String output26State = "off";
String output27State = "off";

// Assign output variables to GPIO pins
const int output26 = 26;
const int output27 = 27;

// Current time
unsigned long currentTime = millis();
// Previous time
unsigned long previousTime = 0; 
// Define timeout time in milliseconds (example: 2000ms = 2s)
const long timeoutTime = 2000;

void setup() {
  Serial.begin(115200);
  // Initialize the output variables as outputs
  pinMode(output26, OUTPUT);
  pinMode(output27, OUTPUT);
  // Set outputs to LOW
  digitalWrite(output26, LOW);
  digitalWrite(output27, LOW);

  // Connect to Wi-Fi network with SSID and password
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  // Print local IP address and start web server
  Serial.println("");
  Serial.println("WiFi connected.");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  server.begin();
}

void loop(){
  WiFiClient client = server.available();   // Listen for incoming clients

  if (client) {                             // If a new client connects,
    currentTime = millis();
    previousTime = currentTime;
    Serial.println("New Client.");          // print a message out in the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    while (client.connected() && currentTime - previousTime <= timeoutTime) {  // loop while the client's connected
      currentTime = millis();
      if (client.available()) {             // if there's bytes to read from the client,
        char c = client.read();             // read a byte, then
        Serial.write(c);                    // print it out the serial monitor
        header += c;
        if (c == '\n') {                    // if the byte is a newline character
          // if the current line is blank, you got two newline characters in a row.
          // that's the end of the client HTTP request, so send a response:
          if (currentLine.length() == 0) {
            // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
            // and a content-type so the client knows what's coming, then a blank line:
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println("Connection: close");
            client.println();
            
            // turns the GPIOs on and off
            if (header.indexOf("GET /26/on") >= 0) {
              Serial.println("GPIO 26 on");
              output26State = "on";
              digitalWrite(output26, HIGH);
            } else if (header.indexOf("GET /26/off") >= 0) {
              Serial.println("GPIO 26 off");
              output26State = "off";
              digitalWrite(output26, LOW);
            } else if (header.indexOf("GET /27/on") >= 0) {
              Serial.println("GPIO 27 on");
              output27State = "on";
              digitalWrite(output27, HIGH);
            } else if (header.indexOf("GET /27/off") >= 0) {
              Serial.println("GPIO 27 off");
              output27State = "off";
              digitalWrite(output27, LOW);
            }
            
            // Display the HTML web page
            client.println("<!DOCTYPE html><html>");
            client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
            client.println("<link rel=\"icon\" href=\"data:,\">");
            // CSS to style the on/off buttons 
            // Feel free to change the background-color and font-size attributes to fit your preferences
            client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
            client.println(".button { background-color: #4CAF50; border: none; color: white; padding: 16px 40px;");
            client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
            client.println(".button2 {background-color: #555555;}</style></head>");
            
            // Web Page Heading
            client.println("<body><h1>ESP32 Web Server</h1>");
            
            // Display current state, and ON/OFF buttons for GPIO 26  
            client.println("<p>GPIO 26 - State " + output26State + "</p>");
            // If the output26State is off, it displays the ON button       
            if (output26State=="off") {
              client.println("<p><a href=\"/26/on\"><button class=\"button\">ON</button></a></p>");
            } else {
              client.println("<p><a href=\"/26/off\"><button class=\"button button2\">OFF</button></a></p>");
            } 
               
            // Display current state, and ON/OFF buttons for GPIO 27  
            client.println("<p>GPIO 27 - State " + output27State + "</p>");
            // If the output27State is off, it displays the ON button       
            if (output27State=="off") {
              client.println("<p><a href=\"/27/on\"><button class=\"button\">ON</button></a></p>");
            } else {
              client.println("<p><a href=\"/27/off\"><button class=\"button button2\">OFF</button></a></p>");
            }
            client.println("</body></html>");
            
            // The HTTP response ends with another blank line
            client.println();
            // Break out of the while loop
            break;
          } else { // if you got a newline, then clear currentLine
            currentLine = "";
          }
        } else if (c != '\r') {  // if you got anything else but a carriage return character,
          currentLine += c;      // add it to the end of the currentLine
        }
      }
    }
    // Clear the header variable
    header = "";
    // Close the connection
    client.stop();
    Serial.println("Client disconnected.");
    Serial.println("");
  }
}

Ma difficulté est la suivante:
Je n'ai aucune idée de comment et quoi faire pour assembler les deux, par quoi commencer et par quoi finir.

la réponse ne va pas forcément vous plaire, mais moi je vous dirais de commencer par le commencement :

Mettez votre projet de côté et faites des tutos pour maîtriser les bases de l'arduino, de l'IDE, de l'électronique. Par exemple un bon point de départ c'est de lire les tutos d'eskimon et bien sûr il faut maîtriser le langer donc lire/regarder le tuto de base sur le C++ de OpenClassroom par exemple.

Vous verrez que ce ne sera pas du temps perdu ensuite, vous ne pouvez rien construire sur du sable. Bâtissez des fondations solides.

@JML Jackson

Merci pour les liens j'en ai pris précieuse note, c'est un peu ce que je cherchais sans trouver.
Rien qu'en survolant, je vois bien des choses très à même de m'intéresser.

En cela votre réponse correspond tout à fait au chapitre "à lire avant de poster".
Elle est bien documentée avec semble t il deux liens riches d'enseignement.
Plaire ou ne pas plaire n'est pas le problème, je ne suis plus dans ces considérations.

J'ai annoncé clairement des mots clés, à savoir "débutant", distraction".
Ce projet s'inscrit dans un plus vaste projet de photovoltaïque, dont les principaux éléments électroniques sont déjà réalisés et fonctionnent très correctement en test depuis quelque temps.

Il s'agit pour ce projet, d'une option "de distraction" allant avec le projet initial.
En aucun cas elle est obligatoire, tout au plus optionnelle.
La donnée de cette demande repose sur le temps.
Ce truc qui file et qui veut que j'aurai fini le projet total avant de savoir programmer seul ce truc en particulier.
Simple.

J'ai bien lu le fameux chapitre "à lire avant de poster".
J'ai bien compris que les débutants n'ont qu'à se former (voire être formés, par métier ou autre) et qu'un minimum requis est de mise avant de venir demander de l'aide ici.

J'ai tenté ma chance, vous avez répondu fidèlement à la charte du forum, bravo.

Pourquoi donc poster une demande d'aide alors qu'on sait qu'on va se faire évincer?

Voyez vous (et n'y voyez aucune pleurnicherie, j'ai passé l'âge!) j'ai la chance d'appartenir depuis de très nombreuses années à une corporation, dont le fondement même est l'entraide.

Sur nos différents forums tous sont acceptés, du débutant au chevronné, et chacun aide l'autre.
Qui de faire un tuto sur ceci, qui de faire un autre sur cela.
Et de guider les plus demandeurs vers l'aboutissement de ce qu'ils osent entreprendre, sans rien y savoir, ni rien y comprendre des fois, juste parce qu'ils y croient.

Certains arrivent à des résultats bluffants, tout en partant de très loin pour certains, et nous sommes heureux pour eux.
Nous appelons cela un forum d'entraide.

En aucun cas nous ne nous sentons appauvris par l'aide apportée, mieux même, il en ressort de formidables expériences humaines très enrichissantes.
Mais c'est sur des forums d'entraide.

Parce que à quoi bon un forum si, pour revenir à notre exemple, je sais tout faire.........?

Merci d'avoir lu jusqu'au bout, au cas ou, je vais maintenant potasser.

Disons que vous avez plus de chance d’aboutir à quelque chose si vous maîtrisez les bases, sinon votre demande c’est en gros que quelqu’un fasse le boulot pour vous. Ça arrive parfois si vous tombez sur un membre chevronné qui est aussi intéressé par votre projet, mais sinon au final ça reste votre projet et donc il faut vous rendre autonome

Oui, c'est assez clair.
Débutant, signifie que l'on doit t'aider à t'améliorer et quitter cet état sans t'accabler de termes techniques, je pense que les liens de @J-M-L sont tout à fait adapté.

Distraction, veut dire que tu veux coder un ESP32 avec deux tâches indépendantes.
Pour sa on ne peut pas faire grand chose pour toi, si tu trouves du plaisir à developper, on ne va pas essayer de t'en dissuader?

Comment si tu es débutant pourrait tu estimer correctement le temps nécessaire à l'acquisition de compétence?
A la limite, tu peux supposer et avoir peur que cela réclame des années de practices.

J'ai dû lire trop rapidement ce post, car je ne me rappels d'aucun passage indiquant de tel chose :frowning:
Pourrais tu nous les indiquer, pour que l'on puisse les changer?
Pour moi ce post, indique surtout qu'il est important de respecter les personnes qui composent ce forum(aidant et aidé) et que les aidants on besoin de l'aide des aidés pour les aider :slight_smile:

Tout à fait, c'est d'ailleurs parce que l'on évince personne que se forum à autant de succès.
La preuve tu es venu nous demander de l'aide.

Quel est cette corporation ?

Oui Arduino.cc n'est pas le seul forum d'entraide.
Je peux te dire que @J-M-L fait effectivement des tutoriels et doit avoir un des plus grand taux de réponse au différent demandeur.
Vous devriez donc bien vous entendre!

Si tu savait tout faire, alors oui @J-M-L c'est gravement trompé en t'indiquant parmi les meilleurs lien pour débuter.
Mais il ne me semble pas que ce soit le cas et que tu étais le demandeur de lecture ou autre pour débroussailler tout ça ?

Donc pour continuer les choses qui ne vont pas te plaire, c'est assez personnel, mais je ne vois pas ce qu'il y a de distrayant à ce faire faire un programme dont tu n'a pas besoin et dont tu ne veux pas maitriser les fondamentaux.
J'aurais pensé que ce qui est distrayant, c'est justement d'arriver à faire par soit même avec notre aide, un programme dont tu n'a pas réellement besoin, uniquement pour le défit et le plaisir d'apprendre de nouvelle choses.
Après je ne juge pas, chacun ses plaisir, mais je trouve cela en contradiction avec ton message.

Peut être que l'on n'a pas compris ce que tu voulais?

Je vais continuer à faire le rabat-joie de service d'un autre post.
Ce n'est que mon avis et dieux sait(enfin pas que lui) que je peux me tromper, mais un débutant à beaucoup à gagner à s'informer un minimum à l'aide des sites proposé par @J-M-L, cela ne réclame que quelque heure, de votre précieux temps.
Puis à faire quelque programme d'exemple mettant en œuvre les fonctionnalités dont il ont besoin.
Sachant que je n'ai jamais vu un message de demande d'aide sur un programme Arduino, rester sans réponse sur ce forum.

Donc @anakin911 si tu as besoin d'aide pour que tu puisse arriver à faire ton projet rigolo, je pense que tu es au bon endroit.
Mais si tu as besoin de main d'œuvre effectivement, ce n'est pas le bon endroit.

Bonjour anakin911

Très bonne motivation :wink:

Oui, c'est un "ennemi" avec lequel il faut compter :wink:

Je regarde tes 2 programmes et te redis.

Autre solution, utilises l'IA, comme ChatGPT ou Perplexity, il y a souvent des résultats bluffants.

A+
Cordialement
jpbbricole

Bonsoir anakin911

Voilà, j'ai étudié tes 2 porogrammes, tu as de la chance, les 2 peuvent cohabiter, sans problèmes. Il suffisait d'en choisir un et d'y copier/coller l'autre. Tu verras bien la méthode.
Les seules variables qui sont communes sont:

int distanceCm;
int distanceInch;

Variables qui seront affichées dans la page WEB à condition de cliquer sur un des 2 boutons. Ces paramètres sont introduits dans la page dans ces 2 lignes:

client.println("<p>DISTANCE " + String(distanceCm) + " cm " + "</p>");
client.println("<p>DISTANCE " + String(distanceInch) + " inch " + "</p>");

C'est du bricolage, j'en suis conscient, mais je ne suis pas très bon pour ce qui est des pages WEB :woozy_face:

La mise à jour de la distance se fait par une temporisation en millis qui a l'avantage d'être non bloquante, c'est basé sur l'exemple de l'IDE Blink Without Delay
Le temps est défini en millisecondes:
const unsigned long mesureTempo = 5000; // Tempo de mesures en millisecondes
ici, toutes les 5 secondes.

Je n'ai pas essayé avec un capteur, mais tout le reste fonctionne.
Pour avoir une page plus adaptée à tes mesures, dés que j'au du temps je demanderai à ChatGPT de me l'écrire. De ton côté, tu peux aussi essayer :wink:

Le programme:

//------------------------------------- Paramètres serveur WEB
// Load Wi-Fi library
#include <WiFi.h>
// Replace with your network credentials
const char* ssid = "xxxxxxxxxx";
const char* password = "xxxxxxxxx";

// Set web server port number to 80
WiFiServer server(80);

// Variable to store the HTTP request
String header;

// Auxiliar variables to store the current output state
String output26State = "off";
String output27State = "off";

// Assign output variables to GPIO pins
const int output26 = 26;
const int output27 = 27;

// Current time
unsigned long currentTime = millis();
// Previous time
unsigned long previousTime = 0;
// Define timeout time in milliseconds (example: 2000ms = 2s)
const long timeoutTime = 2000;

//------------------------------------------- Capteur Ultrasons
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128  // OLED display width, in pixels
#define SCREEN_HEIGHT 64  // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

const int trigPin = 5;
const int echoPin = 18;

//define sound speed in cm/uS
#define SOUND_SPEED 0.034
#define CM_TO_INCH 0.393701

long duration;
int distanceCm;
int distanceInch;

// Tempo de mesures
const unsigned long mesureTempo = 5000; // Tempo de mesures en millisecondes
unsigned long mesureMillis = millis(); // Tempo de mesures en millisecondes, chrono

void setup() {
	Serial.begin(115200);
	//------------------------------------- Paramètres serveur WEB
	pinMode(output26, OUTPUT);
	pinMode(output27, OUTPUT);
	// Set outputs to LOW
	digitalWrite(output26, LOW);
	digitalWrite(output27, LOW);

	// Connect to Wi-Fi network with SSID and password
	Serial.print("Connecting to ");
	Serial.println(ssid);
	WiFi.begin(ssid, password);
	while (WiFi.status() != WL_CONNECTED) {
		delay(500);
		Serial.print(".");
	}
	// Print local IP address and start web server
	Serial.println("");
	Serial.println("WiFi connected.");
	Serial.println("IP address: ");
	Serial.println(WiFi.localIP());
	server.begin();
	//------------------------------------------- Capteur Ultrasons
	pinMode(trigPin, OUTPUT);  // Sets the trigPin as an Output
	pinMode(echoPin, INPUT);   // Sets the echoPin as an Input

	if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
		Serial.println(F("SSD1306 allocation failed"));
		for (;;)
		;
	}
	delay(500);
	display.clearDisplay();

	display.setTextSize(2);
	display.setTextColor(WHITE);
}

void loop(){
	webServeur();
	
	if (millis() - mesureMillis >= mesureTempo) // Si moment de mesurer
	{
		capteurMesure();
		mesureMillis = millis(); // Redémarrer le chrono
	}
}

//------------------------------------------- Capteur Ultrasons
void capteurMesure()
{
	// Clears the trigPin
	digitalWrite(trigPin, LOW);
	delayMicroseconds(2);
	// Sets the trigPin on HIGH state for 10 micro seconds
	digitalWrite(trigPin, HIGH);
	delayMicroseconds(10);
	digitalWrite(trigPin, LOW);

	// Reads the echoPin, returns the sound wave travel time in microseconds
	duration = pulseIn(echoPin, HIGH);

	// Calculate the distance
	distanceCm = duration * SOUND_SPEED / 2;
	//distanceCm = random(0, 255); // Pour les essais

	// Convert to inches
	distanceInch = distanceCm * CM_TO_INCH;

	// Prints the distance in the Serial Monitor
	Serial.print("Distance (cm): ");
	Serial.println(distanceCm);
	Serial.print("Distance (inch): ");
	Serial.println(distanceInch);

	display.clearDisplay();
	display.setCursor(0, 25);
	//Display distance in cm
	display.print(distanceCm);
	display.print(" cm");

	// Display distance in inches
	/* display.print(distanceInch);
	display.print(" in");*/
	display.display();
}

//------------------------------------- Serveur WEB
void webServeur(){
	WiFiClient client = server.available();   // Listen for incoming clients

	if (client) {                             // If a new client connects,
		currentTime = millis();
		previousTime = currentTime;
		Serial.println("New Client.");          // print a message out in the serial port
		String currentLine = "";                // make a String to hold incoming data from the client
		while (client.connected() && currentTime - previousTime <= timeoutTime) {  // loop while the client's connected
			currentTime = millis();
			if (client.available()) {             // if there's bytes to read from the client,
				char c = client.read();             // read a byte, then
				Serial.write(c);                    // print it out the serial monitor
				header += c;
				if (c == '\n') {                    // if the byte is a newline character
					// if the current line is blank, you got two newline characters in a row.
					// that's the end of the client HTTP request, so send a response:
					if (currentLine.length() == 0) {
						// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
						// and a content-type so the client knows what's coming, then a blank line:
						client.println("HTTP/1.1 200 OK");
						client.println("Content-type:text/html");
						client.println("Connection: close");
						client.println();
						
						// turns the GPIOs on and off
						if (header.indexOf("GET /26/on") >= 0) {
							Serial.println("GPIO 26 on");
							output26State = "on";
							digitalWrite(output26, HIGH);
							} else if (header.indexOf("GET /26/off") >= 0) {
							Serial.println("GPIO 26 off");
							output26State = "off";
							digitalWrite(output26, LOW);
							} else if (header.indexOf("GET /27/on") >= 0) {
							Serial.println("GPIO 27 on");
							output27State = "on";
							digitalWrite(output27, HIGH);
							} else if (header.indexOf("GET /27/off") >= 0) {
							Serial.println("GPIO 27 off");
							output27State = "off";
							digitalWrite(output27, LOW);
						}
						
						// Display the HTML web page
						client.println("<!DOCTYPE html><html>");
						client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
						client.println("<link rel=\"icon\" href=\"data:,\">");
						// CSS to style the on/off buttons
						// Feel free to change the background-color and font-size attributes to fit your preferences
						client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
						client.println(".button { background-color: #4CAF50; border: none; color: white; padding: 16px 40px;");
						client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
						client.println(".button2 {background-color: #555555;}</style></head>");
						
						// Web Page Heading
						client.println("<body><h1>ESP32 Web Server</h1>");
						
						// Display current state, and ON/OFF buttons for GPIO 26
						client.println("<p>DISTANCE " + String(distanceCm) + " cm " + "</p>");
						// If the output26State is off, it displays the ON button
						if (output26State=="off") {
							client.println("<p><a href=\"/26/on\"><button class=\"button\">ON</button></a></p>");
							} else {
							client.println("<p><a href=\"/26/off\"><button class=\"button button2\">OFF</button></a></p>");
						}
						
						// Display current state, and ON/OFF buttons for GPIO 27
						//client.println("<p>GPIO 27 - State " + output27State + "</p>");
						client.println("<p>DISTANCE " + String(distanceInch) + " inch " + "</p>");
						// If the output27State is off, it displays the ON button
						if (output27State=="off") {
							client.println("<p><a href=\"/27/on\"><button class=\"button\">ON</button></a></p>");
							} else {
							client.println("<p><a href=\"/27/off\"><button class=\"button button2\">OFF</button></a></p>");
						}
						client.println("</body></html>");
						
						// The HTTP response ends with another blank line
						client.println();
						// Break out of the while loop
						break;
						} else { // if you got a newline, then clear currentLine
						currentLine = "";
					}
					} else if (c != '\r') {  // if you got anything else but a carriage return character,
					currentLine += c;      // add it to the end of the currentLine
				}
			}
		}
		// Clear the header variable
		header = "";
		// Close the connection
		client.stop();
		Serial.println("Client disconnected.");
		Serial.println("");
	}
}

A+
Bonne soirée
jpbbricole

Salut jpbbricole.

Merci beaucoup pour ton message.
Je vais bosser un peu et aussi bidouiller.
Je ne connais pas les deux liens que tu donnes mais je vais aller voir.

Bonne continuation à toi.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.