Está en la página 1de 38

SIHD

UT5. Domótica con Arduino y otros


sistemas básicos

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 1
otros sistemas básicos. (1 y 2)
UT5. Domótica con Arduino y otros
sistemas básicos
1. Introducción
2. Arduino
3. Raspberry Pi
4. Domótica con IoT

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 2
otros sistemas básicos. (1 y 2)
1. Introducción

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 3
otros sistemas básicos. (1 y 2)
Domótica con sistemas básicos
• Entendemos por sistemas básicos, los basados en
μControladores o μProcesadores, con código abierto y
en algunos casos hardware libre, muy económicos, y
normalmente asociados a la “cultura maker”.
• Son sistemas básicos con lógica programada (entre
otros):
– Con μControlador: Ejemplo Arduino
– Con μProcesador: Ejemplo Raspberry Pi
• También consideramos como básicos los sistemas
basados en IoT (Alexa, Google Home, Apple Home Hit,
…), aunque la evolución hacia ellos está haciéndolos
cada vez más complejos y dominantes en algunos
entornos (viviendas, …)
SIHD Q1 UT5. Domótica con Arduino y
2019-2020 4
otros sistemas básicos. (1 y 2)
Domótica con sistemas básicos.
Ejemplos

Arduino
Sistema μC

https://www.arduino.cc/

Raspberry
Sistema μP

https://www.raspberrypi.org/
SIHD Q1 UT5. Domótica con Arduino y
2019-2020 5
otros sistemas básicos. (1 y 2)
2. Arduino

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 6
otros sistemas básicos. (1 y 2)
Arduino
• Arduino es una plataforma abierta de hardware
libre, basada en una placa con un
microcontrolador (generalmente Atmel) que
permite conectar sensores y actuadores
mediante sus entradas y salidas.
• El μControlador se programa utilizando un
lenguaje propio de Arduino (basado en Wiring y
similar a C o C++) y un entorno de desarrollo
integrado (IDE) propio (basado en Processing)
que facilita la programación.
• La programación desde el IDE en un ordenador
hasta la placa Arduino se realiza a través de un
puerto USB
SIHD Q1 UT5. Domótica con Arduino y
2019-2020 7
otros sistemas básicos. (1 y 2)
Arduino

Bar di Re Arduino (Ivrea; Italia)

The Making of Arduino

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 8
otros sistemas básicos. (1 y 2)
Arduino

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 9
otros sistemas básicos. (1 y 2)
Arduino Uno

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 10
otros sistemas básicos. (1 y 2)
Arduino Uno

https://www.arduino.cc/en/Guide/ArduinoUno

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 11
otros sistemas básicos. (1 y 2)
Arduino. IDE
• Verificar programa • Subir o cargar • Abrir
programa en Arduino
• Salvar

• Sketch de programa

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 12
otros sistemas básicos. (1 y 2)
Arduino. Programación

• Declaración inicial de
variables
• void setup (): instrucciones de
inicialización del programa
(introducción de datos, etc.)
• void loop (): contiene las
instrucciones a ejecutar y que
se van a repetir en bucle

 Instrucciones entre {} y
separadas por ;
 // para comentarios

Ver: Manual de Programación Arduino y https://www.arduino.cc/reference/en/


SIHD Q1 UT5. Domótica con Arduino y
2019-2020 13
otros sistemas básicos. (1 y 2)
Arduino. Programación. Comentarios

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 14
otros sistemas básicos. (1 y 2)
Arduino. Programación. Variables

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 15
otros sistemas básicos. (1 y 2)
Arduino. Programación. Variables y
Constantes
• Tipos de variables:
– int
• Ej: int A = 5;
– long
– bool o boolean
• Ej: bool c = False (o True)
– char
• Ej: char texto = “hola Arduino”
• Constantes
– HIGH: 5 v
– LOW: 0 v
– INPUT
– OUTPUT
SIHD Q1 UT5. Domótica con Arduino y
2019-2020 16
otros sistemas básicos. (1 y 2)
Arduino. Programación. Asignación E/S

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 17
otros sistemas básicos. (1 y 2)
Arduino. Programación. Asignación E/S

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 18
otros sistemas básicos. (1 y 2)
Arduino. Programación. Asignación E/S

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 19
otros sistemas básicos. (1 y 2)
Arduino. Programación. Asignación E/S

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 20
otros sistemas básicos. (1 y 2)
Arduino. Programación. Asignación E/S

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 21
otros sistemas básicos. (1 y 2)
Arduino. Programación. Gestión del
tiempo

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 22
otros sistemas básicos. (1 y 2)
Arduino. Programación. Aritmética y
Lógica

• Aritmética y Lógica
– A+B; A-B; A*B; A/B;
– A>B; A<B; A¡=B (distinto); A≥B; A≤B; A++
(incremento); A-- (decremento);
– && (and); || (or); ! (not);

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 23
otros sistemas básicos. (1 y 2)
Arduino. Programación. Bucles

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 24
otros sistemas básicos. (1 y 2)
Arduino. Programación. Bucles

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 25
otros sistemas básicos. (1 y 2)
Arduino. Programación. Bucles

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 26
otros sistemas básicos. (1 y 2)
Arduino. Programación. Decisión

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 27
otros sistemas básicos. (1 y 2)
Arduino. Programación. Decisión

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 28
otros sistemas básicos. (1 y 2)
Arduino. Programación. Otras
Variables
• Ya conocemos la variable de número entero tipo int. En Arduino
Uno (y otras placas) las variable int almacenan un valor de 16 bits (2
Bytes). Esto produce un rango de -32.768 a 32.767 (valor mínimo de
-2 ^ 15 y un valor máximo de (2 ^ 15) - 1).
• Pero si trabajamos con enteros más largos, utilizaremos entonces el
tipo de variable long, que son variables largas o variables de
tamaño extendido para almacenamiento de número y almacenan
32 bits (4 bytes), desde -2.147.483.648 a 2.147.483.647.
– Ej: long var = 1234576;
• Y si trabajamos con números decimales, utilizaremos el tipo de
variable float (coma flotante), que son un número que tiene un
punto decimal. Los números de coma flotante a menudo se usan
para aproximar valores analógicos y continuos porque tienen mayor
resolución que los enteros. Los números de coma flotante van de -
3.4028235E+38 a +3.4028235E+38. Se almacenan como 32 bits (4
bytes) de información.
– Ej: float unaVariable = 3.1416;
SIHD Q1 UT5. Domótica con Arduino y
2019-2020 29
otros sistemas básicos. (1 y 2)
Arduino. Programación. Monitor serie

• Visualizamos variables de un programa a través del Monitor Serie


para leer o escribir valores de variables a través del puerto serie
entre el IDE y la placa Arduino. Para ello utilizamos las siguientes
instrucciones:
– Serial.begin (9600); activa la comunicación vía puerto serie a 9600 b/s; se
incluye en el void setup
– Serial.println (variable); escribe en el puerto serie el valor de la variable
– Serial.available (); Se “mira” si el puerto serie contiene información para
ser tratada
– Serial.read (); Lee lo que hay en el puerto serie
SIHD Q1 UT5. Domótica con Arduino y
2019-2020 30
otros sistemas básicos. (1 y 2)
Arduino. Programación. Funciones

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 31
otros sistemas básicos. (1 y 2)
Arduino. Programación. Funciones

SIHD Q1 UT5. Domótica con Arduino y Fuente: Manual de Programación Arduino


2019-2020 32
otros sistemas básicos. (1 y 2)
Arduino. Librerías
• El entorno Arduino puede extenderse mediante el uso de librerías,
al igual que la mayoría de las plataformas de programación. Las
librerías proporcionan funcionalidad adicional a un programa, por
ejemplo, trabajar con hardware o manipular datos.
• Las librerías son una colección de código de programación que
facilitan la conexión a un sensor, pantalla, módulo, etc. Por ejemplo,
la librería de LiquidCrystal facilita hablar con las pantallas LCD.
• Varias librerías vienen instaladas con el IDE (como la de
LiquidCrystal), pero también se puede descargar o crearse. Hay
cientos de librerías adicionales disponibles en Internet para
descargar. Las librerías integradas en el IDE y algunas adicionales se
enumeran en: https://www.arduino.cc/en/Reference/Libraries. Para
usar las bibliotecas adicionales, necesitarás instalarlas.

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 33
otros sistemas básicos. (1 y 2)
Arduino. Librerías

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 34
otros sistemas básicos. (1 y 2)
Arduino. Sensores y Actuadores
• Múltiples dispositivos, digitales o analógicos, conectables a las entradas/salidas o
al interfaz serie de Arduino. Pueden requerir de una Librería para su
funcionamiento
• También pueden requerir mayor potencia que la que da la placa Arduino, por lo
que se puede poner un transistor (https://www.luisllamas.es/salidas-mayor-
potencia-arduino-transistor-bjt/) o alimentarlos externamente

https://aprendiendoarduino.wordpress.com/2016/12/18/sensores-y-actuadores/
SIHD Q1 UT5. Domótica con Arduino y
2019-2020 35
otros sistemas básicos. (1 y 2)
Arduino. Comunicaciones
• A Arduino también podemos conectar múltiples dispositivos que
permiten diversos tipos de comunicaciones

Ethernet Shield Módulo FM Módulo WiFi Emisor Receptor


estéreo 433 MHz

SIHD Q1 UT5. Domótica con Arduino y


2019-2020 36
otros sistemas básicos. (1 y 2)
Arduino. Shields
• Las Shields Arduino son placas que se pueden montar sobre la placa
de Arduino y ampliar sus capacidades. Las diferentes Shields siguen
la misma filosofía que el kit de herramientas original: son fáciles de
montar y baratos de producir. Las hay para Sensores, Actuadores,
Comunicaciones, …

https://www.arduino.cc/en/Main/ArduinoShields
SIHD Q1 UT5. Domótica con Arduino y
2019-2020 37
otros sistemas básicos. (1 y 2)
Arduino. Evolución ¿?
• ¿Hacia FPGA?
– FPGA: “Field-Programmable Gate Array” dispositivo
formado por bloques funcionales unidos a través de un
array de conexiones programables

Arduino MKR Vidor 4000

https://youtu.be/wqIK58cYI_8
¿Qué es una FPGA? Motivos de su auge en la comunidad Maker
https://youtu.be/v9lIn2mYdlo
SIHD Q1 UT5. Domótica con Arduino y
2019-2020 38
otros sistemas básicos. (1 y 2)

También podría gustarte