Vou demonstrar através deste simples tutorial como acender e apagar uma lâmpada (127 ou 220V) através de um smartphone, Arduino e Ethernet Shield.
Material utilizado
-Arduino Uno Rev 3
-Ethernet shield W5100
-Rele Shield 1 canal
-Fonte 6V x 400mA
-Jumper
-Fio
-Tomada macho
-Lâmpada 127V
-Soquete E27
-Roteador
Já com o material separado, vamos fazer o upload do código abaixo. Este que por sinal está bastante “enxuto”.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 0, 101);
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
EthernetServer server(80);
void setup() {
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
pinMode(8, OUTPUT);
}
void loop() {
byte porta8 = digitalRead(8);
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
String vars;
while (client.connected()) {
if (client.available()) {
char c = client.read();
vars.concat(c);
if (vars.endsWith("/botao1_lig")) {
digitalWrite(8, HIGH);
}
if (vars.endsWith("/botao1_des")) {
digitalWrite(8, LOW);
}
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head>");
client.println("<meta http-equiv=\"refresh\" content=\"3\">");
client.println("<title>Fedablio - Hobby Hacker</title>");
client.println("</head>");
client.println("<body>");
if (porta8 == 0) {
client.println("<a href='/botao1_lig'><button style='background-color:black; color:yellow; width:150px; height:40px;'>Luz sala</button></a>");
}
if (porta8 == 1) {
client.println("<a href='/botao1_des'><button style='background-color:yellow; color:black; width:150px; height:40px;'>Luz sala</button></a>");
}
client.println("</body>");
client.println("</html>");
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
}
}
Agora que o código foi inserido em nosso Arduino com o Ethernet Shield, vamos montar o circuito conforme a imagem abaixo.

Risco de choque elétrico
Antes de ligar a tomada macho na alimentação 127V, revise o circuito. Não nos reponsabilizamos por danos causados oriundos de imperícia do leitor. Agora que está tudo pronto, conecte seu Arduino com a Ethernet Shield em seu roteador pela interface RJ-45. Em seu smartphone ou notebook (conectados nesta mesma rede em que se encontra o Arduino), abre seu navegador de internet e digite o endereço IP do mesmo, que neste exemplo é 192.168.1.3. O seu navegador deverá mostrar a seguinte imagem:

Quando der um clique no botão “Luz sala”, a porta 8 do Aruino irá ficar em estado alto (HIGH ou 5V) e consequentemente ligará o relê que deixará a tensão 127V fluir e assim ligar a lâmpada.

Quando desligado, o Arduino vai ler novamente o estado da porta, que é para estar baixo (LOW ou 0V) e mostrar o botão na cor preta novamente.
