Pessoal, alguem pode me disponibilizar um projeto que acione e desacione o rele pela web?
tipo tem uma pagina de web que tem um botão chamado rele1, clicando nele ele liga, clicando novamente no msm botao desliga, e como fazer essa pagina da web com uma figura no fundo.
e a programação do arduino compatível com a pagina, sou leigo no Ethernet Shield, queria uma como exemplo pra começar a usar o Ethernet Shield.
Tags:
vc já foi na seção disponibilizada aqui no labdegaragem Área Técnica --> Tutoriais ????
Ali tem vários tutoriais que são de grande valia pra todo mundo. Dá uma fuçada lá em no item SHIELDS e verá que tem um tutorial exatamente pra aquilo que vc pretende fazer, ou seja controlar lâmpada pela internet
mas qual eh o modelo do seu ethernet shield?
Pessoal, recentemente eu fiz um projeto bem legal utilizando Arduino + ethernet shield. Vou postar aqui, e se tiverem dúvidas fiquem à vontade de me comunicar....
Material utilizado:
- Arduino Mega 2560;
- Shield ethernet w5100;
- Cabo ethernet;
- Cabo usb A/B para programar o arduino;
Softwares utilizados:
- ControladorEthernet.ino (Arduino)
- Process.php (Arquivo php que faz a parte server side)
- Um servidor caseiro, neste caso utilizei o WAMP
-------------------------------------------------------------------------------------------------
Arquivo do arduino:
ControladorEthernet.ino
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //Mac Address
byte ipArduino[] = {192,168,1,78}; //Arduino IP
byte server[] = {192,168,1,45}; //Server IP, Endereço do servidor
String barCode = "123456";
char msg[50];
int x = 0;
char c;
int readState = 0;
String HTTPrequest_value = "GET http://192.168.1.45/programasArduino/arduino_code/process.php?barCode="; // Aqui vai seu endereço da pagina php dentro do servidor
String HTTPrequest_host = "Host: http://192.168.1.45"; // Endereço do servidor
EthernetClient cliente;
void setup() {
Serial.begin(9600);
Serial.println("System initializing...!");
Ethernet.begin(mac, ipArduino);
delay(1000);
}
void loop() {
if(cliente.connect(server, 80)) {
HttpRequestGET(HTTPrequest_value, HTTPrequest_host);
};
if(cliente.available() > 0) {
ReadHTTPAnswer();
};
if (!cliente.connected()) {
Serial.println();
Serial.println("disconnecting...");
cliente.stop();
delay(50);
Serial.println("disconnected!");
}
}
//Funções utilizadas no programa
void HttpRequestGET(String header, String pcServer) {
Serial.println("Sending a HTTP Request...");
cliente.print(header);
cliente.print(barCode);
cliente.println(" HTTP/1.1");
cliente.println(pcServer);
cliente.println();
}
void ReadHTTPAnswer() {
c = cliente.read();
if(c == '*') {
readState = 1;
} else if(readState == 1) {
if(c == ',') {
readState = 0;
Serial.print(msg);
x = 0;
};
msg[x] = c;
x++;
};
}
-------------------------------------------------------------------------------------------------
Página process.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Menu de controle</title>
</head>
<body bgcolor="#999999">
<?php
$content = $_GET['barCode'];
$data_base_value = "123456,1";
$results = explode(",", $data_base_value);
/*
echo $results[0];
echo "\n";
echo $results[1];
*/
$int = (int)$results[1];
if($int > 4) {
$int = $int - 4.5;
echo "*OK,".$int."%";
} else if($int <= 4) {
echo ("*ERRO,".$int."%");
};
?>
</body>
</html>
-------------------------------------------------------------------------------------------------
Explicação básica sobre o código:
- Primeiro você deve instalar um servidor em alguma máquina local. Neste caso utilizei o wamp;
- Depois, em seguida, deve configurar o servidor como aberto para conexões de qualquer cliente, que seja, LOCAL;
- Uma vez configurado o servidor, você deve criar uma página php, com o código php acima;
- Deve colocar esta página PHP dentro do servidor, em uma pasta acessível, cujo endereço deve ser colocado no arduino, mostrado lá no código;
- Carregar o programa no arduino; (TOMAR CUIDADO, QUE AQUI VOCÊ DEVE CONFIGURAR OS ENDEREÇOS DO ARDUINO E DO SERVIDOR NO CÓDIGO);
- Deve também tomar cuidado o Mac address do seu arduino, muitas vezes muda de acordo com o fornecedor;
- Para ver o IP do servidor, basta ir na máquina que você instalou, e em cmd, digitar ipconfig, IPV4, será o IP do server;
- No arduino, você deve apagar o IP que coloquei, e para descobrir o IP que sua rede local entregou para o arduino (Se for DHCP), basta digitar a linha de comando dentro do void setup(){};
Serial.print(Ethernet.localIP()); //Aqui deverá retornar o IP do arduino;
- Conectar o shield ethernet, e liga-lo no roteador através do cabo ethernet;
Para ver tudo funcionar, basta rodar o serial monitor!
Em relação ao funcionamento, basicamente o sistema funciona assim:
O Arduino é um cliente que se conecta com o servidor e troca pacotes através da rede local.
Para que tudo isso aconteça eu tive que implementar o protocolo HTTP no arduino.
O arduino envia uma requisição HTTP para o servidor buscando o arquivo PHP, pelo método GET, onde no próprio tudo será processado.
O servidor responde para o arduino com o resultado da página php.
Como na página php, já existe um programa, então se tudo estiver coerente, o resultado é devolvido já processado pelo server.
Acontece que na função ReadHTTPAnswer() do arduino, eu apenas leio o resultado da página, o que na verdade aqui utilizo um artifício... Na página php, eu faço com que o resultado da comunicação entre os dois, retorne o valor entre "*" e ",", desta forma no arduino eu leio tudo o que estiver entre estes dois caracteres, assim filtrando tudo o que o HTTP me retorna (O QUE É BASTANTE COISA).
E desta forma sua criatividade é o limite deste projeto. Aqui você pode criar o que quiser e ir longe!
Precisando estou inteiramente à disposição.
Abraços.
Ivan Galhardoni
E-mail: ivan.system@yahoo.com
Tel: (11) 2641 5721
Cel: (11) 99525 0231
blz ivan, obrigado fera, parabens novamente
Abraços
Lucas Asc.
Vê se ajuda. http://eletrodex.blogspot.com.br/2014/10/modulo-shield-ethernet-w51...
Tem um exemplo ligando e desligando um led que é exatamente o que vc quer fazer.
Abraço!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por