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:
As respostas para este tópico estão encerradas.
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 !
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por