Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
UNIVERSIDAD CATÓLICA ANDRÉS BELLO
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA INFORMÁTICA
Sistema de actualización de precios mediante pantallas
LCD inteligentes
TRABAJO ESPECIAL DE GRADO
Presentado ante la
UNIVERSIDAD CATÓLICA ANDRÉS BELLO
como parte de los requisitos para optar al título de
INGENIERO EN INFORMÁTICA
REALIZADO POR: Br. Alfonso Javier González Varela
C.I. V-25744711
PROFESOR GUÍA: Ing. Oriana Marisela Renaud Pascual
FECHA: Diciembre, 2020
ii
AGRADECIMIENTOS
A mis padres, Javier González y Gloria Varela que me brindaron su apoyo y cariño
durante toda mi vida para llegar a donde estoy.
A mi querida María Clara Praderio quien me apoyó y motivó durante mi carrera, y por
ser mi mejor amiga.
A todos mis amigos y compañeros de Smash@UCAB, por todos esos ratos de ocio y
buenas amistades, en especial a: Aldair León, Alfredo Pérez, Carlos Bermúdez, Daniel
Manzella, Eduardo González. Eloy Ávila, Gabriel Pérez, Ignacio Falótico, José Carlos
Moreno, José Eleazar Moreno, Marco La Fata, Oliver Gallanti y Rubén Torres.
A mi Tutora Académica, Oriana Renaud que más que una tutora y genial profesora es
una gran persona.
A mis compañeros de estudio, Ricardo Carrasquero, Carlos Parra y José Mendoza,
junto a quienes aprendí mucho y disfruté bastante de mi vida universitaria.
A todos mis profesores quienes sacrifican su tiempo y esfuerzo, en especial a María
Cora Urdaneta, Aldemaro Madrid y a María Eugenia Parodi.
iii
ÍNDICE GENERAL
AGRADECIMIENTOS .......................................................................................................... ii
ÍNDICE GENERAL .............................................................................................................. iii
ÍNDICE DE FIGURAS ......................................................................................................... vi
ÍNDICE DE DIAGRAMAS ................................................................................................. vii
ÍNDICE DE TABLAS ......................................................................................................... viii
RESUMEN ............................................................................................................................ ix
INTRODUCCIÓN .................................................................................................................. 1
CAPÍTULO I .......................................................................................................................... 2
Planteamiento del problema ................................................................................................ 2
Objetivos de la Investigación .............................................................................................. 4
Objetivo general. .............................................................................................................. 4
Objetivos específicos. ...................................................................................................... 4
Alcance ................................................................................................................................ 5
Limitaciones ........................................................................................................................ 6
Justificación ......................................................................................................................... 7
CAPÍTULO II ......................................................................................................................... 8
Antecedentes de la investigación ........................................................................................ 8
Definición de términos y equipos........................................................................................ 9
Inventario ......................................................................................................................... 9
Microcontrolador ............................................................................................................. 9
Pantallas ......................................................................................................................... 11
Producto ......................................................................................................................... 12
Sistemas ......................................................................................................................... 12
Sistema manejador de base de datos (SMBD) ............................................................... 12
Bases teóricas .................................................................................................................... 15
Caracterización de un producto ..................................................................................... 15
Códigos de barra ............................................................................................................ 15
Control de pantallas LCDs con microcontroladores ...................................................... 17
Sistema de control de inventario .................................................................................... 20
Legislación venezolana para la presentación de precios................................................ 20
iv
CAPÍTULO III ..................................................................................................................... 22
Tipo de investigación ........................................................................................................ 22
Diseño de la investigación................................................................................................. 22
Metodología de desarrollo ................................................................................................. 22
Procedimiento utilizado..................................................................................................... 23
CAPÍTULO IV ..................................................................................................................... 25
Situación Actual ................................................................................................................ 25
Definición de requerimientos del sistema ......................................................................... 26
Requerimientos funcionales ........................................................................................... 26
Requerimientos no funcionales ...................................................................................... 27
Equipos a utilizar ............................................................................................................... 27
Tipo de Pantalla LCD .................................................................................................... 27
Arduino .......................................................................................................................... 28
Manejador de base de datos ........................................................................................... 29
Diseño del sistema ............................................................................................................. 30
Diseño general ............................................................................................................... 30
Diseño de componentes ................................................................................................. 33
Construcción del sistema ................................................................................................... 44
Arquitectura del sistema ................................................................................................ 44
Construcción del prototipo ................................................................................................ 51
Plataformas de desarrollo ............................................................................................... 51
Interfaz web ................................................................................................................... 51
Construcción del circuito ............................................................................................... 54
Programa del Arduino .................................................................................................... 59
Diagrama propuesto de funcionamiento ........................................................................ 62
CONCLUSIONES ................................................................................................................ 64
RECOMENDACIONES ...................................................................................................... 66
REFERENCIAS ................................................................................................................... 67
ANEXOS .............................................................................................................................. 69
Tablas de microcontroladores ........................................................................................... 69
Plan de Pruebas ................................................................................................................. 70
v
Pruebas de funcionalidad ............................................................................................... 70
Pruebas de Usabilidad .................................................................................................... 71
vi
ÍNDICE DE FIGURAS
Figura 1. Pantalla LCD de Diigiit Robotics ......................................................................... 12
Figura 2. Código de barras con formato UPC-A .................................................................. 17
Figura 3. Código de barras con formato EAN-13 ................................................................ 17
Figura 4. Modulo I2C para pantallas LCD............................................................................ 19
Figura 5. Productos con precios identificados con adhesivos y tinta. .................................. 25
Figura 6. Precios de LCD 16x2 y 20x4 caracteres. .............................................................. 28
Figura 7. Dip-switch de 8 posiciones ................................................................................... 41
Figura 8. Precios de equipos para imprenta de etiquetacion térmica y tasa de cambio ....... 48
Figura 9. Precios de equipos de un bloque ........................................................................... 49
Figura 10. Pantalla principal del panel de control ................................................................ 52
Figura 11. Adición de una pantalla....................................................................................... 52
Figura 12. Productos asignados a una pantalla ..................................................................... 53
Figura 13. Agregar un producto nuevo a la pantalla seleccionada. ...................................... 53
Figura 14. Productos sin asignar a una pantalla ................................................................... 54
Figura 15. Circuito del Prototipo .......................................................................................... 56
Figura 16. Puerto Ethernet del Escudo Ethernet .................................................................. 57
Figura 17. Repetidor Wifi con puerto Ethernet .................................................................... 57
Figura 18. Maqueta de anaquel con productos ..................................................................... 58
Figura 19. Orificios para cableado al exterior ...................................................................... 58
Figura 20. Setup de Arduino ................................................................................................. 59
Figura 21. Impresión de un producto de nombre corto ........................................................ 60
Figura 22. Impresión de un producto de nombre largo ........................................................ 61
Figura 23. Ejemplos de algunos aspectos a probar al implantar el sistema ......................... 63
vii
ÍNDICE DE DIAGRAMAS
Diagrama 1. Diagrama de componentes ............................................................................... 30
Diagrama 2. Diagrama de despliegue ................................................................................... 31
Diagrama 3. Diagrama de comunicaciones .......................................................................... 31
Diagrama 4. Diagrama de tiempos ....................................................................................... 32
Diagrama 5. Diagrama de casos de uso para la interfaz web ............................................... 34
Diagrama 6. Diagrama de Flujo del Arduino Maestro ......................................................... 35
Diagrama 7. Diagrama de Flujo del Arduino Esclavo ......................................................... 36
Diagrama 8. Esquema de Circuito Arduino a LCD .............................................................. 37
Diagrama 9. Esquema de Circuito Arduino a LCD con I2C ................................................. 38
Diagrama 10. Esquema de Circuito Arduino a Arduino en anillo. ...................................... 40
Diagrama 11. Esquema de Circuito Arduino dip-switch R-2R ............................................ 42
Diagrama 12. Diseño de la Base de Datos del sistema ......................................................... 43
Diagrama 13. Arquitectura propuesta ................................................................................... 44
Diagrama 14. Arquitectura propuesta con pantallas I2C. ..................................................... 45
Diagrama 15. Flujo de interacción del cliente con el sistema .............................................. 62
viii
ÍNDICE DE TABLAS
Tabla 1. Comparación entre placas Arduino ........................................................................ 11
Tabla 2. Comparación entre los manejadores de base de datos ........................................... 14
Tabla 3. Ejemplos de caracterización de un producto .......................................................... 15
Tabla 4. Pines de una LCD compatible con el HD44780..................................................... 18
Tabla 5. Correlación de ENABLE con el número de pantalla. ............................................ 38
Tabla 6. Direcciones posibles de un LCD I2C ...................................................................... 39
Tabla 7. Costo por Equipos del Sistema ............................................................................... 49
Tabla 8. Componentes utilizados en la construcción del circuito ........................................ 55
Tabla 9. Especificaciones del Arduino Uno ......................................................................... 69
ix
UNIVERSIDAD CATÓLICA ANDRÉS BELLO
FACULTAD DE INGENIERIA
SISTEMA DE ACTUALIZACIÓN DE PRECIOS MEDIANTE PANTALLAS LCD
INTELIGENTES
Autor: Alfonso J. González V.
Tutor: Ing. Oriana Renaud
Fecha: Diciembre, 2020
RESUMEN
El presente trabajo especial de grado tuvo como propósito el diseño de un sistema de
actualización de precios haciendo uso de pantallas digitales controladas por un
microcontrolador, de manera que desde un panel de control un usuario pueda asignar
productos a las pantallas y dichas pantallas muestren la información requerida para el
público cíclicamente. Con el desarrollo de este sistema, se busca dar un apoyo a los
empresarios venezolanos que, en medio de una crisis económica, buscan emprender y
prestar un servicio a los ciudadanos. Se idea que este sistema no tenga uso únicamente en
situaciones económicas hiperinflacionarias, sino que también sirva como un impulso a la
automatización de procesos cotidianos e innovación en estas áreas.
El sistema cuenta con tres módulos: El panel de control donde se gestionan y asignan
productos a las pantallas, la petición a la base de datos y la gestión de pantalla. Como se
quiere que el prototipo no sea descartado y sea mejorado, la metodología utilizada fue la de
una investigación tipo proyectiva y la metodología de desarrollo fue la de un prototipo.
Al finalizar el desarrollo, se obtuvo un prototipo funcional el cual es capaz de mostrar
un listado de productos con la información que lo caracteriza y su precio, lista que fue
previamente asignada en el panel de control web.
Palabras Clave: Arduino, Circuito, Hiperinflación, Microcontroladores, Pantallas LCD,
Sistemas de Actualización de Precios, Sustentabilidad.
1
INTRODUCCIÓN
En la modernidad, gracias a las tecnologías de la información y el ingenio, ha sido
demostrada la capacidad de la humanidad en automatizar tareas, desde las más simples a las
más complejas y la búsqueda de la eficiencia en el uso del tiempo es algo que permanece
siempre en la mente de las personas. En dicha búsqueda, se ha visto un aumento en el
interés por automatizar la experiencia en los comercios, específicamente, en la presentación
de precios ante la clientela. En el caso particular de Venezuela, debido a la situación
económica que afecta a sus ciudadanos día a día, es necesario actualizar los precios
constantemente, ya sea imprimiendo nuevas etiquetas para colocar, imprimiendo una hoja
con un listado de precios que se ubica luego en algún lugar arbitrario del local o
simplemente recurriendo a preguntar al personal el precio del producto deseado.
En esta tarea repetitiva se observó una oportunidad de mejora tanto en la experiencia de
trabajo de los empleados como en la de la clientela y en la sustentabilidad de la materia
prima, por lo que se decide resolver esta situación a través de una pantalla “inteligente”
que, conectada a una red, permita la actualización de precios en cualquier momento.
Con el fin de desarrollar el proyecto, se realizó un estudio de campo para conocer el uso
de bases de datos en un comercio, se investigaron las técnicas y herramientas del manejo de
microcontroladores y el control de pantallas utilizando éstos últimos, se redactaron los
requisitos para cumplir con los objetivos planteados, se diseñó el circuito y el sistema, y
finalmente se construyó un prototipo con el fin de demostrar el funcionamiento de este
sistema.
El presente trabajo se encuentra estructurado en las siguientes secciones:
Capítulo I, se plantea el problema, los objetivos tanto general como específicos, el
alcance, limitaciones y la justificación de la investigación realizada.
Capítulo II, se definen los antecedentes, términos básicos y equipos y las bases teóricas
que se utilizarán en el proyecto.
Capítulo III, se explica la metodología a utilizar y el proceso de desarrollo del trabajo.
Capitulo IV, se presenta el análisis de resultados, el diseño y la construcción del
sistema.
Finalmente, se exponen las conclusiones y recomendaciones de la investigación, junto a
anexos de información que se considera relevante del trabajo.
2
CAPÍTULO I
EL PROBLEMA
Planteamiento del problema
Los países que presentan problemas hiperinflacionarios constantemente luchan para
mantenerse al día con los precios de los productos y servicios, lo que lleva a la
especulación y desinformación del consumidor. La hiperinflación en un país puede suceder
principalmente por dos razones: un incremento en la cantidad de moneda que maneja la
población, usualmente por la imprenta de esta misma por parte de un gobierno, y la otra
razón es que un aumento en la demanda de un producto o servicio ocurra drástica y
repentinamente, aumentando los precios de estos.
En Venezuela también se presenta una situación económica hiperinflacionaria
cambiante que incrementa día tras día, siendo afectada por ambas causas ya mencionadas,
lo que lleva a la obstaculización del consumo de bienes y servicios, muchas veces de forma
que los consumidores no están al tanto del valor de dichos bienes a la hora de obtenerlos,
entorpeciendo el proceso de un comercio al momento de si el cliente puede o no costearse
su compra. De particular interés es el índice de inflación récord que ha presentado el país
desde 2014 con un índice anual del 69%, que fue superado año tras año hasta 2018 donde
se alcanzó la cifra de 1.000.000% anual1. En los últimos meses el índice anual-mensual se
ha mantenido entre el 3000% y 4000%, estableciendo que la economía venezolana
permanecerá en un estado hiperinflación en los próximos años.
Para las empresas, imprimir y actualizar frecuentemente las etiquetas de los precios
resulta en un gasto que a la larga es un desperdicio de dinero y además de ser tedioso para
los empleados día tras día, genera impacto sobre el medio ambiente al utilizar la imprenta
constantemente y entorpece la experiencia de la clientela a la hora de tomar sus decisiones.
Este es un área que ya trabaja con la tecnología y equipos simples, por ejemplo, haciendo
uso de una impresora para imprimir en una hoja de papel un listado de precios o utilizando
máquinas especiales para la etiquetación de productos ya sea estándar o personalizada,
1 Venezuela cerró 2018 con una inflación de casi 1.700.00%. (2019) El Nacional. Recuperado en:
https://www.elnacional.com/economia/venezuela-cerro-2018-con-una-inflacion-casi-1700000_265792/
3
donde es utilizada materia prima cuya producción puede ser disminuida al verse
reemplazada.
Por todo lo mencionado anteriormente, se observa una oportunidad de mejora en la
calidad de los comercios, utilizando las tecnologías de la información, apoyándose de la
electrónica, donde se agilice y modernice el proceso de presentación de precios para el
beneficio particular de países con una economía hiperinflacionaria logrando una mejor
experiencia para la clientela.
4
Objetivos de la Investigación
Objetivo general.
− Desarrollar un sistema inteligente para comercios donde se actualizarán en cualquier
momento los precios de los artículos en venta para ser mostrados en pantallas LCD
conectadas a una red
Objetivos específicos.
1. Analizar la estructura de datos de un comercio para utilizar como base.
2. Estudiar las técnicas y herramientas utilizadas para el manejo de una pantalla LCD.
3. Estudiar la documentación de los microchips Arduino.
4. Diseñar un sistema inteligente para la visualización de precios utilizando las
tecnologías de la información.
5. Construir el sistema de visualización de precios para un caso base.
5
Alcance
El desarrollo del sistema de visualización de precios será contemplado para un
comercio ficticio venezolano, el cual contará con una base de datos y estructura de datos
que el investigador utilizará para efectos demostrativos. Las características de dicho
comercio serán determinadas por observación y pruebas para efectos de estimación de
costos, análisis y diseño de la arquitectura de una solución la cual será escalable a otros
tamaños de comercio, ya sean mayores o menores.
El desarrollo se verá orientado a la demostración del sistema con un prototipo de la
solución conformado por una interfaz de comunicación entre la base de datos del comercio,
una pantalla LCD, la placa de desarrollo y el hardware y software necesarios para mantener
la asociación de pantallas y productos desde la carga inicial hasta el mantenimiento y
actualización de los precios de estos productos.
Se contemplarán las etapas de análisis, diseño y construcción del software.
6
Limitaciones
− Las pruebas iniciales del desarrollo serán realizadas en simuladores para evitar retrasos
derivados de la indisponibilidad mientras son obtenidos los equipos y/o daño de los
mismos.
7
Justificación
Con la demostración del funcionamiento de este sistema, se pretende prestar una ayuda
al comercio venezolano aplicando las tecnologías de la información (TI) en un área que no
las ha adaptado completamente, disminuyendo gastos a largo plazo y mejorando la
experiencia de su clientela. Esto es debido a que, en los últimos 20 años, la economía
venezolana ha presentado índices de inflación que promedian un 24% durante la década de
1998 a 20082, alcanzando un punto crítico en 2018 donde alcanzó un índice de 1.000.000%.
Con el proyecto se busca también mitigar el daño y consecuencias que puede tener sobre
los comercios del país en el futuro cercano. Además de esta característica, se debe
considerar que una de las principales tácticas que tiene un negocio para posicionarse
competitivamente es el de ofrecer precios más atractivos que la competencia, lo que lleva a
estos negocios a auténticas “guerras de precios” que complican las tareas del personal
encargado de etiquetar los productos, los cuales deben imprimir y colocar alrededor de todo
el local para cientos de productos.
De ser exitoso el proyecto, un negocio que desee implementarlo obtendrá una ventaja
competitiva con respecto al resto de la competencia por la novedad de utilizar las TI en un
área donde pocos innovan, además de cumplir con las legislaciones venezolanas en cuanto
a la presentación de precios se refiere.
Con este sistema, se quiere dar una mano a emprendedores que, en un país que les pone
complicaciones de todo tipo, desean empezar negocios que benefician a una población, y
así dejando una base para futuros emprendimientos y proyectos en este espacio. De igual
manera al utilizar menos papel se colaboraría con la protección al medio ambiente con un
menor gasto tanto en papelería como en tinta de impresión.
2 Según análisis de información obtenida de TradingEconomics
(https://tradingeconomics.com/venezuela/inflation-cpi), basada en información del Banco Central de
Venezuela (https://bcv.org.ve)
8
CAPÍTULO II
MARCO TEÓRICO
Antecedentes de la investigación
Un sistema donde una pantalla muestra los precios de los productos no es algo de
ciencia ficción ya que, en 2016, la franquicia de supermercados italiana Coop desarrolló un
prototipo haciendo uso de equipos Kinect3, un reconocedor de movimientos y cuerpos
desarrollado por Microsoft de manera que, al levantar un producto del estante, este era
mostrado en una pantalla colgada encima de los mismos, junto a información relevante
como precio, alergias y valores nutritivos. Además de este prototipo, existe interés en las
grandes empresas sobre cómo automatizar los supermercados y/o comercios. Una solución
propuesta la ha desarrollado la empresa de comercio electrónico Amazon con sus
supermercados Amazon GO4, donde no hay cajeros, todo es realizado por cámaras y
sensores los cuales rastrean a los clientes, y cuando salen por la puerta principal son
desacreditados por su gasto en los productos que fueron tomando.
El reemplazo del proceso de etiquetación, sin embargo, ya se había ideado
anteriormente. En Suecia, un suministrador de alimentos se planteó en 2017 el daño
ambiental que causaban con el gasto en plástico y energía a la hora de etiquetar alimentos,
por lo que idearon una solución alternativa a las pegatinas: imprenta con láser sobre las
frutas y empaques. Peter Hagg, administrador de la unidad de negocios de los
supermercados ICA, comenta en una entrevista realizada por The Guardian5: “Al hacer uso
de marcado natural en todos nuestros aguacates que venderíamos en un año, ahorraríamos
200 kilómetros de plástico con un grosor de 30 centímetros”, una cantidad para nada
despreciable, lo que generó beneficios económicos para la cadena.
3 Kevin Lisota. “The supermarket of the future, driven by Kinect sensors, touchscreens & digital displays”
(2016) https://www.geekwire.com/2016/supermarket-of-the-future/ 4AmazonGO: https://www.amazon.com/b?ie=UTF8&node=16008589011 5 Nina Pullman. Swedish Supermarkets replace sticky lables with laser marking (2017)
https://www.theguardian.com/sustainable-business/2017/jan/16/ms-and-swedish-supermarkets-ditch-sticky-
labels-for-natural-branding
9
Definición de términos y equipos
Inventario
Se define, según Moya como la acumulación de materiales (materias primas, productos
en proceso, productos terminados o artículos en mantenimiento) que posteriormente serán
usados para satisfacer una demanda futura. En este trabajo de investigación, es de interés
dar a conocer cómo funciona un inventario de mercancías y el control del mismo.
Microcontrolador
Es un circuito que contiene todos los elementos de una computadora en una
presentación compacta. Dispone de un CPU y memorias RAM y ROM, contando también
con puertos de entrada o salida para recibir y/o enviar la información a procesar,
dependiendo de su propósito. Existen diversas marcas que los fabrican y varían en
especificaciones, así como en gamas.
Arduino
Son una serie de placas de desarrollo open source que contienen un microcontrolador
para la construcción de dispositivos digitales compuestos que pueden ser operados
físicamente, mediante botones o interruptores o digitalmente a partir de código insertado en
su memoria. Están a la venta para programadores de todos los niveles en su página web6, o
a través de terceros en diversas tiendas online. Debido a que la conexión a una red es
necesaria para el desarrollo de este trabajo, se debe seleccionar un modelo con capacidades
de conexión a una red, ya sea Ethernet o WiFi.
Arduino Nano
Es una de las placas de desarrollo más populares del proyecto Arduino, aunque no tanto
como la UNO. Se basa en el microcontrolador ATmega328p al igual que la uno, pero lo
hace en una presentación más pequeña, en comparación a la UNO cuyo circuito impreso
mide aproximadamente 69mm de largo y 53mm de ancho, la Nano mide 45mm de largo y
18mm de ancho, lo que la hace perfecta para proyectos donde se prefiere disimular los
componentes.
6 Página web oficial del proyecto Arduino: https://www.arduino.cc/
10
Arduino Nano Every
Es una placa de desarrollo de similar tamaño a la Nano, pero esta cuenta con un
microcontrolador superior: el ATMega4809 el cual posee más memoria, una velocidad de
reloj más rápida y en la misma arquitectura que el ATMega328p, por lo que utilizan el
mismo compilador. A pesar de esto, existen menos accesorios, periféricos y soporte para
este nuevo microcontrolador, principalmente debido a que esta opacado por la popularidad
de sus predecesores.
Arduino Nano 33 IoT
Es una placa de desarrollo de similares dimensiones a las Nano mencionadas. Lo
interesante de esta placa es que no utiliza la serie AT de microcontroladores, optando por
un SAMD21G18A, pero más importante que esto, son las capacidades de conectividad de
bluetooth y Wifi que trae integradas para proyectos del “internet de las cosas”. Adicional a
esto posee aún más memoria y una capacidad de procesamiento incluso superior a la Nano
Every. A diferencia de los otros microcontroladores, este opera a un voltaje de 3.3V, por lo
que realizar una comunicación directa con placas que operan a 5V puede causar daños en
esta.
Arduino UNO
Es la placa de desarrollo más popular del proyecto Arduino, equipada con el
microcontrolador ATmega 328p, el cual es uno de los más populares para proyectos donde
se necesite un sistema autónomo con bajo costo y bajo consumo eléctrico, por esto, existe
mucha documentación y soporte para el mismo. A diferencia de las demás placas
mencionadas en este apartado, esta no cuenta con capacidades de conexión a una red de
manera nativa, aunque pueden agregárseles utilizando un “escudo” Ethernet o Wifi, placas
adicionales que se encajan directamente a la placa UNO para otorgarle la capacidad
seleccionada.
Arduino UNO Wifi
Una placa que utiliza el microcontrolador ATMega4809, adicional a una radio de Wifi
integrada para otorgarle a una placa con la presentación de una UNO las capacidades de
conexión y procesamiento de la Nano Every.
11
Tabla 1. Comparación entre placas Arduino
Nano Nano Every Nano 33 IoT UNO UNO Wifi
SRAM (KB) 2 6 32 2 6
Precio7 20.70$ 10.90$ 18.40$ 23.00$ 44.80$
Conectividad
a Internet
integrada
No No Wifi No Wifi
Pantallas
Dispositivo electrónico cuya función principal es la presentación de la información,
mediante texto, video o imágenes transmitidas electrónicamente. Entre las pantallas más
comunes existen los televisores, monitores de computador, señalización digital y más
recientemente, en dispositivos móviles como los teléfonos celulares.
Pantallas LCD
Las Pantallas de Cristal Líquido, son un tipo de pantallas utilizadas en dispositivos de
menor tamaño, los cuales son muchos más delgados. Estas pantallas hacen uso de un par de
polarizadores que cubren una capa de moléculas entre dos electrodos, una luz para iluminar
(ya sea interna o externa) y una matriz de píxeles para mostrar caracteres. La primera
pantalla LCD comercial fue lanzada en 1970 a través de un reloj de pulsera digital.
Una ventaja de este tipo de pantalla, es su pequeño tamaño en comparación a los
televisores de la época, que utilizaban un tubo de rayos catódicos. Otros ejemplos de estas
pantallas son las de una calculadora. Poco a poco fueron creciendo en tamaño y utilidad,
por lo que reemplazaron a las pantallas de televisores mencionadas por las famosas
pantallas planas.
7 Todos los precios de esta tabla fueron obtenidos de la página y tienda oficial del proyecto Arduino:
https://store.arduino.cc/
12
Figura 1. Pantalla LCD de Diigiit Robotics
Producto
Es cualquier bien material, servicio o idea que posee o puede poseer un valor para el
consumidor o usuario y que puede satisfacer una necesidad o deseo. En marketing, el
término producto se suele utilizar en forma genérica, incluyendo tanto a los
bienes tangibles como intangibles.
Sistemas
Según Cathalifaud A. en su documento “Introducción a los conceptos básicos de la
Teoría General de Sistemas”8, indica que un sistema es un conjunto de elementos que
guardan estrechas relaciones entre sí, que mantienen al sistema directa o indirectamente
unido de modo más o menos estable y cuyo comportamiento global persigue algún tipo de
objetivo.
Sistema manejador de base de datos (SMBD)
Es un software orientado a la gestión de una base de datos, a través de una interfaz, ya
sea para un usuario u otra aplicación. Sus funciones varían entre implementaciones, pero
principalmente deben proveer el almacenamiento, recuperación y actualización de
información. Los más populares incluyen MySQL, PostgreSQL, Oracle Database y
Microsoft Access.
8 Cathalifaud. A “Introducción a los conceptos básicos de la Teoría General de Sistemas”.
https://www.redalyc.org/pdf/101/10100306.pdf
13
Firebird
Es un SMBD para bases de datos relacionales lanzado en 2000 como una bifurcación de
otro manejador: Borland, aunque desde entonces su código ha sido mayormente
modificado. La intención principal del desarrollo de Firebird es la posibilidad de utilizarlo
en la mayor cantidad de sistemas operativos posibles, teniendo como particular el sistema
UNIX.
Microsoft Access
Es un SMBD para bases de datos relacionales lanzado en 1992, parte de la Suite de
Microsoft Office9. Esta combina el Microsoft Jet Database Engine relacional con una
interfaz gráfica. Una ventaja importante que tiene es la compatibilidad con otros programas
de la Suite, lo que permite importar y exportar a otros programas.
MySQL
Es un SMBD para bases de datos relacionales lanzado inicialmente en 1995, es gratuito
y de código abierto por lo que se mantiene relevante hasta el día de hoy, y debido a esto
posee grandes cantidades de herramientas e interfaces para su uso. Es uno de los SMBD
más utilizados en el mundo, utilizado por Facebook, Twitter y YouTube.
PostgreSQL
Es un SMBD para bases de datos relacionales gratuito y de código abierto lanzado en
1996, cuyo enfoque de desarrollo es la extensibilidad y conformidad con el estándar SQL.
Una de sus características más importantes es la gestión de la concurrencia, a través de
“capturas” de la base de datos, permitiendo que sean realizados cambios sin afectar otras
transacciones.
Oracle Database
Es un SMBD de múltiples modelos desarrollado por Oracle. Es comúnmente utilizado
para procesamiento de transacciones en línea y almacenes de datos. Es importante
mencionar que fue el primer SMBD basado en SQL lanzado al mercado, en 1979, siendo su
más reciente actualización en 2019.
9 Una familia de software de productividad desarrollada por Microsoft, que incluye programas como Word,
Excel, Outlook y PowerPoint.
14
Tabla 2. Comparación entre los manejadores de base de datos
Firebird Microsoft Access MySQL PostgreSQL Oracle Database
Modelo de BDD
Principal Modelo Relacional Modelo Relacional Modelo Relacional Modelo Relacional Modelo Relacional
Modelo de BDD
Secundario n/a n/a Modelo orientado a Documentos Modelo orientado a Documentos
Modelos orientados a
Documentos, Graficas y RDF
Desarrollador Fundación Firebird Microsoft Oracle (desde 2010) Grupo de Desarrollo Global de
PostgreSQL Oracle
Licencia Código Abierto Comercial Código Abierto Código Abierto Comercial
Lenguaje de
implementación C y C++ C++ C y C++ C C y C++
Soporte SQL Si Si Si Si Si
Sistemas Operativos
con soporte de servidor.
AIX
FreeBSD
HP-UX
Linux
OS X Servidor Embebido de
Firebird Solaris
Unix
Windows
Microsoft, a través de DLLs,
no un servidor de bases de
datos real
FreeBSD
Linux
OS X
Solaris
Windows
FreeBSD
HP-UX
Linux
NetBSD
OpenBSD
OS X
Solaris
Unix
Windows
Aix
HP-UX
Linux
OS X
Solaris
Windows
Z/OS
Soporte de Tipificación Si Si Si Si Si
Soporte de XML No No Si Si Si
APIs y otros métodos
de acceso
ADO.NET
C/C++ API
JDBC
ODBC
OLE DB
ADO.NET
DAO
ODBC
OLE DB
ADO.NET
JDBC
ODBC
API nativa propietaria
ADO.NET
JDBC
Librería Nativa de C
ODBC
API de streaming para objetos de
mayor tamaño
JDBC
ODBC
ODP.NET
Oracle Call Interface (OCI)
Lenguajes de
programación
soportados
C, C#, C++, Delphi,
Java, JavaScript, Lua,
Perl, PHP, Python,
Ruby
C, C#, C++, Delphi, Java,
VBA y Visual Basic.NET
Ada, C, C#, C++, D, Delphi,
Eiffel, Erlang, Haskell, Java,
JavaScript, (Node.js), Objective-
C, OCaml, Perl, PHP, Python,
Ruby, Scheme, Tcl
C, C#, C++, Clojure, Cobol, Delphi,
Eiffel, Erlang, Fortran, Groovy,
Haskell, Java, JavaScript, Lisp,
Objective C, OCaml, Perl, PHP,
Python, R, Ruby, Scala, Tcl, Visual
Basic
.NET, C, C++, Delphi, Java
(JDBC), JavaScript (Node.js),
Perl, PHP, Python, Tcl
Otras características Soporte con la suite de
Microsoft Office
Soporte para: Métodos de
particiones, Métodos de
replicación, Conceptos de
Consistencia Inmediata.
Soporte para: Métodos de
particiones, Métodos de
Replicación, Conceptos de
Consistencia Inmediata.
Soporte para: Métodos de
particiones, Métodos de
Replicación, Conceptos de
Consistencia Inmediata.
Fuente: https://db-engines.com
15
Bases teóricas
Caracterización de un producto
Un producto tiene diferentes atributos que lo definen y caracterizan, particularmente los
siguientes atributos de información: Nombre comercial, Marca, Presentación, Unidad de
medida, tamaño, Precio de venta, alícuota IVA. Obviamente cada producto tiene un
identificador único representado por el código de barras. En la siguiente tabla podemos
observar un ejemplo de la caracterización de productos.
Tabla 3. Ejemplos de caracterización de un producto
Nombre Marca Presentación Unidad
medida Tamaño
Precio
Venta (Bs.)
IVA
(%)
Harina de
maíz
PAN Paquete Kg 1 1100000,00 0
Aceite de
palma
Vatel Frasco ml 900 950000,00 12
Mayonesa Mavesa Frasco ml 500 1900000,00 12
En el desarrollo de la investigación se descubrió que no siempre es lo mismo un ítem de
inventario que un producto, algunas veces un producto contiene más de un ítem de
inventario como los “combos” o promociones, por ejemplo; esto también aplica para las
ofertas por cantidad como una oferta “lleve 3 por el precio de 2”. En estos casos es
responsabilidad de cada negocio definir los productos comerciales que ofertará, ya que el
sistema solamente tomará la información de los atributos de información correspondiente.
Esta situación es una analogía a lo que sucede en la caja cuando la operadora pasa la
etiqueta de barra por el lector, este refleja los elementos que identifican el producto y el
precio de venta.
Códigos de barra
Son un método de representación de datos en una forma visual, de manera que pueda
ser legible por una máquina. En sus inicios los códigos de barra se veían presentados por
una serie de líneas paralelas cuyo grosor y separación indicaba el valor, aunque poco a poco
16
fueron apareciendo variantes en dos dimensiones, utilizando rectángulos, puntos,
hexágonos entre otras figuras y patrones geométricos. Estos comúnmente son leídos y
deconstruidos a través de aplicaciones en dispositivos móviles, como en la cámara de un
teléfono inteligente.
Los códigos de barra fueron inventados y patentados por Norman Joseph Woodland y
Bernard Silver en 1951, quienes se basaron en el código Morse para formular el sistema
mencionado en el párrafo anterior. A pesar de esto, no alcanzaron mayor popularidad sino
hasta que en 1973, el Consejo Uniforme de Código de Productos de Comestibles,
definieron un formato conocido como el Código Universal de Producto (UPC), el cual hizo
uso de la tecnología creada por Woodland y Silver.
Estándares de códigos de barra
En la actualidad, existen dos estándares principales para identificar un producto de
mercado a través de un código único asignado: El ya mencionado UPC que es utilizado
principalmente para productos en los Estados Unidos y Canadá; y el Número de Artículo
Europeo (EAN), el cual es utilizado en el resto del mundo. Ambos representan una serie de
dígitos de 12 y 13 dígitos respectivamente que sirven para identificar el producto, el
fabricante y en el caso del EAN, el país que otorgó el código, el cual puede ser distinto al
fabricante.
En el caso de UPC se tiene que es una secuencia de 12 dígitos, sin letras ni otros
caracteres especiales, en la que hay una correspondencia de uno a uno entre un número de
12 dígitos y las rayas verticales. Este sigue un patrón de SIIIIIIMDDDDDDF, donde S
(Salida), M (Medio) y (F) Final son representados por un par de franjas angostas para
indicar donde empieza y termina el código. En el resto del patrón es donde son
representados los números, y dependiendo si se encuentran en la región izquierda (I) o
derecha (D) son representados de una manera distinta. El primer dígito I también señala qué
tipo de numeración va a ser utilizada en el código y el último dígito D funciona como
detección de errores.
17
Figura 2. Código de barras con formato UPC-A
Por otra parte, el EAN cuenta con 13 dígitos, y fue diseñado como un superconjunto del
UPC. La principal diferencia, además de las mencionadas anteriormente, es que el dígito
adicional indica la manera en la que se codifica cada dígito. Cada dígito tiene una
representación en barras de tipo L, G, o R, siendo el 0 una codificación idéntica a la de
UPC.
Figura 3. Código de barras con formato EAN-13
Control de pantallas LCDs con microcontroladores
Para el manejo de pantallas se utiliza un controlador creado por la empresa Hitachi en
1980 llamado Hitachi HD44780, el cual proporciona a un desarrollador una manera de
controlar una pantalla de cristal líquido (LCD) de matriz de puntos a través de una interfaz
física de 16 pines. Tiene soporte para caracteres ASCII, Kana japonés y simbología, con un
máximo de 80 caracteres por controlador. En la siguiente tabla se puede observar la función
de cada pin y su función para el manejo de la pantalla.
18
Número de Pin Nombre
1 GND (Tierra)
2 VCC (5 Voltios)
3 V0 (Contraste)
4 RS (Selección de Registro)
5 R/W (Leer / Escribir)
6 E (Activar)
7 D0
8 D1
9 D2
10 D3
11 D4
12 D5
13 D6
14 D7
15 A (Ánodo)
16 K (Cátodo)
Tabla 4. Pines de una LCD compatible con el HD44780
El pin tres (3) indica el contraste de los caracteres y es usualmente conectado a un
potenciómetro, el cual permite regular el voltaje hasta encontrar el valor óptimo. Esto es
debido a que la visibilidad puede variar dependiendo de la temperatura y en algunos casos
por la altura con respecto al nivel del mar.
El pin cuatro (4) se utiliza para indicar al controlador si se le enviará un comando o
información. El pin cinco (5) es para indicar si se leerá o escribirá al LCD, aunque son
pocos los casos donde se necesita leer. El pin seis (6) sirve para activar el controlador, esto
permite conectar varios LCD a un mismo dispositivo en paralelo sin utilizar pines adiciones
para la información o data.
19
Los pines del siete (7) al catorce (14) son utilizados para comunicar los caracteres a
mostrar en pantalla. Existen dos modalidades, 4bits y 8bits, siendo la principal diferencia la
cantidad de pines que son utilizados, cuatro y ocho respectivamente, y que en el modo de
4bits los caracteres son enviados en dos partes, generando latencia. En el modo de 4bits son
utilizados los pines once (11) al catorce (14).
Finalmente, los pines quince (15) y dieciséis (16) ayudan a regular el voltaje necesario
para la luz trasera del LCD si la posee.
Es común que en las IDE de una placa de desarrollo se cuente con una librería para
facilitar el manejo de estas pantallas, en el caso de Arduino se cuenta con la librería
LiquidCrystal.
Protocolo de Circuitos Inter-Integrado (I2C) para LCD
Alternativamente, si se desea utilizar menos cables y pines en la placa de desarrollo,
existe también la opción de utilizar un adaptador para estas pantallas de manera que se
conecte de manera serial a través de un Circuito inter-integrado, el cual a partir de ahora
será llamado por sus siglas en inglés: I2C. Este es un protocolo de comunicación donde son
utilizados únicamente dos cables, uno de reloj (SCL) para coordinar las acciones y otro de
información (SDA) con roles de maestro y esclavo: el primero es quien inicia la
comunicación con los segundos, los cuales responden a la instrucción recibida. En el caso
de una pantalla LCD, es necesario un módulo y pantallas compatibles, usualmente, estas
pantallas se venden con un módulo ya instalado. Es importante mencionar que el módulo
cuenta con un potenciómetro el cual debe ser ajustado con un destornillador para ajustar el
contraste de la pantalla en caso de que no sea óptimo con la configuración de fábrica.
Figura 4. Modulo I2C para pantallas LCD
20
Para controlar una pantalla a través de una conexión de bus I2C, se necesita voltaje y
tierra para darle energía al dispositivo y dos pines análogos que servirán de SDA y SCL. En
el caso del Arduino UNO, estos pines son el A4 y A5 respectivamente, aunque estos
pueden variar dependiendo del microcontrolador utilizado por la placa. Posteriormente,
cuando se programe la placa de desarrollo deberá usarse la librería I2C indicada por el
fabricante ya que pueden variar de un módulo a otro.
Al utilizar conexiones de este tipo, se direcciona la información a cada dispositivo a
través de una dirección única. Para el caso de este tipo de pantallas, se cuenta con un
máximo de 8 direcciones seleccionadas a través de tres pares de pines ubicados junto al
potenciómetro identificados A0, A1 y A2, los cuales se pueden activar soldando sus puntos
de contacto.
Sistema de control de inventario
Son sistemas de contabilidad que se utilizan para registrar las cantidades de mercancía
existentes y para establecer el costo de la mercancía vendida. Normalmente almacenan
información en una base de datos sobre los productos como código(s), nombre, precios y
cantidad en almacenamiento, pero pueden guardar cualquier tipo de información relevante.
En particular es de interés en un país hiperinflacionario la actualización constante de
precios para mantenerse al día.
Legislación venezolana para la presentación de precios
Según la Gaceta Oficial número 40.774 publicada el 26 de octubre de 2015, en la
Providencia Administrativa número 070/201510, vigente desde su publicación, titulada:
“Providencia Administrativa mediante la cual se regulan las modalidades para la
determinación, fijación y marcaje de precios en todo el territorio nacional.” Establece en el
Capítulo III, Artículo 12:
“El marcaje de Precio Máximo de Venta al Público (PMVP) o del Precio
Justo se hará mediante una de las tres modalidades indicadas en este
artículo, atendiendo a la naturaleza del bien o servicios, según el orden de
prelación o preferencia que se indica:
1. Rotulado en el cuerpo del bien.
2. Estampado mediante etiqueta autoadhesiva.
10 En su publicación original de esta gaceta, por error material, no contaba con un número asignado. Esto fue
corregido en la posterior Gaceta Oficial 40.775, fecha de publicación 27 de octubre de 2015. Recuperada de:
http://www.tsj.gob.ve
21
3. Listado impreso.
La selección de la modalidad de marcaje no es optativa, (…), salvo que ello
no fuera posible en razón de las características físicas del bien, su
presentación o las condiciones usuales de su comercialización. En dicho
caso, la modalidad a aplicar será el estampado mediante etiqueta
autoadhesiva”
Lo anterior junto a el Articulo 17 en el mismo documento:
“El marcaje del Precio Máximo de Venta al Público (PMVP), o del Precio
Justo contendrá la siguiente información, en el orden expresado:
1. Las siglas “PMVP”...o la expresión “PRECIO JUSTO”, según la
modalidad de precio que se trate…
2. La denominación monetaria “Bs”, haciendo referencia a bolívares,
seguida del monto correspondiente....
3. La expresión “IVA”, en alusión al Impuesto al Valor Agregado,
seguida del porcentaje correspondiente a la alícuota del IVA
aplicable, indicada en guarismos seguida del signo porcentaje (%).
4. La expresión monetaria “Bs”, en referencia a bolívares, seguida del
valor absoluto correspondiente al Impuesto del Valor Agregado del
bien o servicio, en guarismos.”
5. La expresión “TOTAL A PAGAR”, seguida de la denominación
monetaria “Bs” ...y a continuación, en guarismos, el valor absoluto
resultante de la sumatoria del Precio Máximo de Venta más el
Impuesto al Valor Agregado que correspondiere....”
Para cumplir con los objetivos este trabajo y cumplir con la legislación venezolana se
considera necesario enunciar los dos anteriores artículos con el fin de conocer las
limitaciones y pautas que puedan surgir durante el diseño e implementación del sistema.
22
CAPÍTULO III
MARCO METODOLÓGICO
Tipo de investigación
Para el desarrollo del sistema de actualización de precios mediante pantallas
inteligentes se considera una investigación de tipo proyectiva, ya que, según J. Hurtado
(2008) “consiste en la elaboración de una propuesta, un plan, un programa o un modelo,
como solución a un problema o necesidad de tipo práctico, ya sea de un grupo social, o de
una institución … a partir de un diagnóstico preciso de las necesidades del momento …”.
Una investigación de este tipo se puede efectuar cuando una situación no está dándose
como debería y se desea cambiar.
Diseño de la investigación
La información a investigar en este trabajo será mayormente bibliográfica y
documental, con una parte de investigación de campo, por lo que se define que es un
trabajo mixto en cuanto a las fuentes se refiere. Como técnica de recolección de datos, fue
en su gran mayoría utilizada la revisión documental, principalmente en línea debido a la
naturaleza del proyecto, mientras que para la investigación de campo fue utilizada la
observación directa.
Metodología de desarrollo
El desarrollo como proyecto de tecnologías de la información del sistema será de un
prototipado para demostrar su funcionamiento y forma, a través de un maquetado el cual
demostrara la forma de cómo podría verse el producto final, esto se debe a que cada
negocio cuenta con distintos tipos de muebles en los que muestran sus productos. Entre los
diferentes tipos de prototipo, se considera desarrollar un prototipo funcional, de manera que
se desarrolle un modelo que demuestra el funcionamiento y utilidad del proyecto propuesto,
con todas o casi todas las características del sistema final.
Entre los tipos de prototipos, se considera que la metodología mas adecuada es la de un
primer prototipo de una serie, el cual es caracterizado por la creación de un primer modelo
a escala completa llamado piloto. Esta metodología es útil cuando se quieren realizar
muchas instalaciones del mismo sistema de información. Se tiene que esta metodología es
23
apropiada para el desarrollo de este proyecto ya que se permite a los usuarios experimentar
la interacción real con el nuevo sistema, minimizando el costo de superar problemas que se
presenten y ya que cada negocio que desee implementar el sistema contará con distintas
particularidades en cuanto a la cantidad de equipos a utilizar y su distribución.
La metodología de desarrollo de un prototipo cuenta con cinco etapas generales, a
continuación:
1. Investigación preliminar.
2. Especificación de requerimientos y prototipado.
3. Diseño técnico.
4. Programación y pruebas.
5. Operación y mantenimiento.
Procedimiento utilizado
El desarrollo del proyecto se encuentra guiado por los objetivos planteados en el
capítulo I de este trabajo, los cuales, junto a las fases de desarrollo de un prototipo, dió a
lugar a las siguientes actividades:
1. Se analizó la estructura de datos de la Ferretería Imaya, donde se tomó nota de cuál
era la información más relevante para la clientela, para definir los campos más
importantes a tomar en cuenta para la selección de la información a mostrar al
cliente.
2. Se estudiaron las diferentes formas de controlar pantallas LCD, para ser tomadas en
cuenta en el diseño de la solución.
3. Se realizó un modelo conceptual del sistema para conocer las características
necesarias de los equipos a estudiar y seleccionar.
4. Se compararon las distintas placas de desarrollo de software a través de las
características de cada una con el fin de seleccionar las adecuadas para el diseño
físico del sistema.
5. Se diseñó la arquitectura del sistema a partir del diseño conceptual donde se
presentan los costos de equipos y la escalabilidad del mismo.
6. Se seleccionó una plantilla web para el diseño de la página web, que manejase el
apartado móvil y el responsive, de manera que la codificación de la página se vea
reducida a la conexión con la placa y con la base de datos.
24
7. Se realizó el diseño del circuito a partir de la arquitectura, tomando en cuenta la
modalidad de bits a trabajar y utilizando la menor cantidad de pines que fuese
posible, para demostrar la posibilidad de utilizar más pantallas si se desease. Esto
incluye el diseño de la conexión entre placas.
8. Se diseñó el prototipo funcional a partir del diseño general y el diseño de la
arquitectura del sistema.
9. Se construyó el prototipo a partir del diseño, tomando en cuenta las limitaciones que
provienen del equipo utilizado.
10. Se codificó el prototipo mencionado a partir de los objetivos y análisis previos, esto
incluye la construcción del servidor web y su interfaz y el programa de la placa de
desarrollo.
11. Se implementó el prototipo a un maquetado de anaquel simple para probar el
funcionamiento basado en los resultados obtenidos de la observación.
25
CAPÍTULO IV
PRESENTACIÓN Y ANÁLISIS DE LOS RESULTADOS
Situación Actual
Los precios en los establecimientos comúnmente son dados a conocer de alguna de las
siguientes maneras: con un pequeño adhesivo y el precio escrito, por una hoja impresa que
es colocada en alguna parte del anaquel o mostrador, llevando el producto deseado a un
escáner de códigos de barra donde puede haber una cola para escanear, o de manera
informativa por algún empleado del local.
Figura 5. Productos con precios identificados con adhesivos y tinta.
Para esta investigación y para cumplir con el objetivo #1, se visitó la Ferretería Imaya,
ubicada en el Centro Comercial Zulia en Ciudad Guayana, para conocer cómo un comercio
utiliza las tecnologías de la información para el mantenimiento de su inventario, así como
también qué sistemas y software son utilizados para el control del mismo. En varias
ocasiones mientras que el dueño explicaba estos sistemas, un cliente preguntó por el precio
de un producto, tanto en la moneda nacional como en divisas, precisamente siendo esta una
de las situaciones que se quiere corregir para aligerar la carga mental que supone conocer
26
y/o buscar en el sistema el precio por el que se pregunta, a través de la solución propuesta
en este trabajo.
Se dió a conocer que, para un producto promedio, se almacenan detalles de sus
características en un campo de “Nombre Corto”, su marca y la presentación, la cual es
acompañada por una unidad y cantidad en caso de ser necesario. Esta información será
considerada como base para el diseño de la base de datos. Lastimosamente, debido a la
situación mundial de la pandemia y las restricciones de movilidad que surgieron a partir de
ella en el país, no se organizaron más visitas a otros locales, sin embargo, se mantuvo el
contacto con el dueño para cualquier duda emergente durante el desarrollo y para escuchar
sugerencias como cliente interesado de este proyecto.
Adicionalmente, se pudo notar que un negocio como lo es la Ferretería Imaya no es el
adecuado para implementar la solución propuesta, esto se debe a su alta densidad de
productos en un reducido espacio de muestreo. Por ejemplo, solamente en los tipos de
tornillo en venta se encuentra una gran cantidad de productos únicos: por su tipo de cabeza,
de rosca e incluso la longitud de la misma. En este tipo de negocios que tienen una
interacción directa con un empleado o el dueño, el beneficio de implementar el sistema se
ve reducido, no obstante, se considera que en un comercio de mayor tamaño con una menor
densidad de productos por anaquel puede ser el apropiado para nuestra solución.
Se considera un comercio de con una densidad de productos ideal para implementar el
sistema, según las pruebas y observaciones realizadas, es aquel que pueda presentar de 8 a
12 grupos de productos únicos en un espacio común y que esté claro que pertenecen a una
pantalla cercana.
Definición de requerimientos del sistema
Requerimientos funcionales
1. Mostrar en las pantallas LCD la información de los productos correspondientes.
2. La placa de desarrollo debe obtener la información asignada de la base de datos.
3. En la interfaz web debe ser posible gestionar las relaciones productos a pantallas.
4. Debe ser posible agregar y eliminar pantallas y Arduino al sistema.
27
5. Para añadir un producto a una pantalla debe poder utilizarse su código de barras.
6. Un Arduino maestro debe poder comunicarse con un Arduino esclavo para enviarle
su listado correspondiente.
Requerimientos no funcionales
1. El panel de control web debe resultar intuitivo para el usuario.
2. El panel de control podrá ser accedido desde cualquier dispositivo conectado a la
red.
3. El sistema debe funcionar con alternativas de placas de desarrollo.
4. Debe facilitarse la carga inicial a las personas encargadas.
5. El mantenimiento de equipos debe ser lo más simple posible, esto incluye la
configuración e instalación inicial de placas y/o pantallas nuevo/as y reemplazo de
equipos.
Equipos a utilizar
Tipo de Pantalla LCD
Para las pantallas en la que la información será mostrada, se utilizaron pantallas LCD
de 20x4 caracteres, es decir de 20 columnas y 4 filas, la cual es compatible con el estándar
Hitachi mencionado en el Capítulo II1. El motivo de la selección de estas pantallas es
simplemente su bajo costo en comparación a pantallas tradicionales, y que su tamaño
permite mostrar la información evitando el máximo posible el tener que realizar “barridos”
en la información mostrada puesto que esto empeora la experiencia del usuario. A
diferencia de las pantallas de 16x2, en una pantalla de 20x4 se permite mostrar hasta un
máximo de 80 caracteres, mientras que la alternativa permite apenas 32. Se considera que el
sacrificio en el aumento de costos al optar por una pantalla de mayor tamaño es justificado
para mejorar la experiencia con el sistema por parte de los clientes.
1 Puede encontrar esta información en las Bases Teóricas, bajo Control de Pantallas LCD
28
Figura 6. Precios de LCD 16x2 y 20x4 caracteres.
Arduino
A pesar de las opciones presentadas en el capítulo II, para la demostración del
funcionamiento de la solución, se utilizarán un par de Arduino UNO, uno de ellos
conectado a un escudo Ethernet, y una pantalla LCD de caracteres 20x4 para cada uno,
puesto que ya se disponía de estos previo al diseño de la solución, conociendo que equipos
con una mayor capacidad de memoria pueden dar la capacidad de mostrar una mayor
cantidad de productos por placa, ya que puede almacenar una mayor cantidad de productos
por petición.
29
Manejador de base de datos
Al momento de elegir un manejador de base de datos, se decidió comparar en una tabla2
cuatro de los manejadores más populares, que son: MySQL, Oracle, PostgreSQL y
Microsoft. También se incluyó Firebird debido a que es el manejador utilizado por el
software empresarial Valery, uno de los softwares más utilizados en el país. Como se buscó
reducir costos en la medida de lo posible, no se tomaron en cuenta Oracle ni Microsoft
Access debido a sus licencias comerciales, y que las características destacables de estos no
eran necesarias para el desarrollo del proyecto, siendo estas el soporte para otros modelos
de base de datos de Oracle y compatibilidad con la suite de Office de Access.
Los tres restantes, para efectos de desarrollo, resultaron bastante similares y
técnicamente todos eran buenos candidatos para ser utilizados como SMDB: son de
software libre y presentan compatibilidad con los sistemas operativos más comunes. A
pesar de esto, se decidió utilizar MySQL debido a la previa experiencia que se tenía con
éste.
2 Se encuentra en el marco teórico de este mismo trabajo, Tabla número 2.
30
Diseño del sistema
Diseño general
La solución propuesta comprende un sistema que cumpla con los objetivos y el alcance
propuesto en el capítulo I, compuesto por una interfaz que mostrará la información de la
base de datos de un comercio, de la cual se extraerá la información relevante para el cliente
para ser presentada en una serie de pantallas LCD conectadas a placas de desarrollo. Para
explicar el diseño del sistema se tienen los siguientes diagramas:
Diagrama 1. Diagrama de componentes
En general, el sistema puede desglosarse en los componentes descritos por el diagrama
anterior, esto incluye sus dependencias en cuanto a datos se refiere. El Módulo de
Visualización Maestro está conformado por una o muchas pantallas LCD conectadas a la
aplicación web a través de una placa de desarrollo. Los Módulos de Visualización Esclavo
son igualmente una o muchas placas, conectada a una o muchas pantallas LCD cada una.
31
Diagrama 2. Diagrama de despliegue
El diagrama explica las conexiones físicas que tendrá el sistema, resaltando las
conexiones entre los dispositivos y software. Es importante destacar que cualquier
dispositivo con un navegador web puede tomar el lugar de la estación de trabajo debido a
que lo importante en este caso es el propio navegador.
Diagrama 3. Diagrama de comunicaciones
En cuanto a comunicaciones, el sistema contará con dos mensajes principales: el
primero, la petición del módulo de visualización al servidor para obtener su listado a
mostrar junto a su consecuente respuesta y, en caso de ser necesario, envía el listado a sus
32
esclavos; siendo el segundo la configuración de listados por parte de la interfaz, la cual será
almacenada en la base de datos.
Diagrama 4. Diagrama de tiempos
Al iniciarse el módulo de visualización, su primera tarea luego de comprobar que se
encuentra conectado a la red será realizar la petición al servidor web, y enviar a sus
esclavos los listados de precios correspondientes. Esta tarea se realizará de manera cíclica
en un periodo definido por el usuario.
Procesos principales
El sistema tiene, fundamentalmente, tres procesos o funciones principales:
1- Carga Inicial: Durante la carga inicial un usuario crea los módulos de visualización
en la interfaz web y le asigna a cada uno, mediante el escaneo de códigos de barra
de los productos, los productos que este va a mostrar. Este proceso puede realizarse
tanto en un computador con un escáner de códigos USB o en un teléfono inteligente
33
con una aplicación3 que utilice la cámara y el teclado para introducir el código, esto
se debe a que estos escáneres transforman el código a una entrada de texto.
2- Mantenimiento: Luego de la carga inicial, un usuario puede gestionar los productos
asignados a cada módulo, así como gestionar los módulos en sí, a través de la
interfaz web a la cual puede acceder desde cualquier dispositivo conectado a la red.
3- Modo de Visualización: El proceso principal del sistema, cada módulo padre, al
encenderse, realizará una petición de la cual obtendrá un listado de productos
asignados para ser mostrados los cuales fueron previamente asignados en uno de los
procesos anteriores, y en caso de tener hijos asignados, se envía a cada uno su
listado correspondiente. Cada módulo mostrará la información relevante para el
cliente que incluye: el nombre, marca, presentación, cantidad y unidad, junto al
Precio Máximo de Venta al Público (PMVP), el porcentaje y valor del IVA junto al
total a pagar. El módulo se mantiene refrescándose con la información de los
productos según el listado recibido hasta que se reinicie físicamente o pase el
periodo de tiempo asignado en la programación de la placa.
Diseño de componentes
Interfaz web
Para el diseño de la interfaz web, se buscó la capacidad de creación, edición y
eliminación de pantallas, así como la asignación de productos a pantallas. Se propuso una
interfaz web, de manera que fuera posible acceder desde un computador en el local o desde
un teléfono móvil para la comodidad del usuario, que, con una conexión a una base de
datos, muestre las parejas de pantallas y placas del sistema, y tener la capacidad de mostrar
los productos asignados a cada pareja. Para ahorrar tiempo de desarrollo, se utilizó una
plantilla gratuita de código abierto que ya tuviese el responsive de manera que solo fuese
necesaria la personalización y modificación de la misma.
Se tiene el siguiente diagrama de casos de uso para explicar las funciones principales
que esta interfaz proporciona al usuario.
3 Se recomienda Scanner Keyboard, la cual agrega un botón para acceder al escáner desde el mismo teclado.
Disponible gratuitamente en la Google Play Store.
34
Diagrama 5. Diagrama de casos de uso para la interfaz web
Programa de Arduino
El Arduino debe ser capaz de realizar una petición a la base de datos y mostrar el
resultado en el espacio delimitado de la pantalla LCD. Debe transformar la información
recibida a un formato legible a simple vista y debe tomar en cuenta los casos de borde
como aquellos productos con nombres y caracterización más largos que la cantidad de
caracteres que tiene una línea de la pantalla LCD. El programa también debe realizar
actualizaciones periódicas con el fin de mostrar la información más actualizada.
Se tendrán dos roles para los Arduino: maestro, que posee un escudo Ethernet y
conexión a la red por lo que es quien realiza las peticiones, y los esclavos que reciben la
información de su maestro. En el siguiente diagrama se muestra el flujo que seguirá cada
Arduino una vez encendido o reiniciado:
35
Diagrama 6. Diagrama de Flujo del Arduino Maestro
36
Diagrama 7. Diagrama de Flujo del Arduino Esclavo
37
Diseño de circuito
Para el diseño del circuito en cuanto a la conexión con la LCD se tomó el presentado en
el sitio web de Arduino4 con modificaciones de cuáles pines están conectados a qué pin en
la pantalla, colocando todos los pines de comunicación exceptuando el de Enable. Esto
debido a que se quiere utilizar más de una pantalla por Arduino para reducir costos y el
resto de pines pueden conectarse en paralelo, siendo este pin el identificador de cada
pantalla. La capacidad máxima se ve limitada al número de pines a utilizar. En el caso de
un Arduino maestro se pueden utilizar hasta 7 pantallas, ya que el pin número cuatro (4)
comúnmente se encuentra reservado para comunicaciones de internet del escudo Ethernet.
Para ciertas funciones que no serán utilizadas en este proyecto, ya que los esclavos no
disponen de este escudo, cuentan con un pin adicional para un total de 8 pantallas. Será
utilizada la modalidad de comunicación de cuatro bits5 para ahorrar pines y maximizar el
número de pantallas que puede ser conectado por placa.
Diagrama 8. Esquema de Circuito Arduino a LCD
4 “Hola Mundo” en una pantalla LCD: https://www.arduino.cc/en/Tutorial/LibraryExamples/HelloWorld 5 Puede encontrar la explicación de esta modalidad en las Bases Teóricas del Capitulo II
38
Tabla 5. Correlación de ENABLE con el número de pantalla.
Número de Pin Enable Dirección en el Sistema
(Maestro)
Dirección en el sistema
(Esclavo)
0 0 0
1 1 1
2 2 2
3 3 3
4 X 4
5 4 5
6 5 6
7 6 7
En el caso de conectar las pantallas utilizando I2C, se tiene el siguiente circuito:
Diagrama 9. Esquema de Circuito Arduino a LCD con I2C
Cada pantalla debe poseer una dirección única para poder ser operada. Esto es
configurado en la parte trasera de cada LCD uniendo los puntos de conexión entre A0, A1,
39
y A2 colocándolos en LOW. Se tiene un máximo de 8 direcciones, como puede verse en la
tabla.
Tabla 6. Direcciones posibles de un LCD I2C
A0 A1 A2 Dirección en el bus I2C Dirección en el
sistema
1 1 1 0x27 0
0 1 1 0x26 1
1 0 1 0x25 2
0 0 1 0x24 3
1 1 0 0x23 4
0 1 0 0x22 5
1 0 0 0x21 6
0 0 0 0x20 7
Al momento de realizar una conexión entre la placa y el servidor web se tiene tanto la
opción Wifi como la opción Ethernet. Dependiendo de las instalaciones del comercio debe
seleccionarse la adecuada, y en el caso de este proyecto, se trabajará con un escudo de
Ethernet conectado a un Arduino UNO debido a que se disponía de uno previo al inicio de
este proyecto.
La conexión entre los maestros y esclavos se realizará mediante el protocolo I2C por lo
que deben conectarse a la misma línea entre los Arduino de un mismo grupo los pines
digitales A4, A5 y la tierra. Alternativamente, si se prefiere utilizar pantallas I2C por las
razones mencionadas anteriormente, debe utilizarse un protocolo distinto de comunicación
para evitar la duplicidad en las direcciones de pantallas. En este caso se utilizá el protocolo
TTL o Serial utilizando una topología de token ring, como se puede ver en el diagrama 10.
40
Diagrama 10. Esquema de Circuito Arduino a Arduino en anillo.
Para la identificación personal de cada Arduino, ya sea maestro o esclavo, se utilizará
un dip-switch de 8 posiciones de manera que representen un número binario de 8 bits que
indicará a cada Arduino su dirección. Para utilizar la menor cantidad de pines digitales
41
posible para maximizar la cantidad de pantallas por Arduino, se hará uso de una Red R-2R
o escalera de resistencias para utilizar una única entrada analógica. El resultado de esta red
será un valor de voltaje analógico controlado por las posiciones de los pines y dicho valor
será comparado a una tabla de valores almacenada en el Arduino de donde se obtendrá el
identificador. Es importante mencionar que en la conexión I2C se encuentra reservada la
dirección 0x00 y para el caso de los esclavos un valor 00000000 no sería válido, para tomar
en cuenta la UX este será tomado como el valor 00000001. Un caso similar se presenta con
los maestros, donde un valor de 11111111 se encuentra reservado, por lo que será
transformado a 11111110.
Figura 7. Dip-switch de 8 posiciones
42
Diagrama 11. Esquema de Circuito Arduino dip-switch R-2R
Base de datos
Para el diseño de la Base de Datos del sistema, se deben tener las tablas que soporten
las relaciones entre productos, pantallas y placas de desarrollo, tomando en cuenta que esta
relación es de N: M. El sistema debe ser capaz de captar los atributos necesarios de la base
de datos del comercio que desee implementarlo y junto a una tabla relacional, poder
responder a las peticiones del servidor para cada módulo de visualización.
Se diseñaron dos tablas, una para almacenar las direcciones de pantallas, esclavos y
maestros de Arduino definidas por un identificador id y la segunda tabla relacional donde a
partir de un producto y al anterior id son relacionadas. Cuando un Arduino maestro realiza
43
la petición se extrae la información del producto directamente desde la BDD utilizando esta
tabla.
Diagrama 12. Diseño de la Base de Datos del sistema
Cantidad de productos por pantalla
Para determinar cuántos productos es apropiado mostrar por cada pantalla, se realizaron
pruebas del tiempo utilizado en tres actividades en un comercio que tuviese un escáner de
productos: (1) tomar un producto, llevarlo hasta el escáner y volver; y (2) ubicar el listado
de productos impreso y comprobar el precio del producto. Se dió a conocer que para la
prueba (1) existen varios factores que afectan el tiempo de realización, como la distancia
entre el escáner y el producto y si se encuentra una cola en el mismo. Como resultado se
tiene que, aproximadamente, esta tarea consume en total 1 minuto. En cambio, para la
prueba (2), si el listado se encuentra en el mismo anaquel se consumen aproximadamente
15 segundos. Por otra parte, si el listado se encuentra en un lugar único entonces el tiempo
es similar al de la tarea (1).
Dicho esto, se debe igualar o superar este tiempo perdido por parte de la clientela con
este sistema. Tomando en cuenta que la velocidad de lectura promedio para personas entre
los 17 y 60 años de edad es de 238 palabras por minuto, esta cifra fue obtenida por Marc
Brysbaert6 quien acopló 190 estudios realizados entre 1901 y 2019 con idiomas que
utilizasen el alfabeto latino. Esto da como resultado un promedio de 4 palabras por
segundo. Se tiene entonces que, adicional a la caracterización del producto se cuenta con 6
6 Brysbaert, M. (2019). How many words do we read per minute? A review and meta-
analysis of reading rate (¿Cuántas palabras leemos por minuto? Un repaso y meta análisis
sobre la tasa de lectura). https://doi.org/10.31234/osf.io/xynwg
44
palabras: IVA, PVMP, Total y sus respectivos precios. Se considera que como valor inicial
es apropiado un total de 8 a 10 productos con 5 segundos por producto.
Construcción del sistema
Arquitectura del sistema
A partir del diseño se plantea la siguiente arquitectura para el desarrollo:
Diagrama 13. Arquitectura propuesta
En la figura, se puede observar cómo se direccionan los listados de productos a cada
componente. Se tiene que cada Arduino maestro es identificado por un número de cabecera
entre 0 y 254 que es el máximo de conexiones que puede manejar un único punto de
acceso, adicionando el broadcast quien toma la posición 255. Los esclavos son
identificados con un número entre 1 y 127 que es el máximo de dispositivos que soporta el
bus I2C de un Arduino UNO, siendo la dirección 0x00 el broadcast de este protocolo. Este
número será nombrado “número de esclavo” en este documento. La dirección de los
maestros es referida como “0” en el diagrama de arquitectura, pero en la realidad un
maestro no tiene dirección en el bus. Finalmente, cada pantalla conectada a cada Arduino
45
recibe un número entre 0 y 6 en el caso de un maestro y entre 0 y 7 para los esclavos,
dependiendo del pin Enable con el que se encuentran comunicados.
Según estos números se tiene que, en el mejor de los casos:
• Pueden ser conectados a una red un máximo de 254 Arduinos UNO maestros.
• Pueden ser conectados a cada Arduino Maestro a través del bus I2C un máximo
de 126 Arduino esclavos.
• Pueden ser conectadas hasta 7 pantallas en el caso de los Arduinos Maestros7 y
hasta 8 pantallas en el caso de un Arduino Esclavo.
• Esto nos da proporciona máximo de 224.028 displays para el sistema.
El sistema también soporta una Arquitectura donde las pantallas LCD utilizan el bus
I2C, para esto, la comunicación entre Arduino utilizará el protocolo TTL en forma de anillo.
Diagrama 14. Arquitectura propuesta con pantallas I2C.
La ventaja principal de esta arquitectura es en el cableado, especialmente entre las
pantallas, ya que se reducen las cantidades de cables a utilizar de un máximo de 13 a
únicamente 4. La comunicación entre Arduino no puede utilizar el bus I2C debido a la
7 Debido a que el pin número 4 se encuentra reservado por el Escudo Ethernet.
46
duplicidad de direcciones en cuanto a los displays, por lo que es utilizado el protocolo TTL
donde es utilizado el relevo de mensajes para hacer llegar el listado de productos al
Arduino indicado. Se realizarán unas conexiones como indica el diagrama 10.
Estimación de costos
Sin pretender realizar un análisis de costos detallado, se pueden hacer las siguientes
apreciaciones:
El costo de un papel para impresión de etiquetas térmico, para 750 etiquetas se
aproxima a los 5$, esto junto a una impresora térmica de gama media que aproxima los
520$ dependiendo de la marca, con una industrial alcanzando los 2400$. Estos son gastos
para nada despreciables conociendo la cantidad de veces que es necesario actualizar estas
etiquetas en nuestra economía. Se deben tomar en cuenta también costos intangibles como
son el intercambio o extravío de etiquetas en el proceso de actualización por error humano.
47
48
Figura 8. Precios de equipos para imprenta de etiquetacion térmica y tasa de cambio8
8 Se debe considerar que esta tasa varia diariamente y es posible que los precios publicados no se vean
ajustados a ella al momento de lectura, tómese como un aproximado.
49
Con la arquitectura propuesta, se tienen los siguientes costos:
Tabla 7. Costo por equipos del sistema
Equipo Precio
Arduino UNO 23$
Ethernet Shield 25$
Pantalla LCD con luz trasera 2$
Adaptadores de Corriente (9V) 0.60$
Figura 9. Precios de equipos de un bloque
Para maximizar la eficiencia de los equipos a comprar, se recomienda utilizar el
máximo de pantallas por equipo y conectar la máxima cantidad de esclavos a un maestro
como sea posible. Tomando esto en cuenta se puede definir que un “bloque” para la
implementación del sistema está compuesto por al menos un Arduino UNO maestro, junto
a un Arduino UNO esclavo, conectados a 7 y 8 pantallas respectivamente, con un costo
aproximado total de 102$9 por bloque, para mostrar un estimado de 120 productos a razón
de 8 por pantalla, según el análisis realizado en este capítulo. El resto de componentes
necesarios para el funcionamiento tienen un costo gratuito: un navegador web y un SMBD,
ambos contando con varias opciones gratuitas.
9 Dos Arduino UNO (46$), un total de 15 pantallas (30$), un escudo Ethernet (25$) y dos adaptadores de
corriente alterna (1.20$)
50
Los costos de la implementación de este sistema se ven regidos por las condiciones y
distribución de cada negocio: ¿Se cuenta con puertos de internet para los anaqueles? ¿Se
tiene fácil acceso a la red eléctrica cerca de los anaqueles para dar poder a los equipos? ¿Se
requiere realizar un trabajo para instalar tomacorrientes adicionales? Estas son variables
que cada negocio deberá responder a la hora de implementar la solución.
51
Construcción del prototipo
Plataformas de desarrollo
Se desarrolló el prototipo utilizando el sistema operativo Windows 10 de 64 bits
haciendo uso de Visual Studio Code para el desarrollo de la página web y las peticiones a la
base de datos por sus excelentes extensiones para PHP y HTML+CSS. El servidor local de
la página web se alojó a través del servidor Apache usando el panel de control XAMPP, el
cual cuenta con uno pre-configurado. Así mismo, la base de datos también es alojada por
un servidor MySQL operado con este panel de control.
Arduino IDE
Para la programación del Arduino se usó la interfaz de desarrollo propietaria del
proyecto Arduino, ya que cuenta con librerías incluidas para el manejo de pantallas LCD y
conexión a internet, tanto Ethernet como por WiFi. El lenguaje utilizado por el Arduino es
C/C++, del cual ya se tenía conocimientos lo que facilitó el aprendizaje de las funciones
específicas para el Arduino.
Interfaz web
La interfaz web fue desarrollada utilizando HTML y CSS para la estructura y estilo
respectivamente, haciendo uso de una plantilla gratuita como fue mencionado durante la
descripción del diseño. Se utilizó PHP para conectar a la base de datos. Esta interfaz realiza
una petición inicial SQL a la base de datos para obtener un listado de todas las parejas de
Arduino y pantallas almacenados en ella para ser mostrados en una tabla, ubicando su
número de identificación de maestro, de esclavo y número de pantalla. Para el caso de un
hijo 0, se refiere a que es el maestro de ese grupo.
52
Figura 10. Pantalla principal del panel de control
En esta pantalla principal se tienen botones de creación de una pantalla, un botón de ver
y un botón para eliminar el registro. Para el caso de agregar una pantalla, se muestra una
ventana adicional pidiendo el Arduino al cual se le quiere asignar una nueva pantalla y el
número de esta misma, tomando en cuenta si es maestro o esclavo.
Figura 11. Adición de una pantalla
53
Se tiene también el botón de “Ver” el cual realiza la petición correspondiente para listar
los productos asignados a la pantalla en cuestión y también permite asignar productos a la
pantalla a partir de su código de barra.
Figura 12. Productos asignados a una pantalla
Figura 13. Agregar un producto nuevo a la pantalla seleccionada.
Se tiene también una vista para listar los productos que no tienen asignada una pantalla,
de utilidad para conseguir productos que por error humano fueron omitidos durante la carga
inicial o mantenimiento.
54
Figura 14. Productos sin asignar a una pantalla
Para efectos del prototipo, es posible también ver un listado de los productos
almacenados en la base de datos de ejemplo, así como agregar un producto nuevo.
Construcción del circuito
El circuito del prototipo fue ensamblado en un conjunto de placas de pruebas utilizando
cables de tipo puente para la facilidad en su construcción. Se utilizó un Arduino UNO junto
a un escudo de Ethernet para conectarse a la red a través de un repetidor WiFi por
comodidad del desarrollo como Arduino Maestro y un segundo Arduino UNO fue utilizado
para simular un esclavo, con su respectiva pantalla. Para el momento del ensamblaje no se
disponía de un dip-switch por lo que fue simulado utilizando cables aterrados o conectados
a 5V.
A continuación, se presenta una tabla con los componentes utilizados:
55
Tabla 8. Componentes utilizados en la construcción del circuito
Nombre Imagen Uso
Arduino UNO
Placa de desarrollo, el cual
pide, procesa y aloja los
listados de productos a
mostrar.
Cables Puente Macho a
Macho
Conexiones del circuito
Escudo Ethernet
Proporciona a la placa de
desarrollo Arduino UNO
con capacidades de conexión
a una red.
Pantalla LCD 20x4
Dispositivo de Salida.
Potenciómetro 10 K. Ohms
Controla el contraste de la
pantalla LCD.
56
Resistencia 220 Ohms
Limita el brillo de la luz
trasera de la pantalla.
Resistencias de 10K, 20K,
47K y 100K Ohms
Uso en el circuito R-2R del
dipswitch
Para la demostración de cómo podría verse en un anaquel de un comercio, se
construyó una pequeña maqueta que simule un anaquel de supermercado, con los productos
a mostrar encima de las pantallas. Los equipos se encuentran almacenados en una cesta a la
que fueron atornilladas las pantallas, con unos orificios en la parte trasera para la
alimentación eléctrica y de Ethernet.
Figura 15. Circuito del Prototipo
57
Figura 16. Puerto Ethernet del Escudo Ethernet
Figura 17. Repetidor Wifi con puerto Ethernet
58
Figura 18. Maqueta de anaquel con productos
Figura 19. Orificios para cableado al exterior
59
Programa del Arduino
Los algoritmos y por ende programas de Arduino cuentan con dos partes, el Setup y el
Loop, que significan configuración y bucle respectivamente. Un Arduino, desde su
encendido, ejecuta las instrucciones del setup una vez y al culminarse pasara a ejecutar las
instrucciones del bucle mientras permanezca encendido.
Según el diseño del sistema, cada Arduino debe ser programado con un identificador
numérico único el cual recibe del dipswitch, en la configuración también fue asignado el
tiempo de espera entre productos, la velocidad del barrido en caso que la caracterización
del producto supere los 20 caracteres y el tiempo que pasara antes de que el Arduino realice
su próxima actualización con la base de datos.
En el Setup, se realiza la configuración de los pines y se asignan las pantallas a los
pines conectados al pin Enable de cada una, se asegura que se encuentre conectado el
escudo Ethernet en el caso del maestro y se inician las librerías tanto de Ethernet como del
control de la LCD y del bus I2C, donde el maestro comprueba la cantidad de esclavos que
tiene. Durante este proceso, se muestra en pantalla la dirección IP del servidor, el número
de Arduino como su Rol y el número de la pantalla, como método de identificación rápida.
Figura 20. Setup de Arduino
Durante el Loop se asegura de que está conectado a la red antes de realizar la petición a
la base de datos. Posteriormente, el maestro realiza una petición a la dirección IP
seleccionada, donde pide los listados de sus esclavos para hacérselos llegar. Al finalizar la
transmisión a los esclavos, se comienzan a mostrar los productos.
60
Para la visualización de los productos, se imprime en la pantalla el nombre corto del
producto asignado en la primera línea. En la segunda línea se coloca la caracterización del
producto, esto incluye la marca y presentación. Si se da el caso que se superen los 20
caracteres, se realiza un barrido completo antes de pasar al siguiente producto. En las
demás líneas se muestra el PMVP o Precio Justo, el IVA y el precio total en este,
cumpliendo con la legislación venezolana10, alternándose entre PMVP e IVA por
restricciones de espacio.
Figura 21. Impresión de un producto de nombre corto
10 Puede encontrar esta legislación en el Capítulo II, bajo Bases Teóricas en Legislación Venezolana para la
presentación de Precios.
61
Figura 22. Impresión de un producto de nombre largo
62
Diagrama propuesto de funcionamiento
A continuación, se explica el flujo de interacción de un usuario con el sistema:
Diagrama 15. Flujo de interacción del cliente con el sistema
63
De particular importancia para que la interacción del cliente con el sistema sea
satisfactoria es que se deba lograr un balance adecuado entre la cantidad de pantallas a
colocar por grupo de productos para no inflar demasiado los costos de implantación, y
tampoco incluir muchos productos por pantalla, para evitar una situación donde un cliente
pierde mucho tiempo esperando a que cicle un listado muy grande. Para esta segunda
situación puede acelerarse la velocidad a la que cicla la pantalla, pero se debe tener cuidado
de no entorpecer la experiencia para usuarios cuya capacidad de lectura sea lenta. En
cuanto al primer punto, establecimientos con una alta densidad de productos por metro
cuadrado, pueden hacer uso del sistema para promover sus productos más vendidos para no
crear embotellamiento en cuanto a la cantidad de productos por pantalla.
En los anexos del presente trabajo se encuentra elaborado un plan de pruebas que
consiste en una serie de requerimientos que se deben cumplir tanto a la hora de configurar
el sistema como a la hora de ponerlo en marcha para verificar que los estándares mínimos
requeridos para un funcionamiento esperado se cumplen. Con estas pruebas se busca
asegurar que los aspectos que pudieran generar problemas técnicos o de usabilidad puedan
ser verificados al implantar el sistema o en cualquier momento dado al seguir cada ítem del
plan.
Figura 23. Ejemplos de algunos aspectos a probar al implantar el sistema
64
CONCLUSIONES
− Se puede inferir que el sistema presentado es más conveniente para la clientela y los
empleados que las alternativas utilizadas actualmente, como el escanear un producto en
una estación particular del comercio o el reemplazo de etiquetas y/o listas de precios ya
que las pantallas son actualizables en cuanto a listados de productos y precios se refiere.
− Los requerimientos para un sistema de actualización de precios resultaron ser simples,
por lo que ahondar más en el desarrollo de sistemas de este tipo es factible para lidiar
con la problemática expuesta en el planteamiento del problema del presente trabajo.
− Los sistemas para empresas contienen una gran cantidad de campos de información
para sus productos, muchos de ellos importantes para una mejor gestión de la
información del comercio, pero muchos siendo irrelevantes para el cliente a la hora de
la selección de un producto. Por esta razón, fue importante filtrar campos selectos a la
hora de extraer la información de la base de datos del comercio.
− El sistema es altamente moldeable y pueden ser agregadas especificaciones según lo
que desee el gerente de un local, por ejemplo, mostrar más información en las pantallas,
o funciones de integridad como evitar actualizaciones durante horas de servicio para
evitar situaciones donde el precio que ve el cliente en caja difiere del que observó
anteriormente.
− El sistema proporciona mayor provecho para comercios con una menor densidad de
productos por metro cuadrado. Particularmente, en el caso de la Ferretería Imaya cuya
oferta de productos es elevada para el reducido espacio de muestra, no es viable la
implantación del sistema. Sin embargo, otro tipo de comercio, con productos de mayor
tamaño o menor cantidad de productos pueden ver beneficios más substanciales al
implantar este sistema.
− Para el control de caracteres en una pantalla LCD pequeña, un microcontrolador es la
opción más económica para cubrir las necesidades del sistema, no obstante, se reconoce
que el dispositivo utilizado en la construcción prototipo no es el apropiado debido a las
capacidades de memoria del mismo.
− A pesar de que existe un estándar para el manejo de una pantalla LCD a través de un
microcontrolador, este siendo el Hitachi HD44780, existen distintos tipos de interfaces,
como aquellas que utilizan el bus I2C, lo que permitió generar configuraciones que
65
favorecían distintas necesidades, o según el presupuesto de quien quiera implementar el
sistema.
− Se puede verificar que el campo de automatización, específicamente en los comercios,
se encuentra aún en sus etapas prototípicas y especializadas. Principalmente, se observa
que la implantación de proyectos de esta área son la mayor limitante para el desarrollo y
a pesar de no formar parte de los objetivos de este proyecto, se tuvo en cuenta durante
el desenvolvimiento del mismo, lo que llevó a decisiones con respecto al diseño y uso
de pines en los microcontroladores.
− La cantidad de memoria disponible resultó ser uno de los limitantes más grandes
durante el desarrollo del prototipo debido a la longitud promedio del listado de los
productos. Esto puede ser solucionado con la adquisición de placas con mejores
especificaciones a las del Arduino utilizado en este proyecto, tales como el Arduino
Nano 33 IoT que cuenta con capacidades de WiFi y mayor capacidad de memoria como
mejora a los maestros del sistema, y el Arduino Nano que también posee una mayor
memoria, a pesar de ser más pequeña, como mejora a los esclavos.
− La conexión del microcontrolador a la red a través de WiFi permitiría la implantación
del sistema a lugares donde una conexión con Ethernet puede resultar incomoda o
imposible, por lo que se recomienda utilizar equipos con WiFi en la medida de lo
posible.
66
RECOMENDACIONES
− En caso de que se quiera reducir el tiempo de espera evitando los barridos con los
identificadores de productos superiores a 20 caracteres, se puede crear un estándar para
abreviar el nombre de los productos, tomando en cuenta la memoria y espacio en
pantalla limitados con los que cuentan las pantallas. Por ejemplo, a través de la
eliminación de algunas letras: “Líquido – Liq” o “Con – c/”.
− Si se desea dar la opción al cliente de desplazarse en el listado de productos de una
pantalla, puede ajustarse el diseño para incluir dos botones ubicados cerca de las
pantallas que permitan pasar al producto siguiente o al producto anterior.
− Tomar en consideración la integridad y seguridad del sistema implementando medidas
para el resguardo del mismo.
− Se recomienda implementar este sistema a un negocio que tenga un enfoque self-
service, donde un cliente se desplace a través del local y encuentre productos
identificados para llevarlos consigo para su compra en un punto de salida del negocio,
sin necesidad de interactuar con empleados antes de este punto.
− Si se desea reducir la carga sobre el servidor, se recomienda cambiar el diseño de
actualizaciones de un sistema por peticiones a uno por evento, de manera que las
pantallas sean actualizadas al momento de realizar un cambio en el módulo web.
67
REFERENCIAS
1. Amazon GO https://www.amazon.com/b?ie=UTF8&node=16008589011
2. Arnold Cathalifaud, Marcelo, & Osorio, Francisco (1998). Introducción a los
Conceptos Básicos de la Teoría General de Sistemas. Cinta de Moebio, (3), Disponible
en: https://www.redalyc.org/articulo.oa?id=101/10100306
3. Brysbaert, M. (2019). How many words do we read per minute? A review and meta-
analysis of reading rate (¿Cuántas palabras leemos por minuto? Un repaso y meta
análisis sobre la tasa de lectura). https://doi.org/10.31234/osf.io/xynwg
4. CircuitBasics Arduino LCD Setup and Programming Guide (Guía de programación de
Arduino para LCD) Recuperado de: http://www.circuitbasics.com/how-to-set-up-an-
lcd-display-on-an-arduino/
5. Documentación del controlador Hitachi HD44780:
https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
6. Homgen Ch T (2010). Contabilidad. Editorial Félix Varela. La Habana.
7. Jacqueline Hurtado de Barrera (21/2/2008) La Investigación Proyectiva Recuperado de
http://investigacionholistica.blogspot.com/2008/02/la-investigacin-proyectiva.html
(Consulta realizada el 22 de noviembre de 2019).
8. Kevin Lisota (5 de abril de 2016). The Supermarket of the future, driven by Kinect
Sensors, touchscreens & digital displays. (El supermercado del futuro, propulsado por
sensores Kinect, pantallas táctiles y digitales) Nueva Orleans, EEUU recuperado de:
https://www.geekwire.com/2016/supermarket-of-the-future/
9. Modelo de Arduino utilizado en el desarrollo del proyecto:
https://store.arduino.cc/usa/arduino-uno-smd-rev3
10. Moya Navarro, Marcos Javier. Control de inventarios y teoría de colas, EUNED, 1999
11. Nina Pullman, (16 de enero de 2017) Swedish Supermarkets replace sticky labels with
laser marking (Supermercados Suecos reemplazan pegatinas por marcas hechas a laser)
Recuperado de: https://www.theguardian.com/sustainable-business/2017/jan/16/ms-
and-swedish-supermarkets-ditch-sticky-labels-for-natural-branding
68
12. Página oficial de los microcontroladores Arduino: https://store.arduino.cc
13. Pantalla LCD compatible con controlador Hitachi 44780:
http://www.eu.diigiit.com/lcd-screen-20x4-characters
69
ANEXOS
Tablas de microcontroladores
Tabla 9. Especificaciones del Arduino Uno
Microcontrolador ATmega328P
Voltaje Operativo 5 V
Voltaje de Entrada Recomendado 7-12 V
Voltaje de Entrada Limite 6-20 V
Pines de E/S Digitales 14 (6 con salida de modulación de ancho
de pulsos o PWM)
Pines de E/S PWM 6
Pines de entrada analógicos 6
Corriente DC por pin E/S 20 mA
Corriente DC por pin de 3.3V 50 mA
Memoria flash 32KB (0.5KB ocupados por el boot)
SRAM 2KB
EEPROM 1KB
Velocidad de Reloj 16 MHz
LED_BUILTIN* 13
Longitud 68.6 mm
Ancho 53.4 mm
Peso 25 g
*Indica a qué número de pin está conectado la luz LED del Arduino
Fuente: https://store.arduino.cc/usa/nano-33-iot
70
Plan de Pruebas
Pruebas de funcionalidad
Tabla A1. Verificación del circuito
Tarea Resultado
Conectar a una fuente de poder el Arduino (Encender el sistema)
Verificar que en la LCD se muestran los caracteres de preparación
correctamente, esto incluye el IP al que debe ajustarse el servidor, el
número de Arduino, el número de pantalla y el número de esclavo.
Comprobar que no son mostrados mensajes de error con respecto a la
conexión Ethernet
Tabla A2. Gestionar Pantallas
Tarea Resultado
Crear una Pantalla
Ver información de una Pantalla
Editar una Pantalla
Verificar que puede asignarle un producto a la pantalla creada
Eliminar una Pantalla
Tabla A3. Asignar un Producto de características cortas a una Pantalla
Tarea Resultado
Asignar un producto de nombre corto a una pantalla
Encender el sistema
Verificar que la información mostrada en pantalla fue la asignada
71
Tabla A4. Asignar un Producto con características largas a una Pantalla
Tarea Resultado
Asignar un producto de nombre largo a una pantalla
Encender el sistema
Verificar que la información mostrada en pantalla fue la asignada
Comprobar que el nombre del producto sea desplazado para mostrarlo
completo
Tabla A5. Asignar varios Productos a una Pantalla
Tarea Resultado
Asignar una serie de productos a una pantalla.
Encender el sistema.
Verificar que la información mostrada en pantalla fue la asignada
Comprobar que los productos son ciclados según lo asignado
Pruebas de Usabilidad
Tabla A6. Ajustar el contraste de la pantalla LCD
Tarea Resultado
Ajustar con el potenciómetro la cantidad de voltaje que recibe la pantalla.
Verificar que los caracteres en la LCD pueden leerse correctamente.
Tabla A7. Comprobar el ángulo de visión de la pantalla LCD
Tarea Resultado
Colocar la pantalla LCD junto a los productos
Verificar que los caracteres son visibles desde los ángulos de visión
relevantes
72
Tabla A8. Ajustar la velocidad de ciclado para nombres de producto largos
Tarea Resultado
Configurar en la programación del Arduino los microsegundos que tarda
en desplazar el nombre de un producto
Actualizar el Arduino con el programa corregido
Asignar un nombre de producto largo a la pantalla y Arduino
actualizados
Comprobar que la nueva velocidad de desplazamiento es adecuada
Tabla A9. Ajustar la velocidad de ciclado de productos
Tarea Resultado
Configurar en la programación del Arduino los microsegundos que tarda
en cambiar de productos el Arduino
Actualizar el Arduino con el programa corregido
Asignar más de un producto a la pantalla y Arduino actualizado
Comprobar que la nueva velocidad de cambio es adecuada
Tabla A10. Ajustar la cantidad de productos por pantalla
Tarea Resultado
Asignar Productos a una pantalla
Reiniciar o esperar a la actualización automática del Arduino
Probar que la cantidad de productos por pantalla es adecuada