Pages: [1]   Go Down
Author Topic: ENC28J60 ethernet + App NetIO (iPhone) [SOUCIONADO A MEDIAS]  (Read 1021 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 160
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Antes de nada, decir que ya he usado el buscador..  smiley-roll

Me acaba de llegar el modulo ethernet con chip ENC28J60, y como he podido comprobar, la librería ethernet.h no funciona, y he buscado y descargado la librería ethercard, que es la que debería de funcionar...

he cargado un código de ejemplo usando DHCP, y se conecta a mi red de forma correcta...

Ahora bien...
La app NetIO , usa la librería ethernet.h, asi que mi duda es, si hay posibilidad alguna, de modificar un sketch básico para hacerlo funcionar con esta otra librería (ethercard.h)...

Dejo un código de ejemplo: (extraído de otra web)


#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5 };
byte ip[] = { 192, 168, 1, 6 };

#define BUFFER 10
EthernetServer servidorArduino(3200);

int led = 3;
int pulsador = 4;

void setup(){
  Serial.begin(9600);
  Ethernet.begin(mac, ip);
  servidorArduino.begin();
  pinMode(led, OUTPUT);    
  pinMode(pulsador, INPUT);
}

void loop()
{
  int index = 0;
  char comando[BUFFER];

  EthernetClient clienteApp = servidorArduino.available();
  if (clienteApp) {
   if (clienteApp.connected()) {
          while (clienteApp.available()) {
          char caracter = clienteApp.read();
          if (caracter != '\n') {
            comando[index] = caracter;
            index++;
            if (index >= BUFFER) index = BUFFER -1;
            continue;
          }
        comando[index] = '\0';
      }

      if (strstr(comando, "holaArdu")) {
        clienteApp.println("done");
      }

      if (strstr(comando, "SLIDER")) {
        clienteApp.println("OK");
        analogWrite(led, atoi(&comando[7]) * 4);
      }

      if (strstr(comando, "BOTON")) {
        if (digitalRead(pulsador) == HIGH) {  
          clienteApp.println("ON");  
        } else {
          clienteApp.println("OFF");
        }
      }
    }
  }
}


« Last Edit: April 10, 2013, 07:14:57 am by Lisergio » Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1407
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi ethernet 48j60 lo uso de posapapeles, pelee demasiado para hacerlo funcionar y acaque pidiendo uno compatible con las librerias x ebay.
Pero si que debe funcionar solo que esta mucho menos documentado y no es compatible directo con la libreria arduino.
Suerte
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pero SergeGsx

¿es que no viste el hilo que puse en su momento?

http://arduino.cc/forum/index.php?PHPSESSID=7d778f8ba8a3f2f0a3f8d98a322df06a&topic=106474.0

Que no hice nada simplemente copie el ejemplo de la web que cito en dicho post.

Y funcionaba perfecto, sigue el ejemplo y veras que no tienes problemas.

Mira como iba el mio con un puñetero diecimila:



Y aqui con la burrada de no haberle puesto un regulador de 3v3, cogiendo la corriente del diecimila:

« Last Edit: April 05, 2013, 02:45:16 pm by Heke » Logged

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Offline Offline
Full Member
***
Karma: 0
Posts: 160
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Como ya he dicho arriba, con los ejemplos me ha funcionado perfecto....
Pero lo que no consigo es adaptar el código de arriba , a esta librería...

como seleccionar el puerto de escucha...

EthernetServer servidorArduino(3200);

leer el mensaje que entra y guardarlo en un char...

if (clienteApp.connected()) {
          while (clienteApp.available()) {
          char caracter = clienteApp.read();
          if (caracter != '\n') {
            comando[index] = caracter;
            index++;
            if (index >= BUFFER) index = BUFFER -1;
            continue;
          }
        comando[index] = '\0';
      }

Enviar un mensaje para que lo lea la app

 if (digitalRead(pulsador) == HIGH) {   
          clienteApp.println("ON"); 
        } else {
          clienteApp.println("OFF");
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 160
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Cambiar el puerto de escucha ya lo he logrado!!!!
Al menos de forma un tanto peculiar... como no he conseguido hacerlo desde el propio código lo he hecho modificando el archivo ethercard.cpp...

casi al final del código están las siguientes lineas...

uint8_t EtherCard::mymac[6];  // my MAC address
uint8_t EtherCard::myip[4];   // my ip address
uint8_t EtherCard::mymask[4]; // my net mask
uint8_t EtherCard::gwip[4];   // gateway
uint8_t EtherCard::dhcpip[4]; // dhcp server
uint8_t EtherCard::dnsip[4];  // dns server
uint8_t EtherCard::hisip[4];  // dns result
uint16_t EtherCard::hisport = 80; // tcp port to browse to

en la ultima linea, cambiar el "80" por el puerto que queramos usar...

y alguna idea sobre como leer el mensaje que nos llega y guardarlo por ejemplo en un str???

gracias a todos y yo sigo con mi investigación....
Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1407
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Heke te agradezco la informacion, tanto esta como la que en su dia me diste. Pero al final opte por tirar del shield oficial. Tenia varios oficiales y queria que todos fuesen compatibles con el codigo.
Thanks
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Offline Offline
Full Member
***
Karma: 0
Posts: 160
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Viendo todos los comentarios negativos de este adaptador de red... Acabo de comprar en ebay uno con chip w5100....
pero no me rindo, ....

lo haré funcionar con la app !!!

un saludo y recibiré la ayuda con los brazos abiertos...
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 160
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Casi lo tengo!!!!

he conseguido controlar 5 lees con 5 botones en el iphone.... para ello he conseguido leer las tramas que se envian desde el iphone y se guardan en el buffer ....

Alguien sabría decirme como enviar un string desde la placa arduino??? (claro esta con la libreria ethercard.h)...
En cuanto solucione esto, si es que funciona.. pongo el código que he usado... si no funciona al menos funcionara en un sentido....

un saludo...
Logged

Pages: [1]   Go Up
Jump to: