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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus 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.