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 :)

Exibições: 6064

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
}

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

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço