🛠 Serveur web embarqué : l'Ethernet natif 10/100 du Teensy 4.1 (DP83825)

Teensy 4.1 · intermediaire · Schéma : le Teensy 4.1 avec son PHY TI DP83825I embarqué et le connecteur RJ45 magnétique (kit à souder) branché à ses pieds ; flèches vers le câble Ethernet et le navigateur d'un PC sur le réseau local.

Objectifs

Le Teensy 4.1 intègre un contrôleur Ethernet 10/100 Mbit avec DMA et PHY TI DP83825I sur la carte : il ne manque que le connecteur RJ45 à magnétiques, vendu en kit à souder. Ce tutoriel monte un serveur HTTP qui expose les mesures de la carte au réseau local — sans shield, sans SPI, sans chip-select.

Matériel

Points clés

Code complet

#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 matériel 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;
}

Vérification attendue

L'IP attribuée par DHCP s'affiche sur le port série ; en la tapant dans un navigateur, la page affiche la valeur de A0, rafraîchie à chaque rechargement.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels