Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Semana 3
Razón social
00.00.2015
1
Proyecto: Estación Metereológica en Ubidots
• En este proyecto veremos como mostrar los datos de una estación metereológica en una página
Web configurada con UbiDots.
• La implementación del proyecto se muestra a continuación
#include "Wire.h"
uint8_t analogPin = 34;
#include <LiquidCrystal_I2C.h>
Ubidots ubidots(UBIDOTS_TOKEN);
LiquidCrystal_I2C lcd(0x27,16,2);
int estadosalida;
byte humicon[] = {
void callback(char *topic, byte *payload, unsigned int length)
B00100,
{
B00100,
Serial.print("Message arrived [");
B01110,
Serial.print(topic);
B01110,
Serial.print("] ");
B11111,
for (int i = 0; i < length; i++)
B11111,
{
B11111,
Serial.print((char)payload[i]);
B01110
if ((char)payload[0] == '1')
};
{
byte luzicon[] = {
digitalWrite(LED, HIGH);
B00000,
estadosalida = 1;
B00000,
}
B10000,
else
B00100,
{
B10000,
digitalWrite(LED, LOW);
B11010,
estadosalida=0;
B11100,
}
B11101
};
}
#include "UbidotsEsp32Mqtt.h"
Serial.println();
#include "DHT.h"
}
#define DHTPIN 5
void setup()
#define DHTTYPE DHT11 // DHT 11
{
DHT dht(DHTPIN, DHTTYPE);
pinMode(LED,OUTPUT);
#define LUZ 36
pinMode(LUZ,INPUT);
#define LED 4
lcd.init();
const char *UBIDOTS_TOKEN = “xxxxx";
lcd.clear();
const char *WIFI_SSID = "PL_FAMILY";
lcd.backlight();
const char *WIFI_PASS = "16112002";
lcd.createChar(0, humicon);
const char *DEVICE_LABEL = “Estacion";
lcd.createChar(1, luzicon);
const char *VARIABLE_LABEL_1 = "temperatura";
Serial.begin(115200);
const char *VARIABLE_LABEL_2 = "humedad";
Serial.println("Medición inciada");
const char *VARIABLE_LABEL_3 = "luz";
Serial.println("DHT11 Encendido");
const char *VARIABLE_LABEL_4 = "salida";
dht.begin();
const int PUBLISH_FREQUENCY = 5000;
delay(1000); 2
unsigned long timer;
ubidots.connectToWifi(WIFI_SSID, WIFI_PASS);
ubidots.setCallback(callback);
Proyecto: Estación Metereológica en Ubidots
• En este proyecto veremos como mostrar los datos de una estación metereológica en una página
Web configurada con UbiDots.
• La implementación del proyecto se muestra a continuación
ubidots.setup();
ubidots.reconnect();
ubidots.subscribeLastValue(DEVICE_LABEL, VARIABLE_LABEL_4);
timer = millis();
}
void loop()
{
if (!ubidots.connected())
{
ubidots.reconnect();
ubidots.subscribeLastValue(DEVICE_LABEL, VARIABLE_LABEL_4);
}
if (fabs(millis() - timer) > PUBLISH_FREQUENCY)
{
int luz = analogRead(LUZ);
float h = dht.readHumidity();
float t = dht.readTemperature();
ubidots.add(VARIABLE_LABEL_1, t);
ubidots.add(VARIABLE_LABEL_2, h);
ubidots.add(VARIABLE_LABEL_3, luz);
ubidots.publish(DEVICE_LABEL);
lcd.setCursor(0,0);
lcd.write(byte(0));
lcd.print(h);
lcd.print("%");
lcd.print(" T:");
lcd.print(t);
lcd.print("C");
lcd.print(" ");
lcd.setCursor(0,1);
lcd.write(byte(1)); Serial.println("Enviando los datos a Ubidots: ");
lcd.print(luz); Serial.println("Temperatura: " + String(t));
lcd.print(" LED:"); Serial.println("Humedad: " + String(h));
if(estadosalida){ Serial.println("Luz: " + String(luz));
lcd.print(" ON "); Serial.println("-----------------------------------------");
} timer = millis();
else{ }
lcd.print(" OFF"); delay(10000);
} ubidots.loop();
}
3
Logro de la sesión
4
Hardware IoT
5
IoT Boards (Tarjetas IoT)
❑ Tarjetas de microcontrolador
(Microcontroller boards) y
computadora de una sola placa
(Single computer boards - ScB)
6
Tarjetas de Microcontrolador
❑ Es un sistema en un chip (System
on a Chip - SoC) que contiene
núcleos de procesamiento, RAM y
EPROM para el almacenamiento
de programas personalizados que
se ejecutan en el microcontrolador.
Es una Tarjeta de circuito impresa
(PCB) con circuitería adicional
❑ Una de las más famosas
tarjetas de microcontrolador
es el : arduino
7
Single board Computers (SbC)
❑ Es una computadora completa en
una sola placa de circuito, que
incluye microprocesador(es),
memoria, entrada/salida (E/S) y
otras características requeridas por
una computadora funcional.
❑ Las computadoras SBC
generalmente brindan una
solución informática de bajo
consumo y sin ventilador con una
arquitectura de bajo perfil.
❑ El más famoso: Raspberry Pi
8
ESP32 orientado a IoT
https://www.youtube.com/watch?v=iEl5_T5ZXFE
9
Sensores y actuadores
• Sensores:
– Son principalmente
componentes de
entrada.
– Sienten y recopilan
información
circundante.
• Actuadores:
– Son principalmente
componentes de
salida.
– Alteran el entorno www.dfrobot.com
Sensores
https://youtu.be/7CPvOrz3PW4?t=14
Sensores
https://youtu.be/1YbCjY-dBh8?t=11
Sensores
● Exactitud
● Costo
● Rango de medición
● Repetibilidad
● Resolución
● Restricciones ambientales
https://www.dfrobot.com/product-2508.html
Sensores
https://youtu.be/DlG6LY84MUU?t=111
Generación de sensores.
● Son dispositivos
de salida de
señal.
● Relays, motores
eléctricos,
solenoides, …
Sensores y actuadores
• Sensores:
– Son principalmente
componentes de
entrada.
– Sienten y recopilan
información
circundante.
• Actuadores:
– Son principalmente
componentes de
salida.
– Alteran el entorno
www.seeedstudio.com
Sensores y actuadores
• Sensores:
– Son principalmente
componentes de
entrada.
– Sienten y recopilan
información
circundante.
• Actuadores:
– Son principalmente
componentes de
salida.
– Alteran el entorno
www.seeedstudio.com
Sensores y actuadores en Internet de las cosas
E-Health
Plataforma e-Health
http://postscapes.com/internet-of-things-examples/
Plataformas en la nube
Plataformas en la nube
Plataformas en la nube
Plataformas en la nube
Plataformas en la nube
https://www.youtube.com/watch?v=uLJqNfX81C4&ab_channel=AhmadLogs
Trabajo en equipo
https://www.youtube.com/watch?v=EWqJTJQW1GQ&ab_channel=KleberEletr%C3%B4nicaeMaker
Tarea:
● Revisar los ejemplos de aplicación de sensores en Internet de las
cosas de este sitio web http://postscapes.com/internet-of-things-
examples/. Luego, elegir uno de ellos, describirlo y explicarlo en forma
oral en el aula o en el Foro.
https://www.youtube.com/watch?v=SDsBWNVRFV4&ab_channel=TvAgro
Trabajo en equipo
● https://www.youtube.com/watch?v=1U2FbPwPcvk
● https://www.youtube.com/watch?v=6dp2xYcE3Js
● https://www.youtube.com/watch?v=Wh12gHFozas
Packet Tracer: Simulación de dispositivos de IoT
Packet Tracer: Simulación de dispositivos de IoT
Introducción a los Microcontroladores
Hay diferentes tipos/familias/implementaciones de microcontroladores. Una de
01 las compañías mas importantes es Microchip, fabricante de la famosa familia
de microcontroladores PIC
36
Introducción a los Microcontroladores
37
Microcontroladores
● En un solo chip se
incluye una CPU
con un conjunto
mínimo de
instrucciones, poca
memoria RAM y
ROM, y pocos
puertos de entrada y
salida.
● Es un computador
en pequeño.
Diagrama de bloques de un microcontrolador genérico
Oscilador
Control de E/S
Temporizadores E/S paralela E/S serie
interrupciones analógicas
Perro RAM
ROM
guardián
https://www.youtube.com/watch?v=OoCnellmsEE&ab_channel=CBprogramming
MICROPROCESADOR VS MICROCONTROLADOR
Microprocesador (uP) Microcontrolador (uC)
Es un CPU integrado en un único CHIP Es una computadora integrada en un único chip
Necesita de otros componentes “externos” (RAM, Posee su propia RAM y múltiples dispositivos de
Sistema de E/S). Se usa en aplicaciones de E/S. Se usa en aplicaciones de propósito
propósito general, no predefinidas. específico, previamente definidas.
Optimizado para grandes volúmenes de datos y Optimizado para interacción con el mundo físico
grandes velocidades (GHz, GB) . Alto precio y en tiempo real. Velocidades en el orden de los
alto consumo MHz y Memoria en el orden de los KB hasta
pocos MB.
Sistemas Informáticos: Workstations, Servers, Sistemas embebidos: Automóviles,
Computadoras personales, laptops, tablets, electrodomésticos, juguetes, cámaras,
smart-phones impresoras, scanners, fotocopiadoras,
ascensores, maquinaria industrial, telefonía,
instrumentos, alarmas, etc.
Suelen utilizar la arquitectura Von Neumann Suelen utilizar la arquitectura hardvard
41
Arquitectura de los Microcontroladores
42
Computer Architecture
Von Neumann Harvard
Velocidad Menor velocidad Mayor Velocidad de
pero mayor operación por el
flexibilidad y acceso paralelo a las
menos instrucciones y datos.
complejidad Mayor complejidad de
las instrucciones.
Usos En las Se utilizan en las
Computadoras supercomputadoras,
personales en los
microcontrolado- res y
sistemas embebidos
Costos Menos costosa de Mas costosa de
implementar para implementar para
lograr altas altas velocidades por
velocidades la cantidad de buses
(lineas) requeridos
para acceder a las
43
memorias
Instruction Set Architecture
01 Otra forma de diferenciar los microcontroladores es a través de su conjunto de
instrucciones
Un conjunto de instrucciones es una colección de instrucciones de bajo nivel
02
llamados OPCODES (lenguaje máquina)
Dos de los más comunes tipos de conjuntos de instrucciones son: CISC y
06
RISC CISC vs RISC
Enfoque RISC
Enfoque CISC
LOAD A, 1:3
LOAD B, 4:2
MUL 1:3, 4:2
PROD A, B
Un microprocesador con 0.5 MIPS STORE 1:3, A
a 4MHz
Un microprocesador con 1 MIPS a
¿Cuál es el tiempo de ejecución?
1MHz
¿Cuál es el tiempo de ejecución?
44
Microarchitecture
Esta arquitectura varía por cada tipo de microcontrolador. Con esta información
06 se puede escoger el apropiado microcontrolador para implementar nuestro
proyecto. 45
Introducción a la Arquitectura del Microcontrolador
AVR de Arduino Atmega328P
Microcontroller ATmega328P
Operating Voltage 5V
32 KB (ATmega328P) of which
Flash Memory
0.5 KB used by bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
Clock Speed 16 MHz
LED_BUILTIN 13
Length 68.6 mm
Width 53.4 mm
46
Weight 25 g
Computer Architecture
01 De acuerdo a la hoja de
especificaciones del dispositivo:
✓ “Con el fin de maximizar el rendimiento y el paralelismo, el AVR utiliza una arquitectura Harvard - con
memorias y buses separados para los programas y los datos. Las instrucciones en la memoria del programa se
ejecutan con un solo nivel de “pipelining”. Mientras se ejecuta una instrucción, la siguiente instrucción se
extrae previamente de la memoria de programa. Este concepto permite ejecutar instrucciones en cada ciclo de
reloj. La memoria del programa es una Memoria Flash Reprogramable en el Sistema”
47
Instruction Set Architecture
De acuerdo a la hoja de especificaciones del dispositivo:
01
✓ “El ATmega328/P picoPower® de Atmel® es un microcontrolador CMOS de 8 bits de baja potencia basado
en la arquitectura mejorada de RISC AVR®.”
✓ “Mediante la ejecución de potentes instrucciones en un solo ciclo de reloj, el ATmega328/P logra un
rendimiento cercano de 1MIPS (Millones de instrucciones por segundo) por MHz. Esto permite al
diseñador del sistema optimizar el dispositivo para el consumo de energía frente a la velocidad de
procesamiento.”
48
Microarchitecture
49
Microarchitecture
CPU y Memoria
Arquitectura Harvard, Flash y SRAM c/u con sus buses.
EEPROM en el mismo bus que los periféricos
Periféricos
Timers
Conversor A/D
Interfaces de
comunicación
E/S Digitales
50
Microarchitecture
51
Arduino partes principales
resetting
fuse
5v
Reg
Dual
opamp ATMeg16U2
3.3
Reg
ATMega328P
52
Arduino Diagrama Pinout
53
Arduino Schematics
54
Arduino Schematics
USB/external
power switch
D13 Led Driver External Power input and 5V regulator
Decoupling
capacitor
3.3v regulator
ATMega328P
USB Interface
55
¿Preguntas?
56
FIN
57