Bonjour,
Voici le programme (entre autres) pour faire des tests des connexions au site.
Je n’ai pas de résultats positifs !
/*
Web client
*/
#include <UIPEthernet.h>
// Entrez ci-dessous une adresse MAC pour votre contrôleur.
// Les boucliers Ethernet les plus récents ont une adresse MAC imprimée sur un autocollant sur le bouclier
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// si vous ne souhaitez pas utiliser DNS (et réduire la taille de votre sketch)
// utilise l'IP numérique au lieu du nom du serveur :
//Serveur d'adresse IP (74 125 232 128 ); // IP numérique pour Google (pas de DNS)
char server[] = "https://services-rte.com/cms/open_data/v1/tempo?season=2024-2025";
// Définit l'adresse IP statique à utiliser si le DHCP ne parvient pas à l'attribuer
IPAddress ip(192, 168, 18, 249);
IPAddress myDns(192, 168, 0, 1);
// Initialise la bibliothèque client Ethernet
// avec l'adresse IP et le port du serveur
// auquel vous souhaitez vous connecter (le port 80 est par défaut pour HTTP) :
EthernetClient client;
// Variables pour mesurer la vitesse
unsigned long beginMicros, endMicros;
unsigned long byteCount = 0;
bool printWebData = true; // défini sur false pour une meilleure mesure de la vitesse
void setup() {
// Vous pouvez utiliser Ethernet.init(pin) pour configurer la broche CS
Ethernet.init(10); // La plupart des boucliers Arduino
//Ethernet.init(5); // MKR ETH Shield
//Ethernet.init(0); // Teensy 2.0
//Ethernet.init(20); // Teensy++ 2.0
//Ethernet.init(15); // ESP8266 with Adafruit FeatherWing Ethernet
//Ethernet.init(33); // ESP32 with Adafruit FeatherWing Ethernet
// Ouvrir les communications série et attendre que le port s'ouvre :
Serial.begin(115200);
while (!Serial) {
; // attend que le port série se connecte. Nécessaire uniquement pour le port USB natif
}
// démarre la connexion Ethernet :
Serial.println("Initialisez Ethernet avec DHCP :");
if (Ethernet.begin(mac) == 0) {
Serial.println("Échec de la configuration d'Ethernet à l'aide de DHCP");
// Check for Ethernet hardware present
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
Serial.println("Le schiel Ethernet n'a pas été trouvé. Désolé, je ne peux pas fonctionner sans matériel. :(");
while (true) {
delay(1); // ne fait rien, inutile de fonctionner sans matériel Ethernet
}
}
if (Ethernet.linkStatus() == LinkOFF) {
Serial.println("Le câble Ethernet n'est pas connecté.");
}
// essayez de configurer en utilisant l'adresse IP au lieu de DHCP :
Ethernet.begin(mac, ip, myDns);
} else {
Serial.print(" IP attribuée par DHCP ");
Serial.println(Ethernet.localIP());
}
// give the Ethernet shield a second to initialize:
delay(1000);
Serial.print("se connecter à : ");
Serial.print(server);
Serial.println("...");
// si vous obtenez une connexion, faites un rapport via série :
if (client.connect(server, 80)) {
Serial.print("connecté à ");
Serial.println(client.remoteIP());
// Faites une requête HTTP :
client.println("GET /search?q=values https/1.1");
//client.println("values:");
// client.println("GET / HTTP/1.1");
// client.println("Host: perdu.com");
// client.println("Connection: close");
// client.println();
client.println("Connection: close");
client.println();
} else {
// si vous n'avez pas obtenu de connexion au serveur :
Serial.println("la connexion a échoué");
}
beginMicros = micros();
}
void loop() {
// s'il y a des octets entrants disponibles
// depuis le serveur, lisez-les et imprimez-les :
int len = client.available();
if (len > 0) {
byte buffer[80];
if (len > 80) len = 80;
client.read(buffer, len);
if (printWebData) {
Serial.write(buffer, len); // s'affiche sur le moniteur série (ralentit certaines cartes)
}
byteCount = byteCount + len;
}
// si le serveur est déconnecté, arrête le client :
if (!client.connected()) {
endMicros = micros();
Serial.println();
Serial.println(" si le serveur est déconnecté, arrête le client :");
client.stop();
// ne fait plus rien pour l'instant :
while (true) {
delay(1);
}
}
}