jueves, noviembre 10, 2011

Arduino Ethernet pro con linux

Luego de hacerle esa espantosa soldadura a mi placa arduino, me puse a hacer unos test para probar la funcionalidad del arduino ethernet pro. De hecho esos headers quedaron chuecos...

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.: