sistema de actualización de precios mediante pantallas lcd

82
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

Upload: others

Post on 02-Jul-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistema de actualización de precios mediante pantallas LCD

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

Page 2: Sistema de actualización de precios mediante pantallas LCD
Page 3: Sistema de actualización de precios mediante pantallas LCD

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.

Page 4: Sistema de actualización de precios mediante pantallas LCD

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

Page 5: Sistema de actualización de precios mediante pantallas LCD

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

Page 6: Sistema de actualización de precios mediante pantallas LCD

v

Pruebas de funcionalidad ............................................................................................... 70

Pruebas de Usabilidad .................................................................................................... 71

Page 7: Sistema de actualización de precios mediante pantallas LCD

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

Page 8: Sistema de actualización de precios mediante pantallas LCD

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

Page 9: Sistema de actualización de precios mediante pantallas LCD

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

Page 10: Sistema de actualización de precios mediante pantallas LCD

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.

Page 11: Sistema de actualización de precios mediante pantallas LCD

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.

Page 12: Sistema de actualización de precios mediante pantallas LCD

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/

Page 13: Sistema de actualización de precios mediante pantallas LCD

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.

Page 14: Sistema de actualización de precios mediante pantallas LCD

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.

Page 15: Sistema de actualización de precios mediante pantallas LCD

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.

Page 16: Sistema de actualización de precios mediante pantallas LCD

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.

Page 17: Sistema de actualización de precios mediante pantallas LCD

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)

Page 18: Sistema de actualización de precios mediante pantallas LCD

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

Page 19: Sistema de actualización de precios mediante pantallas LCD

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/

Page 20: Sistema de actualización de precios mediante pantallas LCD

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.

Page 21: Sistema de actualización de precios mediante pantallas LCD

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/

Page 22: Sistema de actualización de precios mediante pantallas LCD

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

Page 23: Sistema de actualización de precios mediante pantallas LCD

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.

Page 24: Sistema de actualización de precios mediante pantallas LCD

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

Page 25: Sistema de actualización de precios mediante pantallas LCD

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

Page 26: Sistema de actualización de precios mediante pantallas LCD

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.

Page 27: Sistema de actualización de precios mediante pantallas LCD

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.

Page 28: Sistema de actualización de precios mediante pantallas LCD

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.

Page 29: Sistema de actualización de precios mediante pantallas LCD

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

Page 30: Sistema de actualización de precios mediante 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

Page 31: Sistema de actualización de precios mediante pantallas LCD

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.

Page 32: Sistema de actualización de precios mediante pantallas LCD

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

Page 33: Sistema de actualización de precios mediante pantallas LCD

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.

Page 34: Sistema de actualización de precios mediante pantallas LCD

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.

Page 35: Sistema de actualización de precios mediante pantallas LCD

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

Page 36: Sistema de actualización de precios mediante pantallas LCD

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.

Page 37: Sistema de actualización de precios mediante pantallas LCD

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

Page 38: Sistema de actualización de precios mediante 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.

Page 39: Sistema de actualización de precios mediante pantallas LCD

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.

Page 40: Sistema de actualización de precios mediante pantallas LCD

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.

Page 41: Sistema de actualización de precios mediante pantallas LCD

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

Page 42: Sistema de actualización de precios mediante pantallas LCD

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

Page 43: Sistema de actualización de precios mediante pantallas LCD

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.

Page 44: Sistema de actualización de precios mediante pantallas LCD

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:

Page 45: Sistema de actualización de precios mediante pantallas LCD

35

Diagrama 6. Diagrama de Flujo del Arduino Maestro

Page 46: Sistema de actualización de precios mediante pantallas LCD

36

Diagrama 7. Diagrama de Flujo del Arduino Esclavo

Page 47: Sistema de actualización de precios mediante pantallas LCD

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

Page 48: Sistema de actualización de precios mediante pantallas LCD

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,

Page 49: Sistema de actualización de precios mediante pantallas LCD

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.

Page 50: Sistema de actualización de precios mediante pantallas LCD

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

Page 51: Sistema de actualización de precios mediante pantallas LCD

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

Page 52: Sistema de actualización de precios mediante pantallas LCD

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

Page 53: Sistema de actualización de precios mediante pantallas LCD

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

Page 54: Sistema de actualización de precios mediante pantallas LCD

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

Page 55: Sistema de actualización de precios mediante pantallas LCD

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.

Page 56: Sistema de actualización de precios mediante pantallas LCD

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.

Page 57: Sistema de actualización de precios mediante pantallas LCD

47

Page 58: Sistema de actualización de precios mediante pantallas LCD

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.

Page 59: Sistema de actualización de precios mediante pantallas LCD

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$)

Page 60: Sistema de actualización de precios mediante pantallas LCD

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.

Page 61: Sistema de actualización de precios mediante pantallas LCD

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.

Page 62: Sistema de actualización de precios mediante pantallas LCD

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

Page 63: Sistema de actualización de precios mediante pantallas LCD

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.

Page 64: Sistema de actualización de precios mediante pantallas LCD

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:

Page 65: Sistema de actualización de precios mediante pantallas LCD

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.

Page 66: Sistema de actualización de precios mediante pantallas 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

Page 67: Sistema de actualización de precios mediante pantallas LCD

57

Figura 16. Puerto Ethernet del Escudo Ethernet

Figura 17. Repetidor Wifi con puerto Ethernet

Page 68: Sistema de actualización de precios mediante pantallas LCD

58

Figura 18. Maqueta de anaquel con productos

Figura 19. Orificios para cableado al exterior

Page 69: Sistema de actualización de precios mediante pantallas LCD

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.

Page 70: Sistema de actualización de precios mediante pantallas LCD

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.

Page 71: Sistema de actualización de precios mediante pantallas LCD

61

Figura 22. Impresión de un producto de nombre largo

Page 72: Sistema de actualización de precios mediante pantallas LCD

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

Page 73: Sistema de actualización de precios mediante pantallas LCD

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

Page 74: Sistema de actualización de precios mediante pantallas LCD

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

Page 75: Sistema de actualización de precios mediante pantallas LCD

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.

Page 76: Sistema de actualización de precios mediante pantallas LCD

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.

Page 77: Sistema de actualización de precios mediante pantallas LCD

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

Page 78: Sistema de actualización de precios mediante pantallas LCD

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

Page 79: Sistema de actualización de precios mediante pantallas LCD

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

Page 80: Sistema de actualización de precios mediante pantallas LCD

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

Page 81: Sistema de actualización de precios mediante pantallas LCD

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

Page 82: Sistema de actualización de precios mediante pantallas LCD

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