Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sodi0/cajadeseguridad
Caja fuerte controlada mediante una aplicación Android y comunicación basada en el protocolo MQTT bajo una arquitectura broker. Utiliza un ESP8266, servo motor y buzzer para gestionar el acceso. La app almacena un PIN de 4 dígitos en Shared Preferences y se comunica con la NodeMCU a través de MQTT usando un cliente como MQTTX.
https://github.com/sodi0/cajadeseguridad
android-app arduino buzzer esp8266 iot java mqtt mqttx nodemcu servo-motor sharedpreferences smart-lock
Last synced: 4 days ago
JSON representation
Caja fuerte controlada mediante una aplicación Android y comunicación basada en el protocolo MQTT bajo una arquitectura broker. Utiliza un ESP8266, servo motor y buzzer para gestionar el acceso. La app almacena un PIN de 4 dígitos en Shared Preferences y se comunica con la NodeMCU a través de MQTT usando un cliente como MQTTX.
- Host: GitHub
- URL: https://github.com/sodi0/cajadeseguridad
- Owner: Sodi0
- Created: 2024-11-07T11:10:57.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-12-08T22:10:58.000Z (2 months ago)
- Last Synced: 2024-12-08T23:19:28.832Z (2 months ago)
- Topics: android-app, arduino, buzzer, esp8266, iot, java, mqtt, mqttx, nodemcu, servo-motor, sharedpreferences, smart-lock
- Language: C++
- Homepage:
- Size: 772 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Proyecto Caja Fuerte Controlada por App Android
Este proyecto desarrolla una caja fuerte inteligente controlada remotamente mediante una aplicación Android escrita en Java. Utiliza un microcontrolador ESP8266 para conectarse a una red WiFi y emplea el protocolo MQTT para recibir comandos y controlar un mecanismo de bloqueo mediante un servomotor. Además, ofrece retroalimentación sonora y visual con un buzzer y una pantalla LCD.
---
## **Características Principales**
- **Conectividad WiFi**: Permite al ESP8266 conectarse a redes WiFi para comunicación remota.
- **Protocolo MQTT**: Facilita el intercambio de comandos y estado entre el microcontrolador y el broker.
- **Control de Servomotor**: Gestión precisa del mecanismo de bloqueo.
- **Retroalimentación con buzzer**: Señales audibles para confirmar acciones.
- **Pantalla LCD I2C**: Indica el estado actual de la caja (abierta/cerrada).
- **Integración con Node-RED**: Dashboard básico para monitorear y controlar la caja fuerte.---
## **Prerrequisitos**
Antes de comenzar, asegúrate de contar con:
- IDE de Arduino instalado.
- Librerías necesarias: ESP8266WiFi, PubSubClient, Servo, ArduinoJson, Wire, LiquidCrystal_I2C.
- Broker MQTT funcional (público o privado).
- Aplicación Android instalada y configurada para interactuar con el servidor MQTT.---
## **Componentes del Proyecto**
### **Hardware**
- **ESP8266**: Proporciona conectividad WiFi y capacidad de procesamiento.
- **Servomotor**: Controla la apertura y cierre de la caja.
- **Pantalla LCD I2C**: Muestra el estado en tiempo real.
- **Buzzer**: Da retroalimentación sonora.
- **Fuente de alimentación**: Suministra energía al ESP8266 y componentes adicionales.### **Software**
- **Arduino IDE**: Plataforma utilizada para programar el ESP8266.
- **Aplicación Android**: Interfaz de usuario para enviar comandos.
- **Node-RED Dashboard**: Control y monitoreo visual.---
## **Configuración del Proyecto**
1. **Configura el código**:
- Abre el archivo del proyecto en el IDE de Arduino.
- Configura las credenciales de tu red WiFi (`SSID` y `contraseña`).
- Define la dirección del broker MQTT en el código.
2. **Carga el código en el ESP8266**:
- Conecta el ESP8266 a tu PC mediante un cable USB.
- Verifica y carga el programa desde el IDE.
3. **Prepara el hardware**:
- Conecta el servomotor, pantalla LCD y buzzer a los pines definidos.
- Conecta el ESP8266 a una fuente de alimentación confiable.
4. **Configura el broker MQTT**:
- Utiliza un broker público como `broker.emqx.io` o configura uno propio.---
## **Protocolo de Comunicación**
El sistema utiliza el formato JSON para enviar y recibir datos. Ejemplos:
- **Comando de apertura:** `{ "msg": "ABIERTO" }`
- **Comando de cierre:** `{ "msg": "CERRADO" }`
- **Estado de la caja:** `{ "estado": "CERRADO" }`---
## **Diagrama de Flujo**
```mermaid
flowchart TD
A[Aplicación Android] -->|Envía comandos MQTT| B[Broker MQTT]
B -->|Transmite mensaje| C[ESP8266]
C -->|Controla componentes| D[Servo y Buzzer]
C -->|Actualiza estado| E[Pantalla LCD]
C -->|Publica estado| B
B -->|Notifica estado| A
```