Este repositorio contiene los archivos necesarios para replicar el prototipo de una máquina de café automatizada basada en Raspberry Pi. Desarrollado como proyecto final del curso de Prototipado de Sistemas Embebidos, del Técnico Básico en Desarrollo de Sistemas Embebidos de la universidad Fidélitas. Incluye la integración de múltiples componentes electrónicos, la optimización del uso de GPIO mediante integrados como el 74HC595 y el diseño de una interfaz gráfica funcional y amigable.
- Requisitos de Hardware
- Requisitos de Software
- Estructura del Repositorio
- Configuración de Raspberry Pi
- Instalación de Software en Raspberry Pi
- Documentación Específica
- Raspberry Pi 4/5 con GPIO habilitado.
- Componentes electrónicos:
- 4 botones (Arriba, Abajo, Seleccionar, Iniciar)
- 2 LEDs (proceso de pago, temperatura del agua)
- Sensor de proximidad (HC-SR04)
- Display 7 segmentos (controlado con 74HC595)
- Barra LED (controlada con 74HC595)
- Servo (para simular colocación del vaso)
- LCD I2C (16x2)
- Buzzer pasivo
- Fuente de alimentación adecuada para la Raspberry Pi.
- Protoboard y cables de conexión.
- Sistema Operativo: Raspberry Pi OS (32/64 bits).
- Librerías necesarias:
gpiozerotkintersmbus2Freenove_DHT
- Fritzing para visualizar el diagrama del circuito.
- Python 3.7 o superior.
- Configuraciones adicionales:
- Habilitar el protocolo I2C utilizando
sudo raspi-config. - Instalar las herramientas I2C con
sudo apt-get install i2c-tools. - Instalar el módulo SMBus con
sudo apt-get install python3-smbus.
- Habilitar el protocolo I2C utilizando
- Código base de Freenove para el manejo de DHT11 y LCD1602.
├── README.md # Descripción general del proyecto.
├── Circuito/
│ ├── Diagrama.fzz # Archivo Fritzing del circuito.
│ └── README.md # Explicación del circuito.
├── Software/
│ ├── CafeTechGUI.py # Interfaz gráfica en Tkinter.
│ ├── CafeTechBL.py # Lógica y control de componentes.
│ ├── CafeTechRecetas.py # Recetas de bebidas en formato JSON.
│ ├── LCD1602.py # Módulo para el manejo de la pantalla LCD I2C.
│ ├── DHT11/ # Carpeta para manejar el sensor DHT11.
│ ├── WiringPi/ # Carpeta con dependencias de WiringPi.
│ ├── libdht.so # Biblioteca compartida para el sensor DHT11.
│ ├── setup.py # Script de configuración de la biblioteca del DHT11.
│ ├── DHT.h # Archivo de cabecera para el sensor.
│ ├── DHT.c # Implementación en C para el manejo del sensor.
│ └── DHT.o # Archivo objeto compilado del sensor.
└──
-
Preparar el sistema operativo de Raspberry Pi:
- Instalar Raspberry Pi OS en una tarjeta microSD y configurarlo en tu Raspberry Pi.
- Actualizar los paquetes del sistema:
sudo apt-get update sudo apt-get upgrade
-
Habilitar el protocolo I2C:
- Ejecutar:
sudo raspi-config
- Seleccionar:
3 Interfacing Options > I5 I2C > Yes - Reiniciar la Raspberry Pi después de habilitar el protocolo I2C.
- Ejecutar:
-
Instalar las librerías necesarias:
sudo apt-get install python3-gpiozero python3-smbus i2c-tools
-
Verificar la conexión de la Raspberry Pi:
- Ejecutar el siguiente comando para encontrar la IP del dispositivo:
hostname -I
- Conectar por SSH:
ssh <usuario>@<IP_de_la_Raspberry>
- Ejecutar el siguiente comando para encontrar la IP del dispositivo:
-
Clonar este repositorio::
git clone https://github.com/JoseMoyaCR/CafeTechMachine.git cd CafeTechMachine -
Configurar un entorno virtual (opcional)::
- Crear y activar un entorno virtual:
python -m venv .cafetechmachine source .cafetechmachine/bin/activate
- Crear y activar un entorno virtual:
-
Ejecución del programa:
- Ejecutar el archivo principal:
python3 Software/CafeTechGUI.py
- Ejecutar el archivo principal: