Necesito consejo shield arduino

Hola buenas a todos,

Tengo hecho un pequeño robot con una placa de arduino uno y una shield para darle chicha a los motores. Ahora me gustaría hacer una pequeña aplicación web para poder mover el robot remotamente. ¿Que shield me aconsejáis utilizar para esto? Ultimamente estoy un poco desconectado y no se cual utilizar.

Saludos!!!

Con un módulo HLK-RM04 podrás controlarlo vía serie desde tu red o desde Internet. Y por menos de 11€.

Y tienes un tutorial básico en mi página.

Jopapa
www.jopapa.me

hablas de algo wifi no?

Si de algo wifi me refiero, que mi robot se conecte a mi red local, y yo a través de una aplicación web poder moverlo remotamente. No se si me explico bien.

Jopapa el modulo ese que me pones tiene buen precio, pero la integración con arduino uno no la veo muy sencilla...Corrígeme si me equivoco.

Tan sencilla como conectar dos cables, los de una comunicación serie, Tx con Rx y Rx con TX.
Configurar el módulo según ves en mi página y mandar ordenes por WEB.

Jopapawww.jopapa.me

perdona jopapa, creo que lo que me has puesto es justo lo que necesito, no lo había leido bien. Ahora viene la pregunta del millón, ¿conoces alguna página web donde lo vendan? El enlace de ebay que me has puesto viene dede china y lo quería tener cuanto antes, para no aburrirme mucho en navidades jeje, no me importa pagar un poco más...

Jajaja que impaciencia.. entonces comprate un Shield WIFI y listo.

Compralo aca, 10 euros mas caro pero podrás jugar para navidad jajaja

Gracias surbyte por la respuesta. De todos modos, cual es la diferencia entre laplaca que me ha puesto jopapa y la de surbyte? Una trae RS2323 y ethernet y la otra nada. Para utilizarla como shield en un arduino uno, cual sería mejor

La placa permite conectar el módulo por cable y trae el conector típico de serial.
Lógicamente no tiene sentido comprar un módulo wifi para luego conectarlo por cable y la conexión serie son dos cables, no necesitas ningún conector.
Además el Shield es para el módulo, no para el Arduino. Dinero perdido.
surbyte te lo dice por tu impaciencia.
Más aún, al solo necesitar dos cables, puede prescindirse del Arduino Uno por los mas baratos y pequeños Nano o Micro.

Jopapa
www.jopapa.me

Si, veo que tal vez no fue un buen consejo. Tómalo con pinzas.
Y es cierto, solo era para que lo tuviera pronto.

Ok pues creo que están todas mis dudas aclaradas. Ya investigaré a ver si consigo la placa que dice jopapa por aquí cerca.

Muchas gracias majetes por la ayuda y consejo.

Saludos.

Entonces ponle SOLUCIONADO al titulo de tu post.
Gracias.

Ok pongo solucionado, pero me gustaría aclarar ciertas cosas que he investigado y seguramente no estará demás ponerlas aquí. Por favor jopapa ya que veo que tu estas puesto en esto, confirmame lo siguiente, ya que en el tutorial de tu página no me queda del todo claro

Leyendo en internet acerca de la placa HLK-RM04 me he dado cuenta que ésta no tiene la opción web server, es decir que no puede albergar un página web, como la shield ethernet de arduino, ya que utiliza una comunicación serial. Por tanto, para hacer que un dispositivo se accione a través de internet usando dicha placa, ¿como se haría? ¿hago que el ordenador me haga de servidor y alojo ahí un pequeña página web o mediante el intercambio de caracteres vía serial hago que se me conecte dicho dispositivo?

Saludos!!

y de donde sacas que el Ethernet shield ALBERGA una página web? La página esta en el código de Arduino usando el Shield Ethernet como medio ante internet, de igual modo debes hacerlo con el HLK-RM04.
Fui a la pagina de jopapa y quedé impresionado con el HLK.RM04. Esta muy bueno!!

cual es tu duda? Sigue los ejemplos que ha hecho y avanza desde ahi.

No digo que albergue digo que pudes incrustar el código html en el código de arduino, haciendo este de servidor. ¿Se puede hacer eso mismo la placa HLK-RM04?
No digo que el tutorial de jopapa no esté claro, si no que a mi no me aclara, pero obviamente se debe a mi falta de conocimientos. El tema es que he visto ejemplos de proyectos que usan la ethernet shield y usando las librerias ethernet incluyen el código html en el propio lenguaje de arduino y se me genera la duda de si esto se puede hacer con esta placa o si se puede usar las mismas librerias, etc.

Saludos!

con el permiso de jopapa tomé su ejemplo y lo posteo acá, asi lo discutimos o incluso que lo haga si quiere el propio jopapa, a ver que es lo que no se comprende o que cosa diferente quieres hacer que este ejemplo no ilustra:

Wifi para Arduino

El módulo HLK-RM04 nos permite añadir conexión Wifi a nuestro Arduino por tan solo unos 10€. Ello nos posibilita el control inalambrico en un entorno de bastantes metros y sin cables, bien a través de nuestra red local o (si configuramos el Router y tenemos IP fija) via Internet desde cualquier parte con un ordenador o un móvil. ¡¡Guai!!.

El módulo mide 3x4 cm y solo necesita dos hilos para funcionar ya que se comunica vía serie con el Arduino. No hay una atentica comunicación Wifi, solo es serie, pero es más que suficiente para recibir datos o enviar comandos a cualquiera de los pines del Arduino. Se le puede poner una antena externa para mejorar el alcance y también hay una placa (shield) para usarlo con conexión por cable .

Estas son las especificaciones y página de configuración:

Para configurar nuestro HLK-RM04 hay que seguir unos pasos.
-Conectarle alimentación de 5v. Patilla 1 al pin 5v del Arduino y patilla 2 al negativo del Arduino.
-Con un portátil buscarlo en redes wifi disponibles. Aparece como Hi-Link-xxxx. Conectar con clave 12345678.
-Abrir su página de configuración en la dirección 192.168.16.254/Serial2Net.asp y hacer log-in: admin/admin
-Hay que poner WIFI(CLIENT)-SERIAL, el nombre SSID de vuestra WIFI, vuestra clave y el tipo de encriptación que usa.
-Prefiero elegir IP STATICA. Poner una libre y gateway de vuestro router.
-He bajado la velocidad del serial a 57600, pero se puede poner el que se prefiera.
-Aplicar cambios y ya se puede (dejar pasar 1 minuto) acceder a esta misma página desde vuestra RED poniendo la nueva IP.

Si algo falla y no podemos contactar desde nuestra RED local ni por wifi con el portátil, podemos reinicializar el módulo poniendo a masa el pin 10 durante mas de 6 segundos.

Hay otra página de configuración mucho más completa en 192.168.16.254/home.asp, pero no se necesita para nuestro tema.

Si todo esta bien y "vemos" el módulo desde nuestra RED local, ya podemos conectar el
Pin 20 (Rx) al Pin 1(Tx) del Arduino
Pin 21 (Tx) al Pin 0 (Rx) del Arduino

Y así tendremos disponible la comunicación serie HLK-RM04-Arduino y viceversa.

Ahora vemos unos ejemplos de enviar y recibir. Recordar que como el Arduino uno solo tiene un puerto serie, para cargar los programas hay que desconectar temporalmente al menos el pin Rx del Arduino.

//Se envian a una página WEB los valores analógicos y datos de sensor DHT22

#include "DHT.h"
#define DHTPIN 2     // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)
DHT dht(DHTPIN, DHTTYPE);

void setup() {               
  Serial.begin(57600);
  dht.begin();
}

void loop() {
  boolean has_request = false;
  int h = dht.readHumidity(); int t = dht.readTemperature();
  if (Serial.available()) {
    while(Serial.available()) {char c = Serial.read();}
    has_request = true;
  }
  if (has_request) {
    Serial.println("HTTP/1.1 200 OK");
    Serial.println("Content-Type: text/html");
    Serial.println("Connection: close"); 
    Serial.println("Refresh: 5");  // refresca la página cada 5 sec
   
    String sr = "<!DOCTYPE HTML>\n";
    sr += "<html&lt;\n";
    // valores de cada pin analógico
    for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
      int sensorReading = analogRead(analogChannel);
      sr += "Valor analogico ";
      sr += analogChannel;
      sr += " es ";
      sr += sensorReading;
      sr += "
\n";     
    }
    sr += "Humedad: ";
    sr += h;
    sr += (" %\t");
    sr += "
\n";
    sr += "Temperatura: ";
    sr += t;
    sr += (" &#38;#38;#38;#186C ");
    sr += "
\n";
    sr += "</html>";
    Serial.print("Content-Length: ");
    Serial.print(sr.length());
    Serial.print("\r\n\r\n");
    Serial.print(sr);
    has_request = false;
  }
}

Al ejecutar el programa podemos ver los valores en los pines analógicos y datos de temperatura y humedad de un sensor DHT22. Los veremos en el navegador poniendo la IP que habiamos asignado al módulo y el puerto 8080. Por ejemplo, en mi caso 192.168.1.120:8080. Desde fuera de casa cambiando a mi IP fija.

Ahora enviamos comandos al Arduino por medio de nuestro ordenador o móvil y simplemente poniendo la dirección IP del módulo, el puerto y un número para cada acción. Ejemplo

http://192.168.1.120:8080/blink?f=1 Enciende el LED 13, activa un relé o cualquier otra acción
http://192.168.1.120:8080/blink?f=2 Pone a nivel bajo el pin 13 (apaga el LED)

//Enviar comandos al Arduino via WIFI
//Actuar con http://192.168.1.120:8080/blink?f=1
//O con http://MyIPexterna:8080/blink?f=1
//Joaquin paredes. www.jopapa.me 2014

void setup() {    
  Serial.begin(57600); 
  pinMode(13, OUTPUT); //Rele 1
  pinMode(12, OUTPUT);  //Rele 2
}

int f = 0;
void loop() {
  boolean has_request = false;
  String in = "";
  if (Serial.available()) {
    in = "";
    while (true) {  // should add time out here
      while (Serial.available() == false) {}
      in += (char)(Serial.read());
      if (in.endsWith("\r\n\r\n")) {
        has_request = true;  break;
      }
    }  
  }
  if (has_request) {
    int i1 = in.indexOf("GET /blink?f="), i2;
    if (i1 != -1) {
      i2 = in.indexOf(" ", i1+13);
      f = in.substring(i1+13, i2).toInt();
    }
    Serial.println("HTTP/1.1 200 OK\nContent-Type: text/html\nConnection: close");
    String sr = "<!DOCTYPE HTML                           >\n";  //¡¡NO QUITAR ESPACIOS EN BLANCO!!
 
    Serial.print("Content-Length: ");
    Serial.print(sr.length());
    Serial.print("\r\n\r\n");
    if (f==1) { Serial.println("Comando 1. Activado Rele 1"); }
    if (f==2) { Serial.println("Comando 2. Desactivado Rele 1"); } 
    if (f==3) { Serial.println("Comando 3. Activado Rele 2"); }
    if (f==4) { Serial.println("Comando 4. Desactivado Rele 2"); }   
    Serial.print(sr);
    has_request = false;
   
  }

switch (f){
  case 1:
   digitalWrite(13, HIGH);
   break;
  case 2:
   digitalWrite(13, LOW);
   break;
  case 3:
   digitalWrite(12, HIGH);
   break;
  case 4:
   digitalWrite(12, LOW);
   break;
   f=0;  
} 
 
}

Resumiendo, si juntamos este módulo y usamos un Arduino mini, por unos 13€ tenemos control vía WEB en cualquier punto de la casa, tanto de recogida de datos como mandar acciones.

Todo ello desde ordenador o desde el móvil y tanto desde nuestra RED local como desde Internet

leibniz81, en la configuración de mi tutorial (y la que he visto en todas partes) el módulo se usa como salida serie. De ese modo no se aloja ninguna página HTML como puede hacerse con el Ethernet Shield.
Simplemente enviamos una URL que contiene la "frase" (blink?f=1) que Arduino lee del puerto serie y tomas las decisiones pertinentes por medio de IF.
Sin tal página Web, puedes enviar los comandos (las URL) que quieras almacenándolos, por ejemplo en el escritorio o desde un navegador. Un icono para cada comando URL.
Personalmente envió las URL desde el móvil programado con Basic4Android.

Jopapa
www.jopapa.me

Para arrojar algo má de luz a esto he encontrado una página que explica más detalladamente los pros y los contras de esta placa. Por similitud del contenido imagino que será la página en la que jopapa se ha basado.

http://rayshobby.net/?p=9592

Saludos.

Bueno y que conclusión sacaste?
El único comentario que haré es que en su momento era una muy buena alternativa, ahora el ESP8266 es una alternativa mejor.
He leido en el link que publicaste que critican la transferencia del dispositivo luego de queres subir datos desde una SD.
Como bien dice un interlocutor criticar a un dispositivo de bajo precio es un poco sugestivo.
Se tiene lo que se paga, y ahora conforme la tecnología se renueva, el ESP8266, es una alternativa que funciona de igual modo y trabaja mejor o al menos eso creo.
Yo compraría un par de modulos ESP8266 y haria las pruebas pertinentes similares a estas.