electronics component organization: database + cabinets with multiplexed LEDs

disclaimer: total newbie to arduino and programming

Let's get that out of the way first, I'm totally new to arduino and programming. Sure I have watched a few youtube videos with diy projects that happened to use arduino so I have a basic understanding of the hardware but that is about it.

For my hobbies and my part time job I work with lots and lots of different components, hundreds of the tiny buggers. Right now I have them all organized component per component in those handy little organizing units with 10 columns and 10 rows of little removable black plastic bins.
Problem is my sieve of a brain has a hard time remembering where I put everything and usually spend quite some time gathering my components for a project.

Looking around for solutions I came across the usual suspects of inventory management systems etc. But not really what I was looking for. Then I came across a video from the " D.I.Y. or DIE " youtube channel with a pretty interesting solution.

A database with search function tied to a arduino with multiplexed LEDs over bluetooth. Just type in the component you are looking for and the LED positioned over the bin with the component in question will light up.

In the video description the maker of the video suggests going to his facebook page to message him there for the final UI program and code. Problem is that page no longer exists nor does his youtube page allow messages to be sent to him.

So my question is:
How do I go about creating such a database with search function tied to arduino with multiplexed LEDs?

Seeing as he showed which hardware parts to use for the arduino, creating the hardware side (in a tiny bit more elegant way) won't be a problem for me. But the database and code is completely out of my range of knowledge.

Hope there are no other similar threads open at the moment, i did search before posting but only found read-only posts about something vaguely similar.

Have a great day,
Rick.

P.S. Please forgive my total newbness.

The database requires a PC or similar system, it won't perform very well on an Arduino. Chose a database system and applicable development environment, and most of your questions may be answered already in the database documentation and examples. For further assistance go to a forum related to your database or databases in general.

You have to implement (at least) two database functions, one for build and maintenance of the DB, and one for the retrieval of the storage location.

So my question is:
How do I go about creating such a database with search function tied to arduino with multiplexed LEDs?

What relational database management system(s) are you familiar with? There are several free ones available - MySQL, SQL Server (from Microsoft), Oracle (from Oracle), PostGRE, etc.

Use the one that you are familiar with to create the database.

As for the UI, I'd use C# (and SQL Server), to build the UI, execute the SQL query (to get the compartment, row, and column where the component is), and to send that data to the serial port (where the master Arduino is listening).

Don't forget that it is equally important to be able to add a new component to the database, with appropriate compartment, row, and column.

PaulS:
As for the UI, I'd use C# (and SQL Server), to build the UI, execute the SQL query (to get the compartment, row, and column where the component is), and to send that data to the serial port (where the master Arduino is listening).

Don't forget that it is equally important to be able to add a new component to the database, with appropriate compartment, row, and column.

That the database would have to be on a pc was a given, just had no idea where to start to make a UI that accesses the database and then talks to the arduino. Thanks for that.

Off to the C# tutorials!! haha.

My question then is:

How do I go about writing the code for the arduino to receive commands over bluetooth and use those commands to light up the LEDs wired up in a grid?

The way I think I should be able to wire this up is:
Wire up each drawer cabinet individually as whole units in an array that is connected to the arduino.

So the code would have to identify unit # and X,Y coordinates and light up the corresponding LED.

Again sorry for the total newbness to arduino coding. (and coding in general)

Rick.

I fear that it ends up with your electronic (soldering) skills. Eventually you can find a kit for a LED matrix that fits your needs. Combining multiple grids is not a big problem.

A simplel solution were LED strips, with one LED per storage position. Or with a LED or two skipped between compartments...

I will offer that almost any database can import a file from a spreadsheet.

Then create a spreadsheet with all your parts. One long listing, multiple columns, as needed

Then you can make a form spreadsheet. on a new tab, not a different file.

Then a query line on that form.

When you type in your search, the form would highlight the box that would correspond to the tray in your bins.

Say, you wanted a 10uF cap, you put that in the search and on your spreadsheet, row 37, column K lights up.

You can pass that information to your master Arduino. and that will send out the value to your slaves and the LED in your bin would light.

To save you the headache about sending out to the NANO, you would use cell A1 as the address.
you can have A1 on a spreadsheet be the one cell to send to the Arduino, you type in a value there that corresponds to your search results and whatever is in A1 will be sent to the Arduino.
you can have a button into your Arduino so you press that and it sends a value back to zero out A1 and the light goes out.

The next step, is to have a microswitch showing that the bin has been pulled out.
and that is feed back to your NANO to your PC

you have ADD or DELETE - _____ number of parts

and add new part number : ____

getting your spreadsheet listing is probably easier than learning a full blown data base.
getting each page to do a thing would be some learning, but manageable.

I liken the learning curve for data bases to be like learning Hebrew so that you can study Japanese in order to write in Sumerian. (Hebrew is written right to left, Japaneses is top down in columns Sumerian is pictographs.)

Relational databases are collections of tables containing lists of data structs. No woodoo or Sanskrit required to manage that. In the current project a single table is sufficient.

DrDiettrich:
Relational databases are collections of tables containing lists of data structs. No woodoo or Sanskrit required to manage that. In the current project a single table is sufficient.

  • When someone states that something is possible, he is almost certainly right.
  • When he states that something is impossible, he is very probably wrong.
  • The only way of discovering the limits of the possible is to venture a little way past them into the impossible.
  • Any sufficiently advanced technology is indistinguishable from magic.

going with #4 any new technology to a person is sufficiently advanced as to be indistinguishable from magic.

the amount of training to become proficient in relational data bases in not much different than any other technology.

the root cause, the fundamental problem, the Universal Constant... is the meaning of words. if you have no other thing written on the wall in 2 foot high letters, it should be 'understand the meaning of the words'

in C++ you can say class, function, port, even code-tag for a hundred years, but the self taught may never understand what you are taking about. They most certainly will have no clue what you are talking about until they look up the meaning of the words. a Fundamental Law of the Universe, something most public school teachers are no clue about, is that day dreaming is the result of passing a word the student did not understand. yawing, YAWNING is a phenomena of passing a word you did not understand. You can prove that in a few minutes to yourself. Read some technology you have no clue about, knitting or dinosaurs.... you will be yawning and daydreaming in short order. Look up the definitions words you read and you stop daydreaming and stop yawning.

technology is often more concept and meaning that it is things you can touch. We watch this day after day here. a noob is told to use code tags. it might as well be written in Hebrew or Japanese. but, and here is the kicker. when a person recognizes the letters they ASSume they know the word and build their house of cards on a non-existent foundation. it would be better to have used a word that is in Hebrew and not an idiom !

the World Class guys on here that post one sentence responses have deep understanding and deep meaning in that one sentence. it can say more than a chapter in a book.... once you know the meaning of the words.

our OP is asking to learn 2 new technologies. my point is that there is a lot of Arduino/spreadsheet stuff available and not so much on Arduino/database. So, in my opinion, it would be easier to learn the spreadsheet stuff up front.
one reason is that the database is built on rows and columns. so a spreadsheet is a fundament of data bases. Also, a spreadsheet is something they can start with today, with the parts list they have now.
Lastly, it is structural part of data bases so is basic to understanding databases in general.

I can't see any value in using an Arduino or illuminating LEDs for this project.

Just create a GUI in a PC program that displays a simple facsimile of the drawers that have the components and make the drawer that contains the part show in a different colour. The drawers could be represented by buttons on a HTML page and visible in a browser. It would not be difficult to make it possible to view the HTML page on a smart phone that has a wifi connection with the PC having the database.

For a simple database project I would recommend SqLite as the entire database will be in a single file.

...R

I have an idea of databases, but no special idea or experience with spreadsheets. From that experience I know that and how it will be possible to retrieve stored items from a database, but not from a spreadsheet.

But the final solution may be different from both approaches. It may consist of a list of items, from which the user can pick one. Details depend on the descriptions of the items, how far keywords are applicable in a search, and how similar items still can differ (color, size...). Perhaps one can persuade Google to explore the storage and answer questions... :wink:

thanks for the input everyone. this helps a ton to get into the right direction.

@robin2 I will also be implementing this in situations where people other than me need to use the system and not everyone is capable of properly translating what they see in a image to what they see in the real world, and having a LED that lights up to indicate the correct drawer is a time saver. Which is the whole point of this project, save as much time as possible.

Assuming your bins are in some logical arrangement, why not simply assign them as “Bay 1 A4” to indicate which area ‘bay’, and which XY position they are located.

Remember over time, you’ll also stop using ‘widget #6’ ever again, so a method of reassigning that slot would be advantageous.

Also a rapid way of printing bin tags can help when the computer is on the fritzy... and at annual stock-count time!

Rick86Campovino:
implementing this in situations where people other than me need to use the system and not everyone is capable of properly translating what they see in a image to what they see in the real world, and having a LED that lights up to indicate the correct drawer is a time saver.

Hmmmm.

Seems like an awful lot of extra work (to build) as an alternative to training or filtering out those who are unsuitable. It will also be a system that is very difficult to rearrange physically - compared with changing some picture in a PC.

However it is entirely your decision.

Don't overlook SqLite, however :slight_smile:

...R

PS... What about a system that points a low-power laser at the appropriate drawer?

What about a robot that fetches the requested part or bin (random storage)?

There are many solutions, of different cost and fun factor. I like the LED idea, eventually with a flicker on the road to the target bin.