This project is an integrated industrial automation system that automatically classifies and sorts products via QR Code scanning. It combines image capture, a robust backend, and Arduino-based physical control to optimize production line workflows.
- Course: Computer Engineering
- University: Faculdade Metropolitana de Manaus (FAMETRO)
- Duration: 5 Years (2020 - 2025)
-
Capture and Decoding:
- Camera with OpenCV for QR Code scanning and preprocessing.
- Noise filtering and perspective correction for high accuracy.
-
Backend (FastAPI):
- Asynchronous REST API for data reception, validation, and storage.
- Serial communication with Arduino for actuator commands.
- SQLite database for persistence and analytics.
- Detailed logging for monitoring and debugging.
- CORS enabled for frontend integration.
-
Arduino Firmware:
- Servo and conveyor motor control based on backend commands.
- JSON message parsing from serial communication.
- LCD feedback for real-time system status.
-
Frontend:
- React Native dashboard for real-time stats and history visualization.
- Real-time QR Code reading and automatic validation.
- Physical sorting of products by category (e.g., smartphones, tablets).
- Data persistence with analytics (success rate, average processing time, etc).
- Robust serial communication with auto-reconnect.
- Responsive mobile app for monitoring.
| Component | Technologies / Libraries |
|---|---|
| Backend | Python, FastAPI, SQLite, PySerial |
| Capture | OpenCV, Pyzbar |
| Firmware | Arduino (Servo.h, ArduinoJson, Wire.h) |
| Frontend | React Native, Expo |
| Logging | Python logging with configurable levels |
- Install dependencies:
pip install fastapi uvicorn pyserial sqlite3 python-multipart- Set the Arduino serial port (
arduino_port) in the code. - Run the server:
uvicorn main:app --reload- Upload the firmware via Arduino IDE.
- Follow Expo and React Native setup instructions to run the app.
/backend # FastAPI backend and SQLite database
/arduino # Arduino firmware (.ino files)
/frontend # React Native mobile app
/docs # Technical documentation and diagrams
- Modular architecture designed for scalability and easy adaptation.
- Optimized serial communication for low latency and reliability.
- Monitoring and logging for proactive maintenance.
For questions or collaborations, reach out: arcemateuss@gmail.com
Feel free to open issues or contribute! 🚀