Tutorial EthernetShield: Passar uma variável Pelo GET para um Sistema em PHP

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

Exibições: 524

As respostas para este tópico estão encerradas.

Respostas a este tópico

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!!!

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...

Eu estou fazendo um projeto parecido na faculdade..

Você poderia me passar o código fonte desse programa?

O código fonte esta no Tutorial, basta importar a biblioteca do Ethernet Shield Client e usar essas modificações.

// 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
}

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)

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 ! 

Voce utilizaria o Servidor Web .. existe um exemplo do ethernet shield na IDE do arduino

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 !

Se possível, faz um tutorial de como enviar via POST.
Abraços.

RSS

Publicidade

Convide um amigo para o Lab!

 Loja Lab de Garagem

Novo!

Garagino Rev1

Por: R$ 29,00

Ou em até 6x de

R$ 5,18 

Novo!

Estação de Solda

Temperatura Ajustável - 50W

Por: R$ 150,00

Ou em até 18x de

R$ 10,00

 

Exclusividade do LdG!

Android 4.0 Mini PC

Por: R$ 195,00

Ou em até 18x de

R$ 13,00

Osciloscópio Digital

(ADS1102C) - 100MHz - 2 Canais

Por: R$ 1920,00

Ou em até 18x de

R$ 127,96

© 2013   Criado por Marcelo Rodrigues.

Badges  |  Relatar um incidente  |  Termos de serviço