- 1. Table of content
- 2. What is this?
- 3. Setup & Requirements
- 4. How to use it?
- 5. Support / Feedback
- 6. How to contribute?
- 7. Sponsor me!
This Node-RED and Part-DB based tool is a sophisticated inventory management system that integrates with LED strips to create a "Pick and Light" solution. It's designed to streamline inventory tracking and item location in warehouses or storage facilities.
-
LED-Guided Picking: The system uses LED strips to visually indicate the location of items in storage.
-
Real-Time Inventory Tracking: It maintains up-to-date information on item locations and quantities.
-
User Interface: A dashboard allows users to input and retrieve inventory data easily.
-
Database Integration: Connects to a MySQL database for persistent storage of inventory information.
-
MQTT Communication: Utilizes MQTT for real-time updates and control of the LED system.
-
HTTP API: Provides endpoints for external systems to interact with the inventory data.
-
Item Lookup: When a user searches for an item, the system queries the database for its location.
-
Visual Indication: The corresponding LED strip segment lights up, guiding the user to the correct shelf or bin.
-
Automatic Shutdown: LEDs turn off automatically after a set period to conserve energy.
-
Data Collection: The system collects and stores information about each pick operation.
-
Flexible Configuration: Users can adjust LED strip length and shelf width through the dashboard.
- Warehouse Management: Speeds up order picking and reduces errors in large warehouses.
- Retail Stockrooms: Helps staff quickly locate items for restocking or customer requests.
- Manufacturing: Assists in locating parts or components in assembly lines.
- Libraries: Aids in finding books or resources in large collections.
- Increased Efficiency: Reduces time spent searching for items.
- Error Reduction: Minimizes picking errors by providing visual guidance.
- Scalability: Can be adapted to various storage layouts and sizes.
- Integration: Easily integrates with existing inventory management systems.
This tool combines hardware (LED strips) with software (Node-RED flows) to create a powerful, user-friendly inventory management solution that can significantly improve operational efficiency in various storage and retrieval scenarios.
Links:
Part-DB - https://github.com/Part-DB/Part-DB-server
Node-Red - https://nodered.org
ViolentMonkey - https://violentmonkey.github.io
- ViolentMonkey Browser Extension
- Docker and Docker Compose installed
- MQTT Broker
- If you want to use a Reverse Proxy like i do with Traefik it should be up and running
- create a new Subdomain for example parts.yourwebsite.com
- ESP32 or ESP8266 (https://amzn.to/41AD0Oo) with WLED installed
- WS2812B LED Strip (https://amzn.to/49HctAZ)
- Part Magazine (https://amzn.to/4gi3Gbj)
-
Create and Run Node-Red Container with the provided docker-compose.yml file (change the reverse proxy setup)
-
Import Node-Red Flows and adapt them to your system (mqtt settings etc.)
-
Create Part-DB Container with the provided docker-compose.yml file
-
Adapt the environment Variables accordingly
-
First start the Container with the Default Database:
- DATABASE_URL=sqlite:///%kernel.project_dir%/var/db/app.db
-
Create and Run MariaDB Container with the provided docker-compose.yml file
-
Jump into the Container with:
docker exec -it mariadb mariadb -u root -p -
Create and use Database partdb:
CREATE DATABASE IF NOT EXISTS partdb; USE partdb;
-
Create new Table:
CREATE TABLE IF NOT EXISTS led_mapping ( part_id INT PRIMARY KEY, led_position INT NOT NULL, UNIQUE (led_position) );
-
Proof:
SHOW TABLES; DESCRIBE parts; DESCRIBE led_mapping; SHOW TRIGGERS;
-
Exit Container with:
exit -
Import the two Triggers with the provided Trigger.sql files
-
Stop the PartDB Container
-
Change the PartDB docker-compose.yml and update the Database_URL to:
- DATABASE_URL=mysql://partdb:root@mariadb:3306/partdb
-
Start the PartDB Container
-
Jump into Container and migrate the Database:
docker exec --user=www-data partdb php bin/console doctrine:migrations:migrate -
Install the ViolentMonkey Browser extension
-
Import the ViolentMonkey scripts from the provided file
-
HAVE FUN SORTING THINGS
Any bugs? Feature request? Message me here or click on the "Issues" tab here on the GitHub repository!
Fork the repository and create PR's.
