Tem como usar o Etehernet Shield como servido? Tipo eu coloco uma página que se comunica via web com o arduino pelo Shield? Já tentei de vários modos e nada. Todas as consultas que consegui via Google tem o aduino ligado ao computador pela USB para comunicação serial. No final das contas o PC tem sempre que esta ligado. Tem com rodar via servidor ativar e desativar, ler portas diretamente com o Shield e claro o arduino ligado só a fonte e cabo de rede (RJ45)?

Exibições: 721

Responder esta

Respostas a este tópico

Caro,

 

Sim, tem! Procure  por "webserver arduino" e vc achará muitas referências e howtos. Existem limitações quanto ao tamanho do código e da qualidade do html que você pode embutir dentro do Arduino, mas isso, para o que vc deseja, não será um empecilho.

 

[]s

 

PGC

Paulo eu já procurei muito mais só encontro com PHP e comunicação via serial. Isso é, sempre tem que o pc esta ligado e conectado a internet. Quero comunicação direto via web.

Leo,

 

Você deve conectar seu (Arduino+Ethernet Shield) ou um Arduino que já possua ethernet incorporado na mesma placa, tipo este (http://store.arduino.cc/ww/index.php?main_page=product_info&cPa...), carregado com o sketch adequado, dentro de sua rede, no seu roteador.

 

Caso não possua um roteador, você terá que simular via seu PC mesmo, tornando-o um servidor e conectando o Arduino+Shield ao cabo de rede e este na sua placa de rede. (Não estou dizendo para você fazer isso, pois ainda não sei qual shield vc possui e talvez o cabo deva ser crimpado como cross-over. No caso, se seu shield for com o chip Wiznet w5100, que é auto cross-over (ver aqui e aqui), o cabo deve ser o normal mesmo. Mas o risco é seu.... hehehe)


Como estou esperando minha placa da Freetronics, fiz um apanhado de links sobre o tema, para não ter que reinventar a roda. Seguem alguns que podem te servir como passos iniciais:

 

Esse é o "oficial":

 

http://arduino.cc/en/Tutorial/WebServer

 

Neste aqui você verá funcionando com web/smartphone:

 

http://tronixstuff.wordpress.com/2010/09/12/moving-forward-with-ard...

 

Esse aqui, controlando um servo:

 

http://www.instructables.com/id/ServDuino-Arduino-Webserver/#step1

 

Bom, espero que isso te ajude!

 

PS: Assim que a minha placa chegar e eu tiver um tempo, publicarei um tutorial aqui pros garagistas.

Se você tiver sucesso antes, faça o mesmo!

 

[]s

 

PGC

Esse aqui eu fiz,

 

Não sei se ta funcionando devido as atualizacoes no IDE do Arduino, mas assim que tiver um tempo vou atualizar.

 

http://www.instructables.com/id/Ethernet-Shield-LED-WEB-SERVER/

 

Abraço

Renato,

 

Em tese, sim! 

Mas controlar a fila, com os "trocentos" protocolos de impressão e programar um driver para o bichinho seria um desafio e tanto. Para impressoras matriciais, ao estilo das antigas impressoras seriais, do antigo DOS, seria uma tarefa menos dura.

 

[]s

 

PGC 

Usando esse código do exemplo.

 

/*

  Web  Server

 

 A simple web server that shows the value of the analog input pins.

 using an Arduino Wiznet Ethernet shield.

 

 Circuit:

 * Ethernet shield attached to pins 10, 11, 12, 13

 * Analog inputs attached to pins A0 through A5 (optional)

 

 created 18 Dec 2009

 by David A. Mellis

 modified 4 Sep 2010

 by Tom Igoe

 

 */

 

#include <SPI.h>

#include <Ethernet.h>

 

// Enter a MAC address and IP address for your controller below.

// The IP address will be dependent on your local network:

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

byte ip[] = { 192,168,1, 7 };

 

// Initialize the Ethernet server library

// with the IP address and port you want to use

// (port 80 is default for HTTP):

Server server(80);

 

void setup()

{

  // start the Ethernet connection and the server:

  Ethernet.begin(mac, ip);

  server.begin();

}

 

void loop()

{

  // listen for incoming clients

  Client client = server.available();

  if (client) {

    // an http request ends with a blank line

    boolean currentLineIsBlank = true;

    while (client.connected()) {

      if (client.available()) {

        char c = client.read();

        // if you've gotten to the end of the line (received a newline

        // character) and the line is blank, the http request has ended,

        // so you can send a reply

        if (c == '\n' && currentLineIsBlank) {

          // send a standard http response header

          client.println("HTTP/1.1 200 OK");

          client.println("Content-Type: text/html");

          client.println();

 

          // output the value of each analog input pin

          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {

            client.print("analog input ");

            client.print(analogChannel);

            client.print(" is ");

            client.print(analogRead(analogChannel));

            client.println("<br />");

          }

          break;

        }

        if (c == '\n') {

          // you're starting a new line

          currentLineIsBlank = true;

        }

        else if (c != '\r')

 

 

Quando entro pelo ip 192.168.1.7 ele lê as porta analógicas.

analog input 0 is 272
analog input 1 is 278
analog input 2 is 309
analog input 3 is 312
analog input 4 is 293
analog input 5 is 279

Leo,

 

Então, o bichinho tá vivo!

 

Certo?

 

Lembrei-me de que pelo que li, existem duas vertentes de código/bibliotecas em uso pela comunidade. Uma baseada na implementação "oficial" do Arduino, que é baseada no Wiznet w5100 e outra no ENC28J60. Na segunda, li sobre incompatibilidades da implementação oficial da biblioteca ETHERNET e que foi resolvida por intervenções documentadas em outros sites.

 

Dá uma olhada aqui: http://arduino.cc/forum/index.php?action=printpage;topic=58384.0

 

Então, qual é o Shield que vc está usando?

 

[]s

 

PGC

Paulo eu estou usando o oficial a baseada no Wiznet w5100.

rapaz... esse projeto aqui:

http://labdegaragem.com/profiles/blog/show?id=6223006%3ABlogPost%3A...

 

tem uma pagina html hospedada "no arduino" usando o ethernet shield

o projeto faz mais coisas,, hehehe, mas nele tem o que vc procura..

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço