OPERADORES A NIVEL DE BITS EN APLICACIONES WEB Y SU UTILIZACIÓN EN LA DOMÓTICA CON RASPBERRY PI - Using of Operators Bitwise in Web Applications of Home Automation with Raspberry Pi
The bitwise operators can contribute to compact the information exchanged in web applications and reduce processing costs the client and server for real-time systems, such as home automation applications for remote control of electrical equipment operations (on and off lamps, regulation of operating parameters of devices). These operators have historically been applied to problems of information compression, encryption, manipulation hardware, but direct use by developers of web applications is barely known although programming languages for web support it. In this paper an example of the use of the operators described bitwise in optimizing the operations of a web-based application languages PHP, JavaScript and Python programming for the control lamps on and off through in GPIO port of Raspberry Pi computer. The characteristics of its implementation in the languages used are analyzed, compared to the classical coding for this type of problem and elements are provided to conclude that its use can help increase the clarity and consistency of the algorithms used and lowers computational costs in exchange and data manipulation. The results of the study can be applied to other types of problems Web applications that require optimize system performance.
Los operadores a nivel de bits pueden contribuir a compactar la información intercambiada en las aplicaciones web y a disminuir los costos de procesamiento del cliente y el servidor para sistemas en tiempo real, como por ejemplo aplicaciones de domóticas para el control remoto de las operaciones de equipos eléctricos (encendido y apagado de lámparas, regulación de parámetros de funcionamiento de dispositivos, etc…). Estos operadores se han aplicado históricamente a problemas de compresión de la información, encriptación, manipulación de hardware, entre otros pero su utilización directa por los programadores de aplicaciones web es apenas conocida a pesar de que los lenguajes de programación para la web lo soportan.
En el trabajo, se describe un ejemplo de la utilización de los operadores a nivel de bits en la optimización de las operaciones de una aplicación web basada en los lenguajes de programación PHP, JavaScript y Python para el control del encendido y apagado de lámparas a través del puerto GPIO del computador Raspberry Pi. Se analizan las características de su implementación en los lenguajes utilizados, se compara con la codificación clásica para este tipo de problema y se brindan elementos que permiten concluir que su utilización puede contribuir al aumento de la claridad y uniformidad de los algoritmos utilizados y disminuye los costos computacionales del intercambio y manipulación de los datos. Los resultados del trabajo pueden ser aplicados a otros tipos de problemas de aplicaciones web que requieran optimizar el desempeño del sistema en operaciones específicas.
Similar a OPERADORES A NIVEL DE BITS EN APLICACIONES WEB Y SU UTILIZACIÓN EN LA DOMÓTICA CON RASPBERRY PI - Using of Operators Bitwise in Web Applications of Home Automation with Raspberry Pi
Sistema de identificación inalámbrica para automotoresDiego Eslava
Similar a OPERADORES A NIVEL DE BITS EN APLICACIONES WEB Y SU UTILIZACIÓN EN LA DOMÓTICA CON RASPBERRY PI - Using of Operators Bitwise in Web Applications of Home Automation with Raspberry Pi (20)
OPERADORES A NIVEL DE BITS EN APLICACIONES WEB Y SU UTILIZACIÓN EN LA DOMÓTICA CON RASPBERRY PI - Using of Operators Bitwise in Web Applications of Home Automation with Raspberry Pi
1. 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
2. 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
3. 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
4. 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.
5. 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)
6. 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.
8. GPIO (General Purpose Input/Output)
Configurados para ser de entrada o de salida.
Pueden activarse o desactivarse.
Leer valores de entrada y salida.
12. • 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
13. 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
14. Operadores a nivel de bits en los
Lenguajes de Programación
Lenguaje de Programación AND OR NOT XOR
Python & | ~ ^
JavaScript & | ~ ^
PHP & | ~ ^
15. 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.
16. 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
17. 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
18. 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
19. 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
20. 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.
21. 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