🛠 Serveur web embarqué : l'Ethernet natif 10/100 du Teensy 4.1 (DP83825)
Objetivos
El Teensy 4.1 integra un controlador Ethernet 10/100 Mbit con DMA y PHY TI DP83825I en la placa: solo falta el conector RJ45 con transformadores magnéticos, que se vende como kit para soldar. Este tutorial configura un servidor HTTP que expone las mediciones de la placa a la red local — sin shield, sin SPI, sin chip-select.
Material
- 1 Teensy 4.1 (la variante TEENSY41_NE NO tiene chip Ethernet: verifique su referencia)
- 1 kit de conector RJ45: https://www.pjrc.com/store/ethernet_kit.html (soldadura fina)
- Cable Ethernet, router DHCP
Puntos clave
- Dado que el PHY es interno, no se necesita
Ethernet.init(cs): basta conEthernet.begin(mac). - La biblioteca oficial Ethernet (WebServer, ChatServer, SMTP...) funciona tal cual en el 4.1.
Ethernet.hardwareStatusdetecta la ausencia de hardware — indispensable para distinguir una variante NE de un cable desconectado.Ethernet.maintainrenueva el arrendamiento DHCP: llámelo en el bucle principal.- Solo 10/100, no gigabit: para telemetría y API ligera, es más que suficiente.
Código completo
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC unique !
EthernetServer server(80);
void setup {
Serial.begin(9600);
Ethernet.begin(mac); // DHCP ; (mac, ip) pour statique
if (Ethernet.hardwareStatus == EthernetNoHardware) {
Serial.println("Pas de materiel Ethernet (variant -NE ?)");
while (true) delay(1);
}
server.begin;
Serial.print("serveur a ");
Serial.println(Ethernet.localIP);
}
void loop {
Ethernet.maintain;
EthernetClient client = server.available;
if (!client) return;
bool lineDone = false;
while (client.connected && !lineDone) {
if (client.available) {
char c = client.read;
if (c == '\n') lineDone = true; // fin des en-tetes HTTP
}
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println;
client.println("<html>A0 = ");
client.print(analogRead(14));
client.println("</html>");
client.stop;
}
Verificación esperada
La IP asignada por DHCP se muestra en el puerto serie; al escribirla en un navegador, la página muestra el valor de A0, actualizado en cada recarga.
Errores frecuentes
- Olvidar soldar el kit RJ45 (o comprar por error la variante NE):
hardwareStatusdevuelveEthernetNoHardware. - Clonar el ejemplo sin cambiar la dirección MAC: dos máquinas con la misma MAC crean fallos de red fantasma.
- No llamar a
Ethernet.maintain: el arrendamiento DHCP expira y el servidor se vuelve inaccesible tras algunas horas. - Alternativas si no tiene el kit: un shield W5500/Wiz820 sobre SPI funciona en todos los Teensy — menos elegante, pero sin soldadura.
Otros tutoriales para esta placa
- Premiers pas sur le Teensy 4.1 : Teensyduino, Teensy Loader et premier Blink
- GPIO et PWM sur le Teensy 4.1 : 55 broches en 3,3 V, ni 5 V tolérées ni traîne
- Entrées analogiques du Teensy 4.1 : 18 broches, 2 ADC, 0-3,3 V fixes et zéro DAC
- Logger sur carte SD via le port SDIO natif du Teensy 4.1
- Boîte à rythmes USB MIDI : classes MIDI, MIDIx16 et port hôte USBHost_t36
- Ingénierie mémoire du Teensy 4.1 : TCM, DMAMEM, EXTMEM, flash QSPI et EEPROM
Ejemplos de código para esta placa
clignotante.inoArduinotouche-capacitive.inoArduinoanalogique-12-bits.inoArduinomidi-piano.inoArduinopwm-respiration.inoArduinoservo-angle.inoArduino