Pages: 1 2 [3]   Go Down
Author Topic: Háblanos de tu proyecto...  (Read 8020 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas noches, soy nuevo en Arduino y en el foro.

Perdon si posteo en el lugar incorrecto :-(

Les cuento mi problema: tengo un arduino UNO con la placa ethernet. Leyendo foros y documentos logre armar dos sensores PIR que "muestran" en una web si los sensores detectaron movimiento y le agregue un boton para "encender led" o activar rele.
Con un solo boton funciona perfectamente, pero cuando agrego el boton nro. 2 no logro encenderlo desde la web.
No me doy cuenta donde esta el problema en la programacion... Me darian una mano?
Adjunto el codigo y MUCHAS GRACIAS!!!!

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

// ethernet configuration
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
IPAddress ip(192,168,1,177); // P1 --> { 10, 1, 1, 5 };
EthernetServer server(88);              // port 80 is default for HTTP

// initial
int LED = 3;          // led is connected to digital pin 3
int LED2 = 8;          // led is connected to digital pin 8
int PIR = 2;          // PIR sensor is connected to digital pin 2
int PIR2 = 7;          // PIR sensor is connected to digital pin 4
int LDR = 5;          // LDR sensor is connected to analog in 5
int PIRstate = 0;     // variable for PIR sensor status
int PIRstate2 = 0;     // variable for PIR sensor status
float photocell = 0;  // variable for photocell (LDR) analog value
char c = 0;           // received data
char command[2] = "\0";  // command


void setup()
{
  Ethernet.begin(mac, ip);
  server.begin();
  pinMode(LED, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(PIR, INPUT);
  pinMode(PIR2, INPUT);
}


void loop()
{
  EthernetClient client = server.available();
  // detect if current is the first line
  boolean current_line_is_first = true;

  if (client) {
    // an http request ends with a blank line
    boolean current_line_is_blank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if we've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so we can send a reply
        if (c == '\n' && current_line_is_blank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();

          // auto reload webpage every 1 second
          client.println("<META HTTP-EQUIV=REFRESH CONTENT=1 URL=>");
         
          // webpage title
          client.println("<center><p><h1>Detector de movimiento WEB</h1></p><center><hr><br />");

          // read analog pin 1 for the value of photocell
          // photocell = analogRead(LDR);
          // client.print("<p><h2>Light reading = <font color=indigo>");
          // client.println(photocell, 2);
          // client.println("</font></h2></p>");
         
          // read digital pin 13 for the state of PIR sensor
          PIRstate = digitalRead(2);
          if (PIRstate == HIGH) { // PIR sensor detected movement
            client.println("<p><h2><font color=red>MOVIMIENTO DETECTADO! - SECTOR 1 </font></h2></p>");
          }
          else { // No movement is detected
            client.println("<p><h2><font color=green>Sin movimiento - SECTOR 1</font></h2></p>");
          } 
          // read digital pin 7 for the state of PIR sensor
          PIRstate2 = digitalRead(7);
          if (PIRstate2 == HIGH) { // PIR sensor detected movement
            client.println("<p><h2><font color=red>MOVIMIENTO DETECTADO! - SECTOR 2 </font></h2></p>");
          }
          else { // No movement is detected
            client.println("<p><h2><font color=green>Sin movimiento - SECTOR 2</font></h2></p>");
          } 
         
          // DM 3-8-2014
          PIRstate = digitalRead(3);
          if (PIRstate == HIGH) { // Led 1 activado
            client.println("<p><h2><font color=red>LED 1 ACTIVADO!</font></h2></p>");
          }
          else { // Led 1 desactivado
            client.println("<p><h2><font color=green>Led 1 desactivado</font></h2></p>");
          } 
          // DM 3-8-2014

          // DM 3-8-2014
          PIRstate = digitalRead(smiley-cool;
          if (PIRstate == HIGH) { // Led 2 activado
            client.println("<p><h2><font color=red>LED 2 ACTIVADO!</font></h2></p>");
          }
          else { // Led 2 desactivado
            client.println("<p><h2><font color=green>Led 2 desactivado</font></h2></p>");
          } 
          // DM 3-8-2014
         
          // button functions
          client.println("<form  method=get name=form>");
          client.println("<button name=b value=1 type=submit style=height:80px;width:150px>LED1 On</button>");
          client.println("<button name=b value=2 type=submit style=height:80px;width:150px>LED1 Off</button>");
          client.println("<p> </p></center>");
          client.println("<button name=b value=3 type=submit style=height:80px;width:150px>LED2 On</button>");
          client.println("<button name=b value=4 type=submit style=height:80px;width:150px>LED2 Off</button>");
          client.println("</form><br />");
         
          // webpage footer
          client.println("<hr><center><a href=http://www.diegomarino.com.ar>Diego Marino</a><br />");
          client.println("<p>Esta pagina actualizara cada 1 segundo.</p></center>");
         
          break;
        }
        if (c == '\n') {
          // we're starting a new line
          current_line_is_first = false;
          current_line_is_blank = true;
        }
        else if (c != '\r') {
          // we've gotten a character on the current line
          current_line_is_blank = false;
        }
        // get the first http request
        if (current_line_is_first && c == '=') {
          for (int i = 0; i < 1; i++) {
            c = client.read();
            command = c;
          }
          // LED control
          if (!strcmp(command, "1")) {
            digitalWrite(LED, HIGH);
          }
          else if (!strcmp(command, "2")) {
            digitalWrite(LED, LOW);
           
            // LED2 control
         if (!strcmp(command, "3")) {
         digitalWrite(LED2, HIGH);
         }
          else if (!strcmp(command, "4")) {
           digitalWrite(LED2, LOW);
          }
        }
      }
    }
    }
    // give the web browser time to receive the data
    delay(1);
    client.stop();
  }
}
Logged

España
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola a todos, después de dos años experimentando con Arduino, he decidido empezar un nuevo proyecto que le he llamado "ArduRover"(no es muy original, pero puede valer), se trata de un vehículo oruga capaz de moverse de manera autónoma o controlado a distancia. Irá evolucionando conforme pase el tiempo e implementemos múltiples accesorios y funciones.
Algunas de las funciones que me gustaría que tuviese son las siguientes:
•Movimiento de Avance, Retroceso, Giro a la Izquierda, Giro a la Derecha, etc (ya está implementado)
•Capaz de seguir una línea mas o menos compleja.
•Capaz de reproducir una ruta previamente almacenada y salir de un laberinto
•Evitar obstáculos
•Programación a través de una pantalla LCD
•Control de manera inalámbrica (Bluetooth).  (ya está implementado)
•Instrumentado con sensores de Luz, Temperatura, Sonido, etc.
•Comunicación bidireccional
•Brazo robotizado
•Cámara de Vídeo
•ETC

Algunos de los requerimientos ya se encuentran implementados en fase Beta y otros están en fase de proyecto.

Os dejo la dirección para que lo veáis y me digáis vuestra opinión.
http://ardubasic.wordpress.com/ardurover/

Espero que os guste y vuelvo a repetirme, decirme que os parece, si eliminaríais algo, si implementaríais alguna función, etc

Saludos
Logged

España
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

No estoy muy seguro de si esto iria aqui, pero he iniciado un nuevo proyecto y me gustaria consejos:

Mi idea original (luego puede variar segund vuestras sugerencias) es hacer un vehiculo robot que pueda ser teledirigido por ordenador via wifi o bluetooth. Para ello usariamos una raspberry que mediante wifi o similar se conectara al ordenador y recibiera ordenes (supongo que la programaria en Python) y que esta controle al arduino que tendra tanto la adquisición de datos (de los sensores de distancia y similares) como el control de los motores usando un shield. El robot llevara tambien incorporada una camara pero la idea es que sea analogica porque tengo entendido que enviar video via wifi no es algo tan sencillo.

Me gustaria que me aconsejarais algunas cosas como:
Deberia usar la camara de la raspberry e intentar el envio de video via wifi?
Deberia programar la raspberry en un lenguaje distinto a Python?
Con que deberia programar la interfaz para el ordenador? en principio habia pensado en C# que es lo que conozco.
Como me aconsejais que alimente el arduino y los motores?

Muchas gracias a todos! Como veis soy un poco novatin pero tengo ganas!

Yo estoy realizando un proyecto similar y el problema de la alimentación lo he solucionado con un bloque de seis pila recargables de 1.2 Vccv, con lo que alimento a los motores y al Arduino con 7.2 Vcc, como el Arduino necesita al menos 7..0 V, esta solucionado.
Espero haberte ayudado.
Saludos
Logged

España
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas noches todos.
Hace muy poco que comencé a darle vueltas a la idea de cosntruir un indicador de rumbo (o brujula) para mi velero.
Leyendo aqui y allá adquiri los componentes siguientes:
*ARDUINO MEGA 2560 https://www.adafruit.com/products/191
*LSM303 http://www.adafruit.com/products/1247
*LCD 16x2 http://www.adafruit.com/product/181
Siguiendo los tutoriales y las librerias del LCD y del LSM303 consigo que funcionen por separado pero no se como conseguir dirigir los valores de posicion del Norte del LSM303 al Diplay del LCD
Mis conocimientos en Programacion son muy escasos y acudo a este foro a ver si alguno de vosotros podeis darme alguna pista para conseguir unir las piezas del "puzle".
Gracias anticipadas.


Bueno lo primero para poderte ayudar es saber hasta donde has llegado.

Pon el código que te funciona y dime donde te has atascado. En principio si has conseguido que funcione por separado, tienes casi el proyecto terminado.

Saludos
Logged

Pages: 1 2 [3]   Go Up
Jump to: