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://www.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

Conclusion

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 Contrôle Ethernet, Serveur Web Réseau RJ45 LAN WAN, Module de Relais 16 Canaux, Relais Ethernet TCP/IP Carte de Module de Relais de Sortie Marche-arrêt pour le Contrôle de la Maison Intellig
    【Le module relais 16 canaux】-- Il s'agit d'une carte contrôleur Ethernet qui pourrait être compatible avec le relais 16 canaux. Assurance qualité, haute sensibilité, utilisation à long terme. 【Contrôle à distance】-- Vous pouvez profiter du contrôle à distance de vos autres appareils avec la carte contrôleur Ethernet. À l'aide du module de contrôleur et du relais à 16 canaux, vous pouvez contrôler jusqu'à 16 appareils à distance sur un réseau local ou étendu. 【Serveur Web intégré】-- La carte contrôleur Ethernet a un serveur Web intégré. Lorsque vous êtes au bureau, ouvrez simplement la page sur votre ordinateur, tablette ou smartphone, puis contrôlez vos appareils tels que l'éclairage, la climatisation ou un réfrigérateur à la maison. 【Protecteur privé】-- Interface privée Interface RJ45, via une connexion de télécommunication RJ45 pour le contrôle du réseau. Un seul contrôle de connexion double TCP, correspondant à la fonctionnalité ci-dessus, local en tant que serveur TCP, accepte le contrôle client lors de la connexion au serveur distant en tant que client TCP. 【Service client】-- Si vous avez des questions ou n'êtes pas satisfait du module de contrôle Ethernet, veuillez nous contacter et nous vous fournirons la meilleure solution. Votre satisfaction est notre principale préoccupation.
  • Module de Contrôleur Relais avec Boîtier, Carte de Relais Ethernet Ethernet RJ45 TCP/IP Relais Télécommande Contrôleur Serveur Web Réseau 8 Canaux Carte de Module de Relais 250 V/AC 10A(Blanc)
    Large gamme applicable : applicable à une variété de traitement d'équipement, applicable à une large gamme. ASSURANCE QUALITÉ: En utilisant un contrôle qualité strict et une assurance qualité pour garantir une longue durée de vie, vous pouvez l'utiliser longtemps en toute confiance Embouts de contact de soudage : excellente finition, remplacement parfait de l'ancien et longue durée de vie. Fonctionnement stable : le fonctionnement des LED à commande numérique est fluide et stable, améliore le sens de la technologie de fonctionnement et a à la fois beauté et texture. Large application largement utilisé, peut gonfler directement la voiture, les motos, les vélos, les balles, les jouets gonflables, etc.
  • 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.