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)?
Tags:
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
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
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..
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por