Olá a todos, este é meu primeiro post, não sei se já existem aqui algo sobre isso, mas, vou publicar, pois, na internet vejo que muitas pessoas ainda tem dúvidas, e é algo que com um pouco de dedicação, eu consegui fazer para o meu projeto.
Básicamente o problema em questão era passar uma variável de qualquer meio, ( sensor, shield, etc) e enviar para um servidor rodando PHP, algo assim: (arduino/?codigo=aqui vem o código), mas, diretamente no PrintLn eu não conseguia fazer isso.
Vamos lá:
Então o segredo mesmo, é você dividir aquele modelo que é passado pelo PrintLn no cliente em 3 variáveis:
Basicamente a variável cod guarda este código, A guarda o caminho, B recebe o codigo que vem da variável cod e C recebe o final do "cabeçalho", por fim a variável código recebe as variáveis A, B e C concatenadas.
Depois, basta substituir o conteúdo dos PrintLn na parte do HTTP Request que tinha esta sintaxe pela variável:
Então é isso, se alguém estiver com dúvidas nesta parte ou em como fazer o sisteminha em PHP pode perguntar que estamos aqui para ajudar :)
Tags: Arduino, EthernetShield, PHP
As respostas para este tópico estão encerradas.
Permalink Responder até Hericles Cordeiro em 26 julho 2012 at 8:15
Permalink Responder até Andrews Souza de Bastos em 30 julho 2012 at 14:49
Show de bola! salvou meu projeto da faculdade! estava a dias batendo a cabeça pra colocar meu arduino na internet como Web client usando o método GET e não conectava, não funciona. Fiz as modificações conforme seu post e funcionou agora!! Abçs!!!
Permalink Responder até Hericles Cordeiro em 30 julho 2012 at 22:50
Fico feliz em ter ajudado, eu também estava quebrando a cabeça, isso foi uma luz que deu e salvou também meu projeto. Se precisar de ajuda, estamos ai...
Permalink Responder até Zinho em 1 agosto 2012 at 20:39
Eu estou fazendo um projeto parecido na faculdade..
Você poderia me passar o código fonte desse programa?
Permalink Responder até Hericles Cordeiro em 1 agosto 2012 at 23:56
O código fonte esta no Tutorial, basta importar a biblioteca do Ethernet Shield Client e usar essas modificações.
Permalink Responder até Andrews Souza de Bastos em 2 agosto 2012 at 0:32
// um exemplo básico de como enviar uma variável através do link para um servidor. Neste exemplo estou enviando a variável para um sistema supervisório, o ScadaBR. Pode ser usado um servidor de PHP por exemplo para receber esses dados também. Crédito para o colega Héricles que me deu a dica de usar Strings para funcionar.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //endereço mac, pode ser este mesmo. Não tem problema caso você tenha apenas 1 arduino na rede
IPAddress ip(192,168,1, 177); // endereço do arduino na rede(exemplo)
byte server[] = { 192, 168, 1, 3 }; // Scadabr // Endereço do servidor à ser conetado, no meu caso o ScadaBR(exemplo)
EthernetClient client;
String a = "GET /ScadaBR/httpds?teste="; // string que guarda o endereço no ScadabBr para onde enviarei a variável
int b; // variável
String c = " HTTP/1.0"; // complemento necessario para o funcionamento desta função http
void setup(){
Ethernet.begin(mac, ip); // conecta o cliente ao servidor
Serial.begin(9600);
}
void loop()
{
delay(100);
b = analogRead(A0); //leitura de um sensor de temperatura por exemplo
String codigo = a + b + c; //link contendo o endereço completo
client.connect(server,8080); // conceta com o servidor na porta 8080
client.println(codigo); // envia a string codigo que é o nosso link http junto com a variável do sensor
client.println(); // quebra de linha
client.stop(); // termina a conexão e após faz o looping novamente
}
Permalink Responder até Hericles Cordeiro em 2 agosto 2012 at 22:51
Opa, muito bom !, disseminar conhecimento é sempre a melhor maneira de se ter uma maior comunidade, assim, um ajuda o outro e cresce ... agradeço pela citação, e gostaria que me enviasse caso seja publicado o link para acompanhamento, gosto de guardar esses links de tutoriais meus e de outros para passar para o pessoal e para manter uma coleção de informações (ajuda no backup kkk)
Permalink Responder até Marcio Torres em 11 novembro 2012 at 23:09
Olá a todos,
tenho um Servidor Web rodando no Shield Ethernet, porém gostaria de saber qual seria o método para que uma variável recebesse um valor vindo externo(via html) o inverso do que os senhores estão tratando nesse tópico , dede já agradeço as contribuições !
Permalink Responder até Hericles Cordeiro em 12 novembro 2012 at 19:43
Voce utilizaria o Servidor Web .. existe um exemplo do ethernet shield na IDE do arduino
Permalink Responder até Marcio Torres em 13 novembro 2012 at 9:21
Andrews, como seria o inverso ?, ou seja, o arduino recebesse um valor vindo de fora e o guardasse em uma variável no loop, até que ele recebe um novo valor !
Permalink Responder até Caique Freitas em 12 novembro 2012 at 23:15
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
Por: R$ 29,00
Ou em até 6x de
R$ 5,18
Por: R$ 150,00
Ou em até 18x de
R$ 10,00
Por: R$ 195,00
Ou em até 18x de
R$ 13,00
(ADS1102C) - 100MHz - 2 Canais
Por: R$ 1920,00
Ou em até 18x de
R$ 127,96
© 2013 Criado por Marcelo Rodrigues.