LABORATORIO N° 05-07 " Medicion y control con IOT"

 

  INSTRUMENTACIÓN DIGITAL

LABORATORIO N° 05-07 

“Medición y control con IOT



 Objetivo :

Medir variables, manipular actuadores y controlar variables con dispositivos IoT, mostrando la información en indicadores.

 

Objetivo Específicos

 

1.                 Identificar los sensores, actuadores y controlador de un sistema.

2.                 Medir temperatura usando un sensor y mostrar el valor en un display.


3.                Controlar la temperatura de una cámara térmica, usando un sensor, un controlador, dos lámparas incandescentes, y un ventilador.




INTRODUCCIÓN TEÓRICA

 

A.   LA NUBE.

 

La nube de Internet es un nuevo modelo de uso de los equipos que tienen la capacidad de intercambiar información. Traslada parte de tus archivos y programas a un conjunto de servidores a los que puedes acceder a través de Internet. La computación en la nube (del inglés cloud computing), conocida también como servicios en la nube, informática en la nube, nube de cómputo, nube de conceptos o simplemente "la nube", es un paradigma que permite ofrecer servicios diversos para el manejo de la información a través de una red, que usualmente es Internet.




La computación en la nube implica mover parte del trabajo desde tu equipo o red de equipos locales a servidores remotos. Estos servidores almacenan los datos y programas que necesitas para trabajar, de manera que es posible acceder a ellos desde cualquier dispositivo conectado a internet en cualquier parte del mundo.



 ARQUITECTURA Y DISPOSITIVOS USADOS.

A continuación mostramos de manera gráfica la arquitectura usada para el manejo de la información desde el módulo IoT hasta el aplicativo que se ha realizado usando una plataforma la nube.


Para poder gestionar el envío y recepción de la información haremos uso de varios dispositivos tales como los contenidos en el módulo IoT y que se muestran a continuación.

La primera parte conformada por la PC el Arduino Mega 2560 y la tarjera de nos permite usar transmitir datos mediante una conexión Wifi, esto se muestra en la figura siguiente.


Para el desarrollo del laboratorio, haremos uso de la plataforma de desarrollo ARDUINO,  que incluye un microcontrolador ATmega 2560, con todas las interfaces para la entrada y salida de datos tanto analógicos como digitales. En la la Figura 5 vemos el detalle de sus terminales.


El ESP8266: Es un SoC (sytem on chip) fabricado por la compañía china Espressif. Este SoC agrupa distintos componentes en un mismo integrado, siendo los principales un procesador de 32 bits y un chip WiFi con gestión de pila TCP/IP.


En resumen el ESP8266 es un chip que integra en un encapsulado un procesador de propósito general con conectividad WiFI completa.

 El procesador integrado en el ESP8266 es un Tensilica L106 de 32-bits con arquitectura RISC que funciona a una velocidad de 80Mhz, con una velocidad máxima de 160Mhz.

El ESP8266 no incorpora memoria Flash dentro del SoC, por lo que tiene que ser proporcionada por el módulo en el que se monta. La conexión entre la memoria se realiza por QSPI pero, su uso es transparente para nosotros.


 DISPOSITIVOS ACTUADORES.

 Para el laboratorio los dispositivos actuadores a usar son:

 Relé: dispositivo electromagnético que cierra o abre sus contactos al recibir una tensión en la bobina, la bobina consume una corriente mucho menor que la puede circular por sus contactos.

 


En la tarjeta se encuentran montados 4 relés con sus respectivas borneras para las bobinas y los contactos del relé.


Lámpara incandescente: es de 12 V, se usa como fuente de calor y de luz.


Ventilador: usado como elemento actuador para disminuir la temperatura.


 

                  EQUIPOS Y MATERIALES

 

Tabla 1. Equipos y materiales.



RECOMENDACIONES

 

Para la ejecución de sus actividades tome en cuenta lo siguiente:

 

a)     Tenga presente siempre las recomendaciones de seguridad durante su trabajo.

b)     Realice primero las conexiones del circuito base, una vez culminado,

c)      Desarrolle las actividades programadas, anotando sus observaciones y conclusiones.

d)     Al culminar su trabajo, apague sus instrumentos y equipos, ordénelos, ubique adecuadamente su silla y espere la orden para retirarse del ambiente de trabajo.

 

DESARROLLO DE ACTIVIDADES

 

 CONFIGURACIÓN DEL MÓDULO ESP8266 VÍA ARDUINO MEGA 2560 .

Para hacer la conexión a internet del esp8266 mediante WIFI tenemos que seguir los pasos

siguientes:

Primero, configuración del esp8266 module: esta configuración lo podemos hacer con comando AT mediante el puerto serial de un Arduino (mega). Para ello es necesario implementar el siguiente esquemático.




 CONEXIÓN DE ARDUINO MEGA A LA NUBE BLYNK Y CONTROL DE TIEMPO

 En esta experiencia se realizará el procedimiento para realizar la conexión del módulo IoT a un servidor en la nube para poder a través del servidor BLYNK intercambiar datos desde cualquier dispositivo remoto mediante una aplicación (App) cargada en el dispositivo remoto.

Para poder realizar la conexión, necesitamos tener instalado las librerías del BLINK para el arduino, el procedimiento a seguir es:

 

Instalación de librerías y conexión a blynk: Para hacer la conexión es necesario instalar librerías, estos pasos e instalaciones también lo podemos encontrar en la página oficial de blynk. https://www.blynk.cc/getting-started/

Los pasos a seguir en el procedimiento de ejecución son:





IMAGENES -  BLINK 


 



CODIGO DE PROGRAMACION  CAMBIADO LO QUE NOS PIDE HACER  COMPLETO DE LA PRIMERA EXPERIENCIA 

#define BLYNK_PRINT Serial

#include <ESP8266_Lib.h>

#include <BlynkSimpleShieldEsp8266.h>

 

char auth[] = "lJKVPbbEJuZVGeqrjv8IhPmsw2vw6hoZ";

char ssid[] = "moto g(6) play 2170";

char pass[] = "aldanaka";

 

#define EspSerial Serial1

#define ESP8266_BAUD 115200

 

ESP8266 wifi(&EspSerial);

BlynkTimer timer;

void myTimerEvent()

{

  Blynk.virtualWrite(V5, millis() / 1000);

}

 

void setup()

{

  Serial.begin(9600);

  EspSerial.begin(ESP8266_BAUD);

  delay(10);

 

  Blynk.begin(auth, wifi, ssid, pass);

  timer.setInterval(1000L, myTimerEvent);

}

void loop()

{

  Blynk.run();

  timer.run(); // Initiates BlynkTimer

}


VIDEO Y EVIDENCIAS DEL PRIMER EJERCICIO 






1.  2.CONTROL DE LAMPARAS Y VENTILADOR DESDE LA NUBE.


En esta segunda experiencia usaremos los elementos actuadores y la interfaz para los actuadores, mostrados en la figura siguiente.







Usando la interconexión con BLYNK realizaremos los siguientes pasos:






IMAGENES -  BLINK 






CODIGO DE PROGRAMACION  CAMBIADO LO QUE NOS PIDE HACER  COMPLETO DE SEGUNDA EXPERIENCIA 

#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "XcR-SFBOatXqQsRthz_3QPQqJTSA74do";


// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "moto g(6) play 2170";
char pass[] = "aldanaka";

// Hardware Serial on Mega, Leonardo, Micro...
#define EspSerial Serial1

// or Software Serial on Uno, Nano...
//#include <SoftwareSerial.h>
//SoftwareSerial EspSerial(2, 3); // RX, TX

// Your ESP8266 baud rate:
#define ESP8266_BAUD 115200

ESP8266 wifi(&EspSerial);

// This function will be called every time Slider Widget
// in Blynk app writes values to the Virtual Pin 1
BLYNK_WRITE(V1)
{
  int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable
  // You can also use:
  // String i = param.asStr();
  // double d = param.asDouble();
  Serial.print("V1 Slider value is: ");
  Serial.println(pinValue);
  digitalWrite(53,!pinValue);
  digitalWrite(49,!pinValue);
}
BLYNK_WRITE(V0)
{
  int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable
  // You can also use:
  // String i = param.asStr();
  // double d = param.asDouble();
  Serial.print("V1 Slider value is: ");
  Serial.println(pinValue);
  digitalWrite(48,!pinValue);
}

void setup()
{
  // Debug console
  Serial.begin(9600);

  // Set ESP8266 baud rate
  EspSerial.begin(ESP8266_BAUD);
  delay(10);

  Blynk.begin(auth, wifi, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, wifi, ssid, pass, "blynk-cloud.com", 80);
  //Blynk.begin(auth, wifi, ssid, pass, IPAddress(192,168,1,100), 8080);
  pinMode(53,OUTPUT);
  pinMode(49,OUTPUT);
  pinMode(48,OUTPUT);
}

void loop()
{
  Blynk.run();
}




VIDEO Y EVIDENCIAS DEL SEGUNDO  EJERCICIO 



              3.  LECTURA DE VARIABLES DESDE LA NUBE.

En esta segunda experiencia usaremos los elementos sensores y la interfaz para los actuadores, mostrados en la figura siguiente.








Usando la interconexión con BLYNK realizaremos 





IMAGENES -  BLINK




CODIGO DE PROGRAMACION  CAMBIADO LO QUE NOS PIDE HACER  COMPLETO DE TERCERA EXPERIENCIA 
//   LECTURA DE VARIABLES DESDE LA NUBE

#define BLYNK_PRINT Serial 
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>

char auth[] = "hGu6H2LmpxEFRCPn2Fbe3v2XpRnvcDVL";
char ssid[] = "moto g(6) play 2170";
char pass[] = "aldanaka";

#define EspSerial Serial1
#define ESP8266_BAUD 115200
ESP8266 wifi(&EspSerial);

BLYNK_WRITE(V1)
{
  int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable
  // You can also use:
  // String i = param.asStr();
  // double d = param.asDouble();
  Serial.print("V1 Slider value is: ");
  Serial.println(pinValue);
  digitalWrite(49,!pinValue);
}

BLYNK_WRITE(V2)
{
  int pinValue = param.asInt(); // 
  // You can also use:
  // String i = param.asStr();
  // double d = param.asDouble();
  Serial.print("V1 Slider value is: ");
  Serial.println(pinValue);
  digitalWrite(53,!pinValue);
}

void setup()
{
  Serial.begin(9600);
  EspSerial.begin(ESP8266_BAUD);
  delay(10);
  Blynk.begin(auth, wifi, ssid, pass);
  pinMode(53,OUTPUT);
  pinMode(49,OUTPUT);
}

void loop()
{
  Blynk.run();
}
                      VIDEO Y EVIDENCIAS DEL TERCER  EJERCICIO 



     4.  LECTURA DE TEMPERATURA DESDE SENSOR DHT11 Y VISUALIZACIÓN EN PANTALLA OLED

En esta experiencia usaremos el sensor de temperatura DHT11 y la pantalla

 OLED










EVIDENCIAS  DE EJERCICIO : Lectura de temperatura desde el sensor DHT11 y visualización  en pantalla OLED


CODIGO EN PROGRAMA ARDUINO


#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#include <DHT11.h>
#include <Wire.h>
#define pin 34

DHT11 dht11(pin);
float temp, humi;
#include <DHT11.h>

char auth[] = "lJKVPbbEJuZVGeqrjv8IhPmsw2vw6hoZ";
char ssid[] = "moto g(6) play 2170";
char pass[] = "aldanaka";

#define EspSerial Serial1
#define ESP8266_BAUD 115200
ESP8266 wifi(&EspSerial);

int temp2;
int humi2;
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#define SSD1306_LCDHETGHT 32
int variable=43;

#define VENTILADOR 48
#define LAMPARA1 49
#define LAMPARA2 53

BlynkTimer timer;

BLYNK_WRITE(V1)
{
  int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable
  // You can also use:
  // String i = param.asStr();
  // double d = param.asDouble();
  Serial.print("V1 Slider value is: ");
  Serial.println(pinValue);
  digitalWrite(49,!pinValue);
}

BLYNK_WRITE(V2)
{
  int pinValue = param.asInt(); // 
  // You can also use:
  // String i = param.asStr();
  // double d = param.asDouble();
  Serial.print("V1 Slider value is: ");
  Serial.println(pinValue);
  digitalWrite(53,!pinValue);
}
BLYNK_WRITE(V0)
{
  int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable
  // You can also use:
  // String i = param.asStr();
  // double d = param.asDouble();
  Serial.print("V2 Slider value is: ");
  Serial.println(pinValue);
  digitalWrite(48,!pinValue);
}

void sendSensor()
{
dht11.read(humi, temp);
  Blynk.virtualWrite(V5, humi);
  Blynk.virtualWrite(V6, temp);
}
void setup()
{
  
  Serial.begin(9600);
  // Set ESP8266 baud rate
  EspSerial.begin(ESP8266_BAUD);
  delay(10);
  Blynk.begin(auth, wifi, ssid, pass);
  timer.setInterval(1000L, sendSensor);

   display.begin (SSD1306_SWITCHCAPVCC , 0X3C);
  display.clearDisplay ();
  display. display ();
  display.setTextColor(WHITE);
  
  pinMode(53,OUTPUT);
  pinMode(49,OUTPUT);
  pinMode(48,OUTPUT);
}
void loop()
{
  Blynk.run();
  timer.run();

  dht11.read (humi,temp );
  temp2=temp;
  humi2=humi;
  Serial.print("temperatura :");
  Serial.print (temp2 );
  Serial.print ("  Humedad:");
  Serial.print (humi2);
  Serial.println ();
  delay (2000);

  display.clearDisplay ();
  display.setTextSize (1);
  display.setTextColor(WHITE);
  display.setCursor (0,0);
  display.print ( "Temperatura y Humeda");
  display.setTextSize (1);
  display.setCursor (0,21);
  display.print ( "Panduro y Carrizales");
  display.setTextSize(2);
  display.setTextColor (WHITE);
  display.setCursor (0,7);
  display.print (temp2);
  display .print ("C -");
  display.print (humi2);
  display .print (" %");
  display.display();
  delay(500);

  if( temp > 40.00 )

  {

    digitalWrite(VENTILADOR,LOW);
    digitalWrite(LAMPARA1,HIGH);
    digitalWrite(LAMPARA2,HIGH);
  }

   if( temp < 30.00 )

  {
    digitalWrite(VENTILADOR,HIGH);
    digitalWrite(LAMPARA1,LOW);
    digitalWrite(LAMPARA2,LOW);
  }    
}

 IMAGENES  BLINK 






                              VIDEO Y EVIDENCIAS DEL CUARTO  EJERCICIO



EXPERIMENTANDO CON LA APLICACIÓN BLYNK

 

Experimente con los diversos ejemplos que ofrece esta aplicación y verifique el funcionamiento de al menos 2 de ellos.

 



VIDEO DE PRESENTACION 














Observaciones

  •  El Arduino Mega se conecta con el cable USB y ala vez tiene un cable de alimentación de 12 V
  • La programación en Arduino debe ser de declarada con librerías y asu vez debe ser especificados los pines 


Conclusiones

  •  Logramos realizar un código de programación donde se usen los focos incandescentes y ventilador para el sensor de temperatura y juntamos con el blink De aplicacion con celular  
  •  Logramos mostrar las magnitudes medidas, además de mostrar textos fijos Todo ahora con ayuda del blink de app
  •  Agregamos interrupciones a las diferentes operaciones q se ejecutaban como la del sensor infrarrojo que muestre y envie  el gmail que diga que alguien esta  cuando lectura algo
  • Finalmente realizamos el video y mostramos todas las evidencias respectivas en el.blogg




 





Alumnos:

  • Carrizales Vera Jose Andree 
  • Añamuro Panduro Alexis

Grupo

:

 

Profesor: Edgar Mamani Paco 

Nota:







Comentarios

Entradas populares de este blog

LABORATORIO N° 02-04 “Medición y Control de variables”