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!

Exibições: 1098

Responder esta

Respostas a este tópico

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

http://www.jmarshall.com/easy/http/

http://en.wikipedia.org/wiki/POST_(HTTP)

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço