Para esse projeto iremos precisar:
Material:
- Arduino
- Shield Ethernet
- 1 Led's
- Fios Jumpers, cabo USB e cabo com conexão RJ-45
Código:
O código abaixo é que iremos fazer o upload no arduino. Esse código já e conhecido nosso. É o controle de dois leds através de uma pagina em HTML.
/***************************************************************
Tutorial Ethernet Shield
Objetivo: Controle de led pela LAN
Autor: Felipe Souza Amaral
***************************************************************/
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //MAC address
IPAddress ip(192,168,0,13); // IP da lan
IPAddress myserver(0,0,0,0); // IP do server
EthernetServer server(80); //porta de conexão
EthernetClient client;
String readString;
void setup(){
pinMode(5, OUTPUT); //pin do LED1
pinMode(7, OUTPUT); //pin do LED2
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
Serial.println("server/client 1.0 test");
Serial.println("Enviando um g na serial monitor para Client - Test");
}
void loop(){
// checar comunicação Serial
if (Serial.available() > 0)
{
byte inChar;
inChar = Serial.read();
if(inChar == 'g')
{
}
}
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100) {
readString += c;
Serial.print(c);
}
if (c == '\n') {
Serial.println(readString); //Mostra no Serial Monitor o debuging
// HTML data header
if(readString.indexOf('?') >=0) {
client.println("HTTP/1.1 Controle de LED's");
client.println();
client.println();
}
else {
client.println("HTTP/1.1 200 OK"); //send new page
client.println("Content-Type: text/html");
client.println();
/******************************Página em HTML******************************/
client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE>Arduino - Teste LED's</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<H1>LED's - ON/OFF</H1>");
//Led 1
client.println("<h4>Led 1</h4>");
client.println("<a href=\"/?led1on\" target=\"inlineframe\">ON</a>");
client.println("<a href=\"/?led1off\" target=\"inlineframe\">OFF</a>");
//Led 2
client.println("<h4>Led 2</h4>");
client.println("<a href=\"/?led2on\" target=\"inlineframe\">ON</a>");
client.println("<a href=\"/?led2off\" target=\"inlineframe\">OFF</a>");
//bloqueio de acesso as páginas{?led2on;?led2off} por exemplo
client.println("<IFRAME name=inlineframe style=\"display:none\" >");
client.println("</IFRAME>");
client.println("</BODY>");
client.println("</HTML>");
}
delay(1);
client.stop();
/*LED 1*/
if(readString.indexOf("led1on") >0) //checa se o led foi aceso
{
digitalWrite(5, 1); // set pin 5 high
Serial.println("Led Off");
}
if(readString.indexOf("led1off") >0) //checa se o led foi aceso
{
digitalWrite(5, 0); // set pin 5 low
Serial.println("Led On");
}
/*LED 2*/
if(readString.indexOf("led2on") >0)
{
digitalWrite(7, 1); // set pin 7 high
Serial.println("Led Off");
}
if(readString.indexOf("led2off") >0)
{
digitalWrite(7, 0); // set pin 7 low
Serial.println("Led On");
}
readString="";
readString="";
}
}
}
}
}
MATLAB
Com o MatLab aberto devemos fazer a interface gráfica agora, digite guide na command window.
Em seguida selecione Blank GUI e faça 4 pushbottons, seleciones as cores respectivas para ligar e desligar e nomeie os botões.
Agora chame a função Callback e coloque o seguinte comando
O comando urlread no MatLab significa:
S = urlread ("URL") lê o conteúdo de uma URL em uma string, S. Se o
servidor retorna dados binários, a seqüência irá conter lixo.
S = urlread ('URL', 'método', params) passa as informações para o servidor como
parte do pedido. O "método" pode ser 'get', ou 'post' e PARAMS é um
conjunto de células de pares param / valor.
S = urlread (..., 'Timeout', T) define um tempo limite, em segundos, quando a função
será erro, em vez de continuar a esperar que o servidor para responder ou enviar
dados.
[S, estado] = urlread (...) pega todos os erros e retorna 1 se o arquivo
baixado com sucesso e 0 caso contrário.
Exemplos:
s = urlread ('http://www.mathworks.com')
s = urlread ('ftp://ftp.mathworks.com/README')
s = urlread (['file :/ / /' fullfile (prefdir, 'history.m')])
Por trás de um firewall, use as Preferências para definir o seu servidor proxy.
Repare também que dentro do comando urlread esta entre ' ' o nº do ip e comando que faz o led ligar ou desligar.
Espero que esse projeto tenha sido interessante, estou a disposição para tentar responder quaisquer dúvida.
Nenhum comentário:
Postar um comentário