miércoles, 23 de octubre de 2013

LABORATORIO NUMERO 15

En este laboratorio se usara el modulo ethernet para arduino, ya que con este podremos tomar datos desde una foto celda y datos térmicos por medio del encapsulado lm335, al tomar estos datos y mapearlos en el arduino se imprimirán  en un servidor web creado directamente por el mismo modulo ethernet. 
Para poder hacer uso optima mente de este shield debemos configurar una dirección I.P. de acuerdo a la de nuestro computador para así poder tener una compatibilidad y poder dar un muestreo de los datos obtenidos en el servidor.


 



La Arduino Ethernet Shield permite a una placa Arduino conectarse a internet. Está basada en el chip ethernet . El Wiznet W5100 provee de una pila de red IP capaz de TCP y UDP. Soporta hasta cuatro conexiones de sockets simultáneas. Usa la libreria ethernet para escribir programas que se conecten a internet usando la shield.

La ethernet shield dispone de unos conectores que permiten conectar a su vez otras placas encima y apilarlas sobre la placa Arduino.

Arduino usa los pines digitales 10, 11, 12, y 13 (SPI) para comunicarse con el W5100 en la ethernet shield. Estos pines no pueden ser usados para e/s genéricas.

La shield provee un conectore ethernet estándar RJ45El botón de reset en la shield resetear ambos, el W5100 y la placa Arduino.
La shield contiene un número de LEDs para información:
  1. PWR: indica que la placa y la shield están alimentadas
  2. LINK: indica la presencia de un enlace de red y parpadea cuando la shield envía o recibe datos
  3. FULLD: indica que la conexión de red es full duplex
  4. 100M: indica la presencia de una conexión de red de 100 Mb/s (de forma opuesta a una de 10Mb/s)
  5. RX: parpadea cuando la shield recibe datos
  6. TX: parpadea cuando la shield envía datos
  7. COLL: parpadea cuando se detectan colisiones en la red

El jumper soldado marcado como "INT" puede ser conectado para permitir a la placa Arduino recibir notificaciones de eventos por interrupción desde el W5100, pero esto no está soportado por la librería Ethernet. El jumper conecta el pin INT del W5100 al pin digital 2 de Arduino.

MATERIALES


  1. 1 arduino mega adk
  2. 1 modulo ethernet shield
  3. 1 computador
  4. 1 foto celdas
  5. 2 encapsulados LM335
  6. DIAGRAMAS

DIAGRAMA DE MONTAJE EN PROTOBOARD

DIAGRAMA ESQUEMÁTICO


DIAGRAMA PARA MONTAJE EN TARJETA PERFORADA

FOTOS

foto 1

foto 2

foto 3

foto 4

foto 5

foto 6


 foto 7

 foto 8

foto 9

foto10



 #include <SPI.h>
#include <Ethernet.h>
#define fotocelda A3
#define LM01 A1        // sensor de temperatura
#define LM02 A2        // sensor de temperatura

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,14); //direccion ip configurada para funcionar con el servidor.

// Initialize the Ethernet server library
// with the IP address and port you want to use 
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
  pinMode(fotocelda, INPUT);
  pinMode(LM01, INPUT);
  pinMode(LM02, INPUT);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}


void loop() {
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        // 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("Connection: close");  // the connection will be closed after completion of the response
 client.println("Refresh: 5");  // refresh the page automatically every 5 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          // output the value of each analog input pin
     
            int valorL = analogRead(fotocelda);
            int luminosidad =  map(valorL, 0, 1023, 0, 100);
            client.print("luminosidad");
            client.print(" is ");
            client.print(luminosidad);
            client.println("<br />"); 
      
            int valorT1 = analogRead(LM01);
            int TEMP1 =  map(valorT1, 0, 1023, 0, 100);
            client.print("temperatura 1");
            client.print(" is ");
            client.print(TEMP1);
            client.println("<br />");  

            int valorT2 = analogRead(LM02);
            int TEMP2 =  map(valorT2, 0, 1023, 0, 100);
            client.print("temperatura 2");
            client.print(" is ");
            client.print(TEMP2);
            client.println("<br />");               
          
          client.println("</html>");
          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();
    Serial.println("client disonnected");
  }
}


VIDEO






No hay comentarios:

Publicar un comentario