Boa noite pessoal!
Sou novato aqui, sempre sanei minhas dúvidas aqui sem precisar comentar, mas agora acho que o caso é mais grave! Eu fucei bastante o fórum e não achei nada muito claro, eu revirei a internet, e também não achei nada, até achei links que me deram bastante avanço, porém acabaram dando pequenos erros, enfim, não vou postar aqui os com erros, pq neles fiz muitas " gambiarras".
Então é o seguinte, vou postar a dúvida, e vocês podem tanto me mandar links ou me ajudar aqui mesmo, ambos serão ótimos para meu aprendizado!
Estou usando um ENC28J60 que comprei muito barato, e ele usa a biblioteca ETHER_28J60.h e a etherShield.h, e estou tentando ler o meu sensor LM35, então é o seguinte, eu tenho a programação para ler o sensor, e consegui disponibilizar e acessar ele através da minha rede local, sem problemas, eu digitava o IP da minha plaquinha e pronto, acessava certinho.
A dúvida vem agora, como eu faria para disponibilizar num site, eu criei uma conta num host, o 000webhost, e lá eles me forneceram o IP do meu site e a porta, ai procurei alguns códigos na internet, mas geralmente eles faziam o trabalho ao contrário, enviavam informação ao arduino, e não liam dele, ou usavam shields diferentes, e aí dentro das minhas pesquisas me deparei com uma biblioteca desconhecida por mim, a client.h, ( na qual não sei usar )
exemplo:
client.print("POST arduino/index.php");
client.println(" HTTP/1.1");
client.println("Host: www.meusite.com.br");
client.println("Content-Type: application / x-www-form-urlencoded");
client.println("Connection: close");
client.print("Content-Length: ");
client.println(data.length());
client.println();
client.print(data);
client.println();
client.println();
e vi que ela era fundamental, vi também que ao começo do código, era necessário usar :
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,0,6 }; // ip que o arduino assumirá
byte gateway[] = { 192,168,1, 1 }; // ip do roteador
byte subnet[] = { 255, 255, 0, 0 };
Aqui segue meu código normal de leitura:
#include "etherShield.h"
#include "ETHER_28J60.h"
static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};
static uint8_t ip[4] = {192, 168, 0,6};
static uint16_t port = 80;
ETHER_28J60 e;
int analog;
float temp;
void setup()
{
e.setup(mac, ip, port);
}
void loop()
{
if (e.serviceRequest())
{
e.print("<html><head><title>Temperatura - Teste</title></head><body>");
e.print("Temperatura: ");
analog = analogRead(0);
temp = (analog * 0.00488)*100;
e.print(tempt);
e.print("<br><br><b>Desenvolvido por Allan Romanato</b></body></html>");
e.respond();
}
delay(100);
}
Conto com a ajuda de vocês, pois já revirei a internet, e nada me serviu, ao menos nada que eu conseguisse entender de forma clara, muito obrigado!
Tags:
Rapaz, e se voce usar o no-ip ?
vc redireciona a porta 80 no seu roteador para o arduino, pra publicar ele na internet, e vc mantem sua conta no-ip atualizada com seu ip (ha programas pra isso no proprio site do no-ip, ou ainda vc pode configurar o roteador pra enviar a atualizaçao de ip pro site)...
Eu havia pensado nisso, mas eu acho que a segurança ficaria em baixa, e através de um hoster eu teria todo um painel de controle para me auxiliar, se alguém conhecer outro hoster e saiba fazer, por mim não tem diferença, mas acredito que todos seguem a mesma linha, obrigado pela dica Wagner, mas é que realmente fico preocupado com isso, com o fato de acessar diretamente a minha plaquinha, e não ao site.
mais ninguém pode ajudar ? preciso muito disso pessoal, ninguém aqui no fórum nunca tentou fazer isso? :/
Grato!
William,
Já que você consegue ler na sua rede local, porque você não usa um computador intermediário para fazer a leitura do arduino via serial ou tcp/ip mesmo e enviar estas informações para o webhost via post HTTP?
Arduino -> PC-> <Internet>
Ou tentar direto do arduino abrindo sockets (não sei se o Arduino tem isso) e enviar o post HTTP para que o servidor entendesse a instrução.
Pelo que entendi do seu snippet, a client.h está enviando um HTTP post, da mesma forma que o seu browser faz ao submeter um formulário.
Se não souber como estruturar a chamada leia estes:
http://www.tutorialspoint.com/http/http_messages.htm
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por