Relais de serveur Web Ethernet Arduino

Relais de serveur Web Ethernet Arduino

Cet article montre comment créer un serveur Web Ethernet Arduino qui contrôle un relais connecté à une lampe.

Vous pouvez accéder à votre serveur Web avec n’importe quel appareil doté d’un navigateur et connecté au même réseau.

Relais de serveur Web Ethernet Arduino

Ressources recommandées :

Si vous aimez les projets Arduino et que vous souhaitez en construire davantage, je vous recommande de suivre mon cours Arduino Step-by-step Projects – Build 25 Projects.

Relais de serveur Web Ethernet Arduino

Remarque : si vous n’êtes pas à l’aise avec la tension secteur, mais que vous voulez quand même essayer de faire le projet, vous pouvez remplacer le module de relais par une LED, par exemple. Le code et les schémas sont très similaires.

Blindage Ethernet

Le blindage Ethernet Arduino connecte votre Arduino à Internet de manière simple. Montez simplement ce module sur votre carte Arduino, connectez-le à votre réseau avec un câble RJ45 et suivez quelques étapes simples pour commencer à contrôler vos projets via le Web.

Noter: vous devez connecter un câble Ethernet de votre routeur à votre blindage Ethernet comme indiqué dans la figure suivante.

Relais de serveur Web Ethernet Arduino

Utilisation des broches

Lorsque l’Arduino est connecté à un blindage Ethernet, vous ne pouvez pas utiliser les broches numériques de 10 à 13, car elles sont utilisées pour établir une communication entre l’Arduino et le blindage Ethernet.

1642872246 575 Relais de serveur Web Ethernet Arduino

Module relais

Un relais est un interrupteur à commande électrique. Cela signifie qu’il peut être allumé ou éteint, en laissant passer ou non le courant. Le module relais est celui de la figure ci-dessous.

1642872246 379 Relais de serveur Web Ethernet Arduino

Ce module de relais particulier est livré avec deux relais (ces cubes bleus).

Concernant la tension secteur, les relais ont 3 connexions possibles :

1642872246 134 Relais de serveur Web Ethernet Arduino

  • COM: broche commune
  • NON: normalement ouvert – il n’y a pas de contact entre la broche commune et la broche normalement ouverte. Ainsi, lorsque vous déclenchez le relais, il se connecte à la broche COM et l’alimentation est fournie à la charge (une lampe, dans notre cas).
  • NC: normalement fermé – il y a contact entre la broche commune et la broche normalement fermée. Il y a toujours contact entre les broches COM et NC, même lorsque le relais est éteint. Lorsque vous déclenchez le relais, le circuit est ouvert et aucune alimentation n’est fournie à la charge.

Concernant ce projet, il est préférable d’utiliser un circuit normalement ouvert, parce que nous voulons allumer la lampe de temps en temps. Lisez ce tutoriel pour en savoir plus sur l’utilisation d’un module relais avec la carte Arduino.

Les connexions entre le relais et l’Arduino sont vraiment simples :

1642872246 772 Relais de serveur Web Ethernet Arduino

  • Terre: va au sol
  • EN 1: commande le premier relais. Doit être connecté à une broche numérique Arduino
  • EN 2: commande le second relais. Doit être connecté à une broche numérique Arduino
  • VCC: passe au 5V

Pièces nécessaires

Voici une liste complète des composants dont vous avez besoin pour ce projet :

Vous pouvez utiliser les liens précédents ou accéder directement à MakerAdvisor.com/tools pour trouver toutes les pièces pour vos projets au meilleur prix !

1642872246 333 Relais de serveur Web Ethernet Arduino

Code

Copiez le code suivant sur votre IDE Arduino et avant de le télécharger sur votre carte Arduino, lisez le « Configuration de votre réseau » section ci-dessous.

/*
 * Rui Santos 
 * Complete Project Details https://raspberryme.com
*/

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 111);

// Initialize the Ethernet server library
// with the IP address and port you want to use 
// (port 80 is default for HTTP):
EthernetServer server(80);

// Relay state and pin
String relay1State = "Off";
const int relay = 7;

// Client variables 
char linebuf[80];
int charcount=0;

void setup() { 
  // Relay module prepared 
  pinMode(relay, OUTPUT);
  digitalWrite(relay, HIGH);
  
  // Open serial communication at a baud rate of 9600
  Serial.begin(9600);
  
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}

// Display dashboard page with on/off button for relay
// It also print Temperature in C and F
void dashboardPage(EthernetClient &client) {
  client.println("<!DOCTYPE HTML><html><head>");
  client.println("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"></head><body>");                                                             
  client.println("<h3>Arduino Web Server - <a href=\"/\">Refresh</a></h3>");
  // Generates buttons to control the relay
  client.println("<h4>Relay 1 - State: " + relay1State + "</h4>");
  // If relay is off, it shows the button to turn the output on          
  if(relay1State == "Off"){
    client.println("<a href=\"/relay1on\"><button>ON</button></a>");
  }
  // If relay is on, it shows the button to turn the output off         
  else if(relay1State == "On"){
    client.println("<a href=\"/relay1off\"><button>OFF</button></a>");                                                                    
  }
  client.println("</body></html>"); 
}


void loop() {
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    memset(linebuf,0,sizeof(linebuf));
    charcount=0;
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
       char c = client.read();
       //read char by char HTTP request
        linebuf[charcount]=c;
        if (charcount<sizeof(linebuf)-1) charcount++;
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          dashboardPage(client);
          break;
        }
        if (c == '\n') {
          if (strstr(linebuf,"GET /relay1off") > 0){
            digitalWrite(relay, HIGH);
            relay1State = "Off";
          }
          else if (strstr(linebuf,"GET /relay1on") > 0){
            digitalWrite(relay, LOW);
            relay1State = "On";
          }
          // you're starting a new line
          currentLineIsBlank = true;
          memset(linebuf,0,sizeof(linebuf));
          charcount=0;          
        } 
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    Serial.println("client disonnected");
  }
}

Afficher le code brut

Configuration de votre réseau

Jetez un œil à la configuration de l’extrait de code de votre réseau :

byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,XXX);

Important: vous devrez peut-être remplacer cette variable surlignée en rouge par des valeurs appropriées adaptées à votre réseau, sinon votre Arduino n’établira pas de connexion avec votre réseau.

Remplacez la ligne suivante par une adresse IP disponible et adaptée à votre réseau :

IPAddress ip(X, X, X, X);

Dans mon cas, ma plage IP est 192.168.1.X et avec le logiciel Scanner IP en colère Je sais que l’IP 192.168.1.111 est disponible sur mon réseau, car il n’y a aucun appareil actif sur mon réseau avec exactement la même adresse IP :

IPAddress ip(192, 168, 1, 111);

Schémas

Câblez votre circuit conformément au schéma ci-dessous :

1642872246 698 Relais de serveur Web Ethernet Arduino

Manifestation

Votre serveur Web Arduino ressemble à la figure ci-dessous :

1642872246 641 Relais de serveur Web Ethernet Arduino

Voici une démonstration montrant ce que vous avez à la fin de ce projet :

1642872246 113 Relais de serveur Web Ethernet Arduino

Emballer

Avec ce projet, vous avez construit un serveur Web Arduino qui active et désactive un relais.

Maintenant, vous pouvez utiliser ce projet pour contrôler n’importe quel appareil électronique que vous voulez.

Ce projet est une version simplifiée de l’un de mes projets dans les projets Arduino étape par étape. Si vous avez aimé ce projet, assurez-vous de consulter le cours qui comprend 23 projets Arduino.

Merci d’avoir lu,

Rui et Sara

  • Module de commande Ethernet - Module de commande - Carte réseau LAN WAN - Serveur WEB avec interface RJ45 + relais 16 canaux pour télécommande Smart Home
    Compatibilité : il s'agit d'une carte contrôleur Ethernet qui pourrait être compatible avec le relais 16 canaux. Fonction : avec la carte contrôleur Ethernet, vous pouvez contrôler à distance vos autres appareils. Avec le module de contrôleur et le relais à 16 canaux, vous pouvez contrôler à distance jusqu'à 16 appareils via LAN ou WAN. Confort : la carte contrôleur Ethernet a intégré le serveur Web. Lorsque vous êtes au bureau, il vous suffit d'ouvrir la page sur votre ordinateur, pad ou smartphone, puis de contrôler vos appareils tels que l'éclairage, la climatisation ou le réfrigérateur à la maison. Particularité : interface RJ45 via connexion de télécommunication RJ45 pour le contrôle réseau. Utilisation : le contrôle de connexion TCP unique correspondant à la propriété ci-dessus en tant que serveur TCP, accepte le contrôle client lorsqu'une connexion au serveur distant est établie, en tant que client TCP, en tant que client TCP.
  • Paradisetronic.com Ethernet Shield, Extension pour Arduino Nano avec ENC28J60, RJ45, par Exemple pour Applications de Serveur Web, IOT
    Mettez votre Arduino projets avec la pratique Shield simplement et rapidement dans le propre réseau et réalisez par exemple un serveur Web Arduino. Développez vos propres projets Arduino Internet of Things (objets) Branchez sur Arduino Nano ou une board compatible et l'aide pour préparer les bibliothèques de l'. Nous vous recommandons de uipet hernet bibliothèque. Commande via SPI – la plupart des ports I/O restent libres pour composants, tels que, bouton-poussoir, capteurs, etc. Protocoles pris en charge : TCP, UDP, ARP, ICMP, DHCP and DNS
  • Relais Ethernet, Keenso Ethernet Module de Commande Carte Relais Réseau 16 Canaux Port de Serveur Web Réseau LAN Wan Relais NC1601
    【Control Télécommande】Vous pouvez profiter du contrôle à distance de vos autres périphériques avec la carte contrôleur Ethernet. En utilisant le module de contrôleur et le relais 16 canaux, vous pouvez contrôler jusqu'à 16 périphériques à distance sur un réseau local ou étendu. 【Introduction au produit】 Il s'agit d'une carte contrôleur Ethernet pouvant être compatible avec le relais à 16 canaux. Assurance qualité, haute sensibilité, utilisation à long terme. C'est le meilleur choix pour votre travail de bureau, vos appareils ménagers et vos voyages. 【Protection de la vie】 privée interface Interface RJ45, via une connexion de télécommunication RJ45 pour le contrôle du réseau. Un double contrôle de connexion TCP unique, correspondant à la caractéristique ci-dessus, local en tant que serveur TCP, accepte le contrôle du client lors de la connexion au serveur distant en tant que client TCP. 【Vie pratique】 La carte contrôleur Ethernet a intégré le serveur Web. Lorsque vous êtes au bureau, vous devez simplement ouvrir la page sur votre ordinateur, votre tablette ou votre smartphone, puis contrôler vos ta maison. 【Conseils chaleureux】 Keenso est le bon propriétaire pour la vente de cet objet, pour votre sécurité et votre protection, n'achetez donc pas auprès d'un autre vendeur, sinon vous risquez d'obtenir un ARTICLE DIFFICILE. Notre produit est testé pour garantir une installation et des performances sans problème, soyez assuré d'acheter.