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

Load Previous Comments
  • jackson ajofre

    e como faco para usar touch osc para acionar as saidas do rele?

  • Jonas Resende

    opa olha um noob fazendo pergunta boba:

    seu eu quiser apagar e acender por um unico comando no terminal, tipo meu ip 1on, ele ligar e deligar.

    como seria meu else???

  • Diego Carlos Oliveira de Aguiar

    quais linhas de comando devo alterar e quais devo adicionar para adicionar mais modulos de reles