Tutorial: Utilizando o Releshield com Ethernet Shield e Arduino

Neste tutorial vamos mostrar como utilizar o Arduino com Releshield e Ethernet Shield para acender uma lâmpada através da internet.

Primeiramente, conecte o Releshield em cima do Ethernet Shield e depois conecte no Arduino.

Agora conecte a lâmpada no Releshield como mostrado na figura abaixo:

Conecte seu Arduino no PC, abra a IDE do Arduino e cole a seguinte programação:

/*Mude o mac[] para o mac da sua placa Ethernet Shield (números localizados embaixo da placa) e o IP de acordo com sua rede local. Por exemplo, se o seu roteador tiver o IP 192.168.1.1. Digite um IP 192.168.1.xxx. Sendo xxx de sua escolha. Cuidado para não colocar um IP igual de um PC de sua rede local. Aqui foi escolhido o final 177. 

Cuidado também com a alimentação do Arduino. Utilize conectado ao USB do PC ou a uma fonte externa de 0 a 12V com 1A de corrente.*/

#include <SPI.h>
#include <Ethernet.h>
boolean incoming = 0;
int rele1 = 0;
int rele2 = 0;

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

EthernetServer server(80);
void setup()
{

Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);

pinMode(8, OUTPUT);
digitalWrite(8, LOW);
pinMode(7, OUTPUT);
digitalWrite(7, LOW);
}

void loop()
{
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
// an http request ends with a blank line
boolean currentLineIsBlank = true;
String str;
while (client.connected()) {
if (client.available()) {
char c = client.read();
str.concat(c);
if(str.endsWith("/1on")) rele1 =1;
else if(str.endsWith("/1off")) rele1 =0;
if(str.endsWith("/2on")) rele2 =1;
else if(str.endsWith("/2off")) rele2 =0;
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
if(rele1 == 1)
{
client.println("ligado1" );
digitalWrite(7, HIGH);
}
else if (rele1 ==0)
{
client.println("desligado1" );
digitalWrite(7, LOW);
}
if(rele2 == 1)
{
client.println("ligado2" );
digitalWrite(8, HIGH);
}
else if (rele2 ==0)
{
client.println("desligado2" );
digitalWrite(8, LOW);
}

break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
}
}

Depois disso, selecione a sua versão do Arduino (UNO, Duemilanove, etc) em Tools/board e a porta (COMx, ttyUSBx, ttyACMx, etc) em Tools/Serial Port. E clique em UPLOAD.

Agora abra seu navegador de internet (Mozilla Firefox, Google Chrome, Internet Explorer, Safari, etc) e digite o ip que você determinou adicionando o "/1on" no final. O Led do relé 1 irá ligar. Ao digitar novamente o ip com "/1off" no final, o LED do relé 1 irá desligar. Com o relé 2 faça a mesma coisa. Pronto agora você consegue ligar e desligar o lâmpadas como Releshield e Ethernet! 

E é isso! Esperamos que tenha gostado! Em caso de dúvidas, poste aqui neste blog! Caso tenha sugestões para tutoriais, clique aqui! Para ver outros tutoriais e projetos desenvolvidos pela equipe LdG e por outros garagistas, clique aqui e aqui, respectivamente! Até a próxima!

Referências:

http://arduino.cc/en/

http://arduino.cc/en/Tutorial/WebServer

http://labdegaragem.com/forum/topics/rele-shield-ethernet-shield

  • Rafael Duchatsch

    Bom dia, neste Shild teria como conectar varios?

  • Alex Moscon Morosi

    Cara estou usando um rele mais não o shield para ativar um motor de passo só que não estou conseguindo estou usando usando seu tuto somente inserindo as linhas para rodar o motor só que ele até manda o comando para o motor mais ele não gira da uma mexida fica tipo dando uns toques e não roda você tem alguma ideia para ajudar?

  • jeferson martins pereira

    bom dia: galera to com uma duvida sobre a ethernet shield;

    qual a vantagem de ter uma shield ethernet, se eu quizer comandar meu arduino pela internet preciso ter um servidor (em casa) para dar esse suporte para o arduino? então uso direto a serial do arduino sem precisar da shield, imagino que a shield ethernet tem mais finalidade para uma intranet, pois não precisarei de servidor? estou certo ou não. abraços e aguardo

  • jeferson martins pereira

    boa noite: como faço para acessar via rede externa se meu ip é dinamico?

  • Gabriel Salgueiro

    Se eu quiser uma placa de circuito impresso, conectando todas as placas, conecto o módulo relê no Arduino ou nas portas que a placa Ethernet disponibiliza?

  • Nilton O. Diniz

    Voces não precisam ter um ip dinamico para controlar seus dispositivos externamente. mas precisarao de um pouco de conhecimento de programação web. Por exemplo, criem um host web externo (em qualquer host como uol, locaweb ou outro de sua preferencia), neste host crie uma pagina (Com ou sem banco de dados), que de alguma forma "armazene " os status dos seus dispositivos. E criem uma pagina (Agora sim no seu computador), que leia as alterações que acontecem no host web (externo) e via sock apliquem nos seus dispositivos. a unica coisa que voces obrigatoriamente deverao ter é internet.

  • Iogo Soares

    pessoal nao to conseguindo fazer o ethernet shield fucionar não, eu tento rodar o programa padrao e tento conectar o ip que eu configurei que no caso é 192.168.1.156 e nao apareçe nada na tela do browser, a placa do shield ta esquentando, isso é normal? eu utilizo o roteador da TP-LINK TLWR740N, o DHCP tá ativado, tem alguma configuração que eu tenho que fazer?

  • Adenan Araujo

    Eai pessoal, gostaria de pedir que fizessem uma video aula sobre esse projeto explicando a parte de programação e talls.

    Vlew aii o tutorial ta bom, mas com um video da pra fica melhor.

  • JOAO SALDANHA DE OLIVEIRA

    Estou fazendo esse mesmo projeto, mais gostaria de ultilizar um programa em Delphi para enviar s comandos ao arduino, ao inves do browser. Pode me ajudar (tentei ultilizar o tcp/ip client no delphi mais nao consegui)

  • Fábio Alessandro M . P

    Galera gostaria de saber como eu aciono um rele em outro arduino na minha rede. utilizando um arduino Cliente e um arduino Servidor. vai ser assim eu gostaria que tivesse um botão em um dos arduinos e quando eu apertar o botão ele envia um comando de abrir um portão eletrônico para o outro arduino usando apenas a rede, quando eu apertar o botão novamente ele envia o comando de fechar o portão eletrônico que se eu n me engano e o mesmo comando. desculpas galera mesmo eu já sendo programador estou iniciando em arduino agora 

  • Fábio Alessandro M . P

    Ola galera queria que postassem um tutorial de como usar um WEBCLIENT e um WEBSERVER para acionar um Releshield utilizando uma rede LAN usando um botão no WEBCLIENT ou no WEBSERVER ou seja quando pressionar o botão ele aciona o Releshield que esta no outro Arduino enviando o comando através da rede LAN

  • Lucimauro Botelho Durski

    Olá pessoal gostaria de saber a diferença entre o Ethernet Shield e o Arduino Ethernet a minha intensão e controlar alarme e alguns equipamentos através da internet. Obrigado.