🛠 Serveur web sur le port Ethernet 10/100 embarqué
Objetivos
La Portenta H7 no solo tiene Wi-Fi: un PHY Ethernet 10/100 está soldado en la placa, expuesto a través del par de conectores de 80 pines (las portadoras Max/Mid Carrier aportan el conector RJ45). En un taller industrial, el cable supera a la radio: latencia estable, sin gestión de asociación. Vas a montar un mini-servidor HTTP por cable, siguiendo el espíritu del tutorial oficial «Ethernet con el IDE» de la gama Portenta.
Material
- 1 × Arduino Portenta H7 + portadora con RJ45 (Max Carrier, Mid Carrier) o cableado del PHY en conectores de 80 pines
- Cable Ethernet hacia un switch/box con DHCP
- Núcleo «Arduino Mbed OS Portenta Boards»
- Un navegador en la misma LAN
- Consola serie a 115200 baudios (para leer la IP)
Código completo
// serveur_web_eth.ino — mini serveur HTTP sur Ethernet filaire
// >
// inits pins) pour le core Mbed — la base documentaire ne donne pas le
// code exact ; suis le tuto officiel ethernet-with-ide de docs.arduino.cc
// pour la config materielle de ta porteuse.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
EthernetServer serveur(80);
void setup {
Serial.begin(115200);
while (!Serial) {}
if (Ethernet.begin(mac) == 0) {
Serial.println("DHCP Ethernet echoue");
while (true) {}
}
Serial.print("Serveur sur http://");
Serial.println(Ethernet.localIP);
}
void loop {
EthernetClient client = serveur.available;
if (client) {
String requete = client.readStringUntil('\r');
client.flush;
String page = "<h1>Bonjour depuis ma Portenta H7</h1>"
"<p>Ethernet 10/100 embarque</p>";
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.print("Content-Length: ");
client.println(page.length);
client.println("Connection: close");
client.println;
client.print(page);
client.stop;
Serial.println("requete servie : " + requete);
}
}
Verificación esperada
La serie muestra la IP asignada por DHCP; el navegador apunta a ella y muestra la página. Cada recarga registra la solicitud GET en la consola. La combinación oficial «cámara Vision Shield + Ethernet» (tutorial ethernet-with-ide) va más allá: streaming de imágenes en la LAN por cable.
Errores frecuentes
- Buscar un RJ45 en la placa sola: el PHY está integrado pero el conector proviene de las portadoras (Max/Mid Carrier) o de los 80 pines — sin portadora, no hay toma.
- DHCP caducado o falta de IP fija en el taller: en producción, fija la IP (estática) en lugar de esperar un DHCP que a veces no está disponible en redes industriales aisladas.
- Confundir las dos pilas de red: Wi-Fi (
WiFi.h) y Ethernet (Ethernet.h) pueden coexistir; verifica qué interfaz transporta tu tráfico (la tabla de enrutamiento del núcleo elige la puerta de enlace predeterminada). - Aislamiento de clientes en el switch/box (AP isolation, VLAN): la placa está «en línea» pero es inalcanzable — prueba el ping antes de depurar el código.
- Respuesta HTTP sin
Content-Length: algunos navegadores permanecen abiertos y bloquean al siguiente cliente — cierra siempre correctamente conclient.stop. - >
Otros tutoriales para esta placa
- Premier programme : installer le core et faire clignoter la LED (M7 à 480 MHz !)
- Se connecter au Wi-Fi avec le module Murata 1DX (station WPA2)
- Apprivoiser les connecteurs 80 broches : bouton, LED et entrée analogique
- Dual-core M7 ↔ M4 : appels de fonctions distants avec la bibliothèque RPC
- Client HTTPS/TLS : interroger une API sécurisée via le Murata 1DX
- MicroPython + machine vision : le firmware OpenMV sur un cœur, C++ sur l'autre
Ejemplos de código para esta placa
clignotante.inoArduinobouton-poussoir.inoArduinopwm-respiration.inoArduinoentree-analogique.inoArduinomulti-uart.inoArduinocapteur-i2c-bmp280.inoArduino