Aqui el primer problema es que uso Linux, y la libreria Ethernet del arduino no nos sirve (empieza a mandar basura). Buscando se recomienda cambiar esa librería por la Ethernet2.
Si solo la instalamos, en mi caso copiando los archivos a /usr/share/arduino/libraries/, nos van a salir errores de compilación, para resolverlos editamos el archivo Server.cpp y sustituimos #include "Ethernet.h" por #include "Ethernet2.h", el siguiente paso es borrar los archivos Print.cpp y Print.h
Para probarlo simplemente hay que sustituir en nuestros proyectos Ethernet.h por Ethernet2.h
#include
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 10, 198, 0, 2 };
byte server[] = { 10, 198, 0, 1 }; //My machine host
Client client(server, 8080);
const int buttonPin = 7; // the number of the pushbutton pin
const int ledPin = 3; // the number of the LED pin
// Variables will change:
int lastButtonState = LOW; // the previous reading from the input pin
void setup() {
Ethernet.begin(mac, ip);
Serial.begin(9600);
//Esperamos a que se inicie la Ethernet
delay(1000);
Serial.println("connecting...");
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void reacciona(){
if (client.connect()) {
Serial.println("connected");
client.println("GET /Robotina/escucha/escucha HTTP/1.0");
client.println();
if (client.available()) {
for (int i; i<100; i=0) {
char c = client.read();
Serial.print(c);
}
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
}
} else {
Serial.println("connection failed");
} }
void loop() {
int reading = digitalRead(buttonPin);
if (reading == HIGH && lastButtonState != reading) {
reacciona();
}
if (lastButtonState!= reading) {
lastButtonState = reading;
}
digitalWrite(ledPin, lastButtonState);
}
Y este seria mi esquema:
No hay comentarios.:
Publicar un comentario