Internet de las Cosas con Arduino IBOARD

Internet de las Cosas (IoT)

IoT por sus siglas en ingles, Internet de las Cosas se refiere a todas las cosas que están conectadas a internet. Actualmente solo el 1% de los objetos del mundo están conectados. Básicamente la hiperconexión consiste en que cada dispositivo o Arduino que exista a nuestro alrededor tenga una dirección de internet. y por tanto tenga la capacidad de comunicarse con otros dispositivos u objetos.

El desarrollo de internet de las cosas implica que cada vez más las conexiones a internet serán entre máquinas, y no entre personas. Sera posible que millones de sensores y chips comuniquen con datos que registran, ayudando quizá a regular el tráfico de las ciudades, a medir el consumo de energía del alumbrado público.

Internet de las cosas podría cambiar el mundo tal y como lo conocemos hoy y puede ser tanto a nivel doméstico como profesional. Para que el internet de las cosas funcione alrededor del mundo, en cada hogar y empresa tendrán que pasar muchas décadas.

Arduino Ethernet Shield W5100 compatible con POE y expansión SD XBee IBOARD

La tarjeta IBOARD Ethernet Shield incluye el circuito integrado WIZnet para la comunicación por Ethernet, un socket para XBee y nRF24L01+ y un ATmega328. Con esta tarjeta puedes añadir comunicación inalámbrica a tus proyectos. La tarjeta es ideal para automatización, domótica o control de robots. IBOARD puede ser utilizada como un Ethernet shield convencional con el POE (Power on Ethernet) como fuente de poder y con una micro SD para almacenamiento masivo.  Si se requiere cargar un programa desde el arduino es necesario conectar un adaptador USB a Serial debido a que esta tarjeta solo tiene el microcontrolador ATmega328P.

Para programar esta tarjeta es necesario un módulo convertidor Serial USB que trabaje a 3.3 Volts. En el IDE de arduino hay que seleccionar la placa Arduino Duemilanove o Diecimila, Atmega328.

Material necesario

Diagrama de conexiones del internet de las cosas con Arduino

A continuación se muestra el diagrama de conexiones de la Tarjeta IBOARD con el modulo Serial USB para programar y el módulo de relevador para controlar el encendido y apagado del foco.


Imagenes de la tarjeta IOT en Arduino

En las siguientes imágenes mostramos como están conectados los componentes entre si y el smartphone con el que controlamos el encendido y apagado del foco.

Internet de las Cosas con Arduino

imagen 2

Imagen 2. Conexión de la Iboard a la fuente de alimentación de 9 V y Ethernet.

imagen 3

Dirección IP para comunicarse con la Iboard y controlar el encendido del foco.

imagen 4

Imagen 4. Foco apagado

imagen 5

Imagen 5. Foco encendido.

Código de ejemplo de IOT con Arduino

#include <SPI.h>  //Importamos librería comunicación SPI
#include <Ethernet.h>  //Importamos librería Ethernet

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };//Ponemos la dirección MAC de la Ethernet Shield que está con una etiqueta debajo la placa
IPAddress ip(192,168,15,1); //Asingamos la IP al Arduino
EthernetServer server(80); //Creamos un servidor Web con el puerto 80 que es el puerto HTTP por defecto

int led=2; //Pin del led
String estado="OFF"; //Estado del Led inicialmente "OFF"

void setup()
{
  Serial.begin(9600);

  // Inicializamos la comunicación Ethernet y el servidor
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());

  pinMode(led,OUTPUT);
}

void loop()
{
  EthernetClient client = server.available(); //Creamos un cliente Web
  //Cuando detecte un cliente a través de una petición HTTP
  if (client) {
    Serial.println("new client");
    boolean currentLineIsBlank = true; //Una petición HTTP acaba con una línea en blanco
    String cadena=""; //Creamos una cadena de caracteres vacía
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();//Leemos la petición HTTP carácter por carácter
        Serial.write(c);//Visualizamos la petición HTTP por el Monitor Serial
        cadena.concat(c);//Unimos el String 'cadena' con la petición HTTP (c). De esta manera convertimos la petición HTTP a un String

         //Ya que hemos convertido la petición HTTP a una cadena de caracteres, ahora podremos buscar partes del texto.
         int posicion=cadena.indexOf("LED="); //Guardamos la posición de la instancia "LED=" a la variable 'posicion'

          if(cadena.substring(posicion)=="LED=ON")//Si a la posición 'posicion' hay "LED=ON"
          {
            digitalWrite(led,HIGH);
            estado="ON";
          }
          if(cadena.substring(posicion)=="LED=OFF")//Si a la posición 'posicion' hay "LED=OFF"
          {
            digitalWrite(led,LOW);
            estado="OFF";
          }

        //Cuando reciba una línea en blanco, quiere decir que la petición HTTP ha acabado y el servidor Web está listo para enviar una respuesta
        if (c == '\n' && currentLineIsBlank) {

            // Enviamos al cliente una respuesta HTTP
            client.println("HTTP/1.1 200 OK");
            client.println("Content-Type: text/html");
            client.println();

            //Página web en formato HTML
            client.println("<html>");
            client.println("<head>");
            client.println("</head>");
            client.println("<body>");
            client.println("
<h1 align='center'>HeTPro</h1>
<h3 align='center'>LED controlado por Servidor Web con Arduino</h3>

");
            //Creamos los botones. Para enviar parametres a través de HTML se utiliza el metodo URL encode. Los parámetros se envian a través del símbolo '?'
            client.println("
<div style='text-align:center;'>
");
            client.println("<button onClick=location.href='./?LED=ON\' style='margin:auto;background-color: #84B1FF;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:65px;'>");
            client.println("ON");
            client.println("</button>");
            client.println("<button onClick=location.href='./?LED=OFF\' style='margin:auto;background-color: #84B1FF;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:65px;'>");
            client.println("OFF");
            client.println("</button>");
            client.println("

");
            client.println("<b>LED = ");
            client.print(estado);
            client.println("</b>
");
            client.println("</b></body>");
            client.println("</html>");
            break;
        }
        if (c == '\n') {
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    //Dar tiempo al navegador para recibir los datos
    delay(1);
    client.stop();// Cierra la conexión
  }
}

Enlaces de interes

Video de funcionamiento

Descarga: VID_20151022_120301
[youtube http://www.youtube.com/watch?v=diEhQNfPY-8]

Pagina Iboard

http://wiki.iteadstudio.com/IBoard

Página de Tutoriales

https://hetpro-store.com/TUTORIALES/

Tienda Virtual

https://hetpro-store.com/

Ethernet Shield Arduino W5100

https://hetpro-store.com/ethernet-shieldarduino-w5100/

 

 

Escríbenos tus dudas o comentarios

Usamos Cookies en nuestro sitio WEB

Por favor confirma, si aceptas nuestras cookies de rastreo. También puedes negar el uso de cookies de rastreo y seguir navegando sin que ninguna información sea enviada a servicios de terceros.