OPERADORES A NIVEL DE BITS EN APLICACIONES WEB Y SU UTILIZACIÓN EN LA DOMÓTICA CON RASPBERRY PI -...

Post on 12-Feb-2017

272 views 0 download

Transcript of OPERADORES A NIVEL DE BITS EN APLICACIONES WEB Y SU UTILIZACIÓN EN LA DOMÓTICA CON RASPBERRY PI -...

OPERADORES A NIVEL DE BITS EN

APLICACIONES WEB Y SU

UTILIZACIÓN EN LA DOMÓTICA CON

RASPBERRY PI

Bitwise operators in Web applications and its use for

home automation applications with Raspberry Pi

Autores:

MsC. Henry Raúl González Brito, MsC.Dainys Gainza Reyes

Universidad de las Ciencias Informáticas

email: henryraul@uci.cu

Domótica

Agrupan un conjunto de tecnologías en la creación de

sistemas para automatizar las operaciones de recintos

cerrados como oficinas, viviendas o un auto.

• Gestión energética

• Seguridad

• Accesibilidad

• Confort

• Gestión de diferentes parámetros de funcionamientos de manera

remota, tanto desde el interior como desde el exterior

Internet de las Cosas

• La interconexión a través de internet de dispositivos como

electrodomésticos, maquinarias, sensores.

• Producción de Datos y su aplicación inteligente por los

dispositivos.

• Interrelaciones:

• Dispositivo – Dispositivo

• Persona – Dispositivo

• Dispositivo - Persona

Internet de las Cosas

Nevera realizando compras a través de

internet, sugiriendo platos a preparar y

chateando con el dueño a través de LINE.

Autos que se controlan a través de

Internet e informan de sus parámetros de

funcionamiento.

Red de sensores en un bosque, avisando

por Twitter a los guardabosques si hay un

incendio.

Características importantes

• Hardware (Bajo Costo, Consumo de Energía

Discreto, Inteligente, Dimensiones reducidas)

• Datos (Producción continua de datos, Big Data, uso

de estos)

• Velocidad de respuesta (Percepción del usuario)

• Interfaz de Usuario(Simple y Directa)

Raspberry Pi

• Computador de bajo Costo Creado para estimular el

aprendizaje de la programación desde edades tempranas

en el Reino Unido.

• CPU 700 MHz, RAM 512 MB, no trae Almacenamiento

Interno ni Fuente de Alimentación.

• O.S Linux Raspbian(Debian), RISC OS 5, Arch Linux

ARM, Pidora, entre otros.

Puertos

USB

(MOUSE Y

TECLADO)

Salida VGA

(Monitor TV)

Puerto SD Card Almacenamiento (SD 8 GB)

Puerto de

Alimentación 5V

Micro USB

Puerto de

Red RJ-45

GPIO

GPIO (General Purpose Input/Output)

Configurados para ser de entrada o de salida.

Pueden activarse o desactivarse.

Leer valores de entrada y salida.

Capa de Presentación

Javascript/AJAX

Capa de Lógica de Negocio

PHP 5.4

RPi.GPIO

• Actúan sobre los bits individuales de la representación

binaria de un número entero sin signo.

• Operaciones soportadas directamente por el CPU por lo

que son operaciones muy rápidas.

Posición

Operadores a nivel de bits

Operaciones bit a bit

Operaciones de Desplazamiento

Operaciones de Rotación

7 6 5 4 3 2 1 0

0 0 0 1 0 0 0 0

Valor

Aplicaciones en la Domótica

• Compresión de datos.

• Incremento en la velocidad de las operaciones.

• Codificación más simple.

7 6 5 4 3 2 1 0

0 0 0 1 0 0 0 0

Encendido/Apagado Abierto/cerrado 0-31 ºC

Operadores a nivel de bits en los

Lenguajes de Programación

Lenguaje de Programación AND OR NOT XOR

Python & | ~ ^

JavaScript & | ~ ^

PHP & | ~ ^

Aplicación del operador AND

Comprobar el

estado de un bit.

7 6 5 4 3 2 1 0

0 0 0 1 0 0 0 0

Bit de Interés

0 0 0 0 0 1 0 0

0 0 0 0 0 1 0 0

0 0 0 0 0 0 0 0Apagado de bits.

Extracción de bit.

Aplicación del operador XOR

Invertir selectivamente

los bits de un número

entero

7 6 5 4 3 2 1 0

0 0 0 1 0 0 0 0

Bit de Interés

0 0 0 0 0 1 0 0

Ejemplo XOR

00000110 (6)

XOR 00000010 (2)

---------------------

00000100 (4)

Lámpara L en la Posición 1:

Máscara de la Lámpara L:

00000100

00000010 (2)

00000100 (4)

XOR 00000010 (2)

----------------------

00000110 (6)

A

B C

Cambio de estado con XOR

1.<input id="LAMP1" type=image src="ON.ico“ onclick="set_state(2)">

CAPA DE PRESENTACIÓN

CAPA DE LÓGICA DE NEGOCIO

3.$datumToWrite = $statusDatum ^ $datum;

2.xmlhttp.open ("GET","actualizador.php?st="+st);

Lámpara Máscara

L0 00000001

L1 00000010

L3 00000100

Actualización de estado con AND

5. stateNumberLEDTmp = stateDatum & 2;

if (stateNumberLEDTmp==0){

document.getElementById("LAMP1").src="OFF.ICO";

}else{

document.getElementById("LAMP1").src="ON.ICO";

}

4. GPIO.output(4, ((statusdatum&2)>0))

CAPA DE LÓGICA DE NEGOCIO

CAPA DE PRESENTACIÓN

Conclusiones

• Incremento en las aplicaciones de domótica y para la

Internet de las Cosas.

• La utilización de los operadores a nivel de bit en

aplicaciones Web de domótica puede contribuir a

disminuir código, simplificar las operaciones, disminuir el

volumen de datos y aumentar la velocidad de respuesta

en aplicaciones de domótica.

OPERADORES A NIVEL DE BITS EN

APLICACIONES WEB Y SU

UTILIZACIÓN EN LA DOMÓTICA CON

RASPBERRY PI

Bitwise operators in Web applications and its use for

home automation applications with Raspberry Pi

Autores:

MsC. Henry Raúl González Brito, MsC.Dainys Gainza Reyes

Universidad de las Ciencias Informáticas

email: henryraul@uci.cu