Pages: [1]   Go Down
Author Topic: Leer valores sensor ultrasónico en servidor arduino  (Read 1609 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola, buenas tardes a todos.
.
Estoy haciendo algunos experimentos con la tarjeta ethernet de arduino.
Bueno ahora estoy tratando de enviar los valores que arroja (distancias) el sensor ultrasonico HR-SC04 al servidor web creado en mi tarjeta.
El código del sensor ultrasónico es este (y funciona sin inconveniente):
.
Code:
// HR-SC04 Sensor Ultrasonico
#include <Ultrasonic.h>

Ultrasonic ultrasonic(9,8,17400); // (Trig PIN,Echo PIN)

void setup() {
  Serial.begin(9600);
}
void loop()
{
  Serial.print(ultrasonic.Ranging(CM)); // CM or INC
  Serial.println(" cm" );
  delay(200);
}
.
Este código ya lo he implemnetado (luego pongo una foto del circuito) y funciona como deseo.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bien, el código anterior arroja los valores medidos (distancias) impresos en el "monitor serial" que posee el ide de arduino.
Bueno como mi intención es mostrar estos valores por la web, he utilizado y modificado el programa del servidor web que viene como ejemplo en el cual muestra en la web los valores que lee de los 6 pines analógicos que tiene la tarjeta arduino.
Bueno agregandole el programa anterior de tal manera que también muestre los valores del ultrasónico por la web, tengo este código de programa:
Code:
//Mostrar valores del ultrasónico en servidor arduino
#include <SPI.h>
#include <Ethernet.h>
#include <Ultrasonic.h>

Ultrasonic ultrasonic(9,8,17400); // (Trig PIN,Echo PIN)
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,4);

EthernetServer server(80);

void setup()
{
  // start the Ethernet connection and the server:
  Serial.begin(9600);
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop()
{
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended, so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          //Mostrar valores del ultrasónico
          client.print("valores del sensor ultrasonico ");
          client.print(ultrasonic.Ranging(CM));
          client.println("<br />");
          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(analogRead(analogChannel));
            client.println("<br />");
          }
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
  }
}
.
Bueno el detalle es que al armarlo, no funciona; es decir que los valores del sensor ultrasónico no se muestran en el servidor web...
Talvés tenga que agregar algunas funciones de código más, no sé. Espero puedan orientarme al respecto...
Desde ya muchas gracias a todos los que deseen orientarme
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Acá les dejo la imagen del montaje que he hecho.
.

.
Bueno el detalle es que no muestra los valores del sensor ultrasónico en el servidor web
Talvés tenga que agregar algunas funciones de código más, no sé. Yo no soy un experto en htlm...Espero puedan orientarme al respecto...  smiley-confuse
Logged

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

porque no sacas la lectura del sensor fuera del if client. y cada x loops lo lees y lo guardas en una variable. y cuando se conecte un cliente, entonces muestras el valor de la variable
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/

Pages: [1]   Go Up
Jump to: