logo elektroda
logo elektroda
X
logo elektroda

Intelligent workshop organiser - WS2812B - illuminated drawers with database

p.kaczmarek2 6222 35
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
  • Workshop drawers with LED lighting.
    I will present here the design of "smart" workshop drawers integrated with a parts database accessible from a computer or phone. These drawers make it easy to search for parts - when a part name is entered, the cells containing it are highlighted in colour. This allows you to quickly and efficiently find the part you are looking for

    The project shown here was made by me together with @DeDaMrAz . A colleague from Serbia soldered a lot of these drawers, with four racks, I made one prototype. In my case everything is controlled by BK7231N, in my colleague's case initially it was ESP8266 (NodeMCU) and then NodeMCU with BK . The project idea and basic scripts (which we later improved) came from https://www.stupid-projects.com/posts/component-database-with-led-indicators/

    What will you need for the project?
    - a rack of drawers, e.g. the Patrol that is popular with us
    - a WS2812B strip (it will need to be cut)
    - wires for connection
    - soldering equipment (we will solder each diode separately....)
    - some controller for WS2812B, preferably ESP, but on BK7231 we also managed to run it
    - some PHP hosting, you can also use for this Raspberry, or normally an old laptop (from my tests it seems that even up to 20W you can go down with such a laptop)
    - a lot of patience while soldering!

    Building drawers You will need some sort of drawer rack to which it is easy to attach the diodes. Attach one diode per drawer. The order in which the diodes are attached matters, because somehow you have to count the index of a given X/Y position on the PHP side, but this can always be changed later in the code. The bigger problem is how much work is involved in attaching the diodes themselves....

    Here are some photos of the work, both from a colleague and myself.

    Fitting:
    Workshop shelf with blue drawers and installed WS2812B LED strips.
    Preparing the connections:
    Preparation of WS2812B LEDs for the workshop drawers project.
    Fitting can be soldered on the drawers or separately:
    Workshop shelf with mounted LED lights.
    Right off:
    Workshop frame with mounted LED lights.
    Testing with NodeMCU:
    Smart workshop drawers project with LED lighting.
    In the testing stage it is also worth measuring the current consumption. This will verify our earlier estimate of what kind of power supply we need:
    LED panel connected with wires to a multimeter on the floor.

    I also made one segment myself. I had a WS2812B protected from moisture on hand, so I had to free them first:
    Roll of WS2812B LED strip on a wooden surface. LED strip WS2812B with visible wires on a wooden surface. WS2812B LED strips on a workshop table with wires and plastic covers.
    I built my patrol drawers with them :
    Shelf composed of black plastic workshop drawers. Rack with empty black drawers on the floor. .
    Findings:
    Workshop drawer shelf with connected LED strip on cardboard.
    Soldering outside the drawers - this has the downside that minor imprecisions accumulate....
    LED modules on a workbench beside soldering equipment. Two WS2812B LED diodes being soldered by robot arms on a workbench.
    I have bad memories of this soldering, you have to be patient. It's not that it's difficult, as the solder came out the first time, but it was time consuming.
    Soldering LED components held in a third hand tool. Soldering wires to LED modules on a workbench.
    Fixed, hopefully it won't need servicing. The two loops of longer wires are sort of like "buffers" to be able to match the alignment of the other LEDs:
    Workshop drawer project with WS2812B LEDs.
    Interface WS2812B controller
    The interface is the same for the BK7231 and ESP8266. The control with LEDs is done via REST requests, which is simply via HTTP. The following requests are supported:

    enable a given LED for a configured time:
    
    http://192.168.0.123/led_index?params=4
    
    
    http://192.168.0.123/led_index?params=4
    
    
    http://192.168.0.123/led_index?params=4
    

    set the colour of the enabled LEDs:
    
    http://192.168.0.123/led_on_color?params=0xFF00FF
    


    Setting the LED off colour:
    
    http://192.168.0.123/led_off_color?params=0x00FF00
    


    Setting the LED on time when the LED is on:
    
    http://192.168.0.123/led_on_timeout?params=5000
    


    setting the ambient colour (for all LEDs) on or off:
    
    http://192.168.0.123/enable_ambient?params=1
    



    setting the ambient colour (for all LEDs):
    
    http://192.168.0.123/led_ambient?params=0xFFFFFF
    



    The above queries run in the browser, they can be tested without putting up a database.

    The empty query returns the current settings (this is not implemented for the version on BK7231):
    Screenshot of a browser interface displaying connection settings.


    This is what these queries look like in practice - suspect in Wireshark:
    Wireshark screen showing HTTP request details. Screenshot showing details of an HTTP POST request in the developer tool.
    Firmware on ESP8266
    The basic version of the ESP8266 batch that we modified does not have WiFi settings management. To help a colleague, I added WiFiManager to it, so that it could be easily paired with our WiFi.
    In a nutshell, the firmware on the ESP includes:
    - simple writing and reading of settings from the "EEPROM" (i.e. Flash - on the ESP this is how access to Flash is called)
    - WS2812 support via the NeoPixelBus library
    - REST interface support via the aRest library
    - copied and simplified WiFiManager library so that we could easily "pair" the controls
    Code also defines the pins e.g. the pushbutton from pairing, but everything can be seen on the page.
    The code also defines the pins e.g. of the pairing button, but you will see everything in the code.
    I do not use this version at all, but if you have any questions I will help.
    This firmware is in the form of a project for PlatformIO.

    . Firmware on BK7231
    Firmware on BK7231 is basically a driver for OpenBeken . It should be included in obk_config.h:
    Screenshot of Microsoft Visual Studio with code highlighted.
    Compilation can be done online, nothing needs to be installed, there are instructions .
    OBK controls the WS-type LEDs via the hardware SPI port, so you will need P16: How to access the hardware SPI port on the CB2S? P16 (MOSI) we solder to the QFN
    On the OBK we should put autoexec.bat:
    
    startDriver SM16703P
    SM16703P_Init 196 GRB
    stopDriver Drawers
    // All arguments are optional
    // startDriver Drawers [NumLEDs] [TimeoutMS] [OnColor] [OffColor] [AmbientColor]
    startDriver Drawers 196 5000 0xFFFFFF 0x000000
    
    At this moment the OBK driver for the drawers does not remember the settings sent over the HTTP interface, hence the need to set them in the autoexec.bat
    Documentation for OBK: https://github.com/openshwprojects/OpenBK7231T_App

    Tests WS2812B
    We also fired up some animation on the LEDs. We used OBK and the PixelAnim driver for this:
    LED drawers with animated blue lighting
    Animated LED lights mounted on drawers in a workshop.
    LED-lit drawers with light effects. Web site Web site offers a simple database of elements. We can add, delete, view and update.
    Web interface with a list of parts and editing options.
    Updating:
    Part editing window in a database system for workshop resource management.
    Addition (in progress, convert to pop-up):
    Form for adding a new part to the database on a webpage.
    Fun ambient colour:
    User interface with a parts list and a color selection tool.
    This page calls functions on the NodeMCU/BK7231 from within Javascript:
    Screenshot of HTML, CSS, and JavaScript code for the workshop drawers project.
    List of page files:
    Screenshot showing the file list of the smart workshop drawers project.
    From the more interesting files are parts.db - database, and ESP8266IP.txt - IP address of our LED controller.

    Final presentation Here's the final presentation. The video shows successively:
    - OpenBeken panel of the driver
    - setting the ambient colour
    - browsing the database and highlighting the search drawers



    Everything works and is responsive.
    It is difficult to estimate the cost estimate because it depends on many factors, on whether we already have drawers or whether we have some module with ESP8266, but let's try, so roughly, to calculate the price for one segment. Let's assume 60 drawers, thus:
    - 60 Patrol drawers - 150 zł
    - strip with 60 WS2812B LEDs (1 metre, 60 LEDs per metre) - 20 zł
    - NodeMCU - 25 zł
    - power supply 5V 5A (with spare) - 40 zł
    - soldering binder, hardware, flux - I assume we have
    - some computer for the server (at least ours) - I assume, that we have
    - wires for connectors - I assume that we have (at least from electro-junk)
    The power supply can be much weaker if we are not going to use the drawers as workshop lighting. Assuming that we have some power supply (e.g. from electro-waste) and that we have the drawers (we have already bought them), then the cost of the project drops to about £50....

    Summary
    A striking and seemingly simple project, but in practice I advise you to be patient. This diode soldering requires some time.
    Particularly to get it working at your place will require appropriate modification of the function separating and mapping the chamber indexes to the drawers, but this I leave to the reader. At a colleague from Serbia it looks like this:
    Screenshot of PHP code controlling LED lighting in workshop drawers.
    Finally, please ask, then we will try to help together.

    I attach the project files, both PlatformIO projects in two versions for ESP (I don't know specifically what the differences are, but I recommend using the newer one) and a page in PHP:

    Cool? Ranking DIY
    Helpful post? Buy me a coffee.
    Do you have a problem with Raspberry? Ask question. Visit our forum Raspberry.
    About Author
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    p.kaczmarek2 wrote 11967 posts with rating 9997, helped 572 times. Been with us since 2014 year.
  • ADVERTISEMENT
  • #2 21081976
    gulson
    System Administrator
    This is in general a great idea for all shops or wholesalers or warehouses that have a lot of drawers. Thanks.
  • #3 21081983
    p.kaczmarek2
    Moderator Smart Home
    Yes, of course, only you have to spend some time tidying up and then take care of it. Only then, when using the workshop, does the time invested pay off.

    I wonder if it wouldn't be possible to hook up some kind of voice AI or home assistant to it. So that it listens in the workshop and when we ask "where are my WS2812Bs", it would highlight the appropriate drawer by itself. A somewhat related experiment (with making the API available to the AI) I already did some time ago: https://www.elektroda.pl/rtvforum/topic3973202.html
    Helpful post? Buy me a coffee.
  • #4 21082002
    gulson
    System Administrator
    What would currently need to be done is for the device to listen all the time, on a password it starts a transcription, then the language model parses and extracts the name of the electronic element. It then runs a search by the name of the element. Can be done, particularly as there will be a new GPT-4o model with native voice support.

    By the way, an offline (cloudless) voice assistant on Raspberry:
    https://github.com/nkasmanoff/pi-card
  • #5 21082011
    p.kaczmarek2
    Moderator Smart Home
    It also depends to what extent we want the effect to be "like in the movies" (i.e. an LLM that understands speech), or whether a completely simplified version will suffice instead, i.e. speech recognition locally and, for example, just one wake-up word (e.g. "Search") and then a rigid voice-activated system typing what we say into the search engine, e.g. "Search WS2812B". Only you need to be interested in whether the audio-to-text solutions now available are able to record well, e.g. spelled "WS2812B" because without this it will not be convenient.
    Helpful post? Buy me a coffee.
  • #6 21082030
    Baskhaal
    Level 19  
    Interesting idea, makes sense with lots of drawers/shelves.
    Another layer is solutions with strain gauges under each position. Bossard has such solutions for fasteners for this example. The system itself 'counts' the number of items under each item at night, knowing the minimum levels, alarm levels, etc., creates a shopping list, which goes to Bossard, which sends out the delivery. The warehouseman only has to add the goods where they are needed. In the enhanced version, there is also the option of highlighting the trays/regions according to the touchscreen searches at the ends of the racks, but this option, from what I hear, sells poorly - even with a large number of items, the warehouse/wholesale/factory staff already know the addresses by heart ;) .
  • #7 21082246
    CMS
    Administrator of HydePark
    It looks cool, but does it make sense with 60 drawers? I have several different drawer racks at work, the biggest one has about 750 drawers, and when I need an item I go and pull it out and it's faster than I would unlock my phone and launch an app. When you do things professionally, you know what's in which drawer. And if you're a hobbyist and have only 60 drawers, even if you don't remember what's in which drawer, you'll be able to find what you need in a matter of seconds.
    Also visually superb, but isn't this form over substance?
  • ADVERTISEMENT
  • #8 21082454
    Erbit
    Level 38  
    p.kaczmarek2 wrote:
    you just have to spend some time tidying up and then take care of it.


    I was just about to write: how I would like someone to catalogue and tidy it for me. I can already make the bookcase myself :)


    I will tell you this much - in simplicity all the charm. A super solution.
  • ADVERTISEMENT
  • #9 21082884
    error105
    Level 14  
    The page I take :D I never know what I have ordered and where the rubbish data is!
  • #10 21082913
    p.kaczmarek2
    Moderator Smart Home
    @CMS if it wasn't for the large amount of fun of soldering and assembly I would defend this idea more, but still, for example I personally need to look in my Excel as I am looking for most things and also I have trouble catching immediately which segment is which, so this solution might help me. In addition, my computer is on all the time anyway (I can't imagine soldering a circuit board or anything else without open documentation on the computer). But as for the phone I agree, on a phone I would rather not use this at all.

    @error105 how about this:
    Easy way to organise parts and projects in Excel using a macro .
    Helpful post? Buy me a coffee.
  • #11 21082956
    acctr
    Level 38  
    It looks impressive, but this solution has a major drawback: the mapping of elements to a specific "cell" in the bookcase and not to a drawer.
    It is enough to remove two drawers in the fervour of working on a project, then inserting them unconsciously swap places. The result is quite a mess, because the user only finds out about the swap when he or she needs something from the swapped drawers again.

    The simple stickers on the drawers do not have this problem and access is quicker than in the electronic version.

    The design corresponds to the page name of the original.
    Helpful post? Buy me a coffee.
  • #12 21082978
    Erbit
    Level 38  
    acctr wrote:
    It is enough to take out two drawers in the frenzy of working on a project, then slide them in unintentionally swap places.
    The drawers are numbered, so such a mistake is difficult (I think).
  • #13 21083010
    acctr
    Level 38  
    Erbit wrote:
    The drawers are numbered
    Where did you get this info? In the video you can see some labels but not on all drawers.
    But even if there is some "analogue" drawer-drawer assignment in the bookcase, which the user has to watch over, it should be completely sufficient for mapping an element from the database - a drawer and this has no chance to "go awry", possibly the order may be lost and consequently a slightly longer search may be needed.
    Therefore, apart from the striking highlighting, I see no improvement in the use of the drawers here, as long as it is possible to unintentionally swap drawers into place.
    For this to have "arms and legs", each drawer should be recognisable by a system (optical sensor, rfdi, it'd), which would recognise the current arrangement and illuminate it when necessary.

    This is different in parcel machines, where the parcel is removed or inserted once and no permanent chamber-parcel link is needed.
    Helpful post? Buy me a coffee.
  • #14 21083056
    Erbit
    Level 38  
    acctr wrote:
    ... completely should suffice for mapping an element from the database-drawer and this has no chance to "go awry", ...
    Therefore, apart from the striking highlighting, I see no improvement here in the use of the drawers


    You are right. You have rubbed my eyes a little ;)
  • ADVERTISEMENT
  • #15 21083247
    p.kaczmarek2
    Moderator Smart Home
    acctr wrote:
    item mapping applies to a specific "cell" in the bookcase, not a drawer. If two drawers are removed in the fervour of working on a project, then unknowingly swapped places as you slide them in. The result is quite a mess, as the user only finds out about the swap when he or she needs something from the swapped drawers again.


    But is this an objection specifically to the database combined with the highlighted drawers? Rather not. This is an objection to a database based on drawer positions in general. I myself have had drawer positions in Excel for years and this problem is solved in such a way that I have stickers on the drawers in addition to Excel and I just try to take care not to swap them places.
    Helpful post? Buy me a coffee.
  • #16 21083981
    DJ MHz
    Level 25  
    How about adding QR codes to the database, scan the code to confirm that the drawer is correct (and not substituted), by the way, you can add the option to assign the item to the database by the code, and more specifically I mean the following task:
    I have an item, I read its number or type and model, in the application on the phone I just give the option "add an item" I throw it into a container, scan the Qr and the rest of the database is already formed by itself.
  • #17 21083997
    acctr
    Level 38  
    p.kaczmarek2 wrote:
    But is this an objection specifically to the database linked to the highlighted drawers? Rather not. It is generally an objection to a database based on drawer items.
    Without going into detail, an item database linked to containers or drawers contains a one-to-many relationship: drawer-item. Adding the bookcase compartment adds another relation and we have: bookcase-drawer, drawer-element. Despite the impressive lighting system and the support of the database, the user has to take care "by hand" to maintain consistency by making sure that the drawer is in the right position, i.e. maintaining the bookcase-drawer relationship.
    Helpful post? Buy me a coffee.
  • #18 21084149
    Erbit
    Level 38  
    acctr wrote:
    Without going into detail


    Without going into detail as to whether the base illuminates the drawer compartment or "only" gives the parts drawer number, the result is the same - there is identification of the container. So, from this (use) perspective, the illumination is just a showy gadget. In addition, in this version (without e.g. RFID tags on the containers), the "base" can be misleading if a person puts the container in the wrong compartment.

    So I agree with my colleague, that it is only a showy gadget, but I like it ;) .
  • #19 21085806
    krzemian2
    Level 2  
    As for confusing the drawers, you could stick NFC tags on the back of the drawers, at a cost of a few/something zloty for the tags, as for the reader I don't know. This would even enable dynamic tagging (the system would recognise which pocket a drawer has logged into with its ID stored in NFC)
  • #20 21085851
    Jogesh
    Level 28  
    I've long had this idea of the drawers having a single LED, and here a striking coloured illumination. As one person has his elements, it's not a problem to find them, but in a company where several people have access to elements and there are, say, 1000 of them, it's ideal. I enter the element in the system and immediately find the drawer.
  • #21 21088605
    jarekgol
    Level 39  
    p.kaczmarek2 wrote:
    and so, for example, I personally need to look in my Excel as I search for most things
    I do the same.
  • #22 21090287
    szeryf3
    Level 29  
    @p.kaczmarek2 visual effect very cool. And also the idea very interesting. Respect for the antsy work.
  • #23 21090428
    Piter3040
    Level 24  
    It looks nice until someone in the workshop smears it in grease with their paws....
  • #24 21090727
    airman
    Level 13  
    Very cool project, I've been thinking about it for a long time but didn't have the nerve, now looking at it I'm even compelled to make it. I hope that the project will be developed and every now and then we will see a new functionality :) .
  • #25 21093688
    398216 Usunięty
    Level 43  
    If I were to be honest, I don't like the idea of making the workshop into a disco.
    Beyond that, the very idea of looking for a component based on the highlighting of the corresponding drawer is, for me (and anyone else who has order in the drawers and descriptions on them), art for art's sake. In my workshop I had (when I still had a workshop and space for it) a full range of 5% resistors in drawers, plus almost a whole range of electrolytic capacitors - also in drawers o furthermore a few dozen of the most commonly used transistors, triacs or even nuts and bolts - each range in a separate drawer or part of a drawer (they had cross dividers, so e.g. transistors of one type - low signal polarity etc - occupied several drawers with 1/3 drawer per type). Of course each drawer described in detail - sticker foiled on the drawer. After the first few days of describing, my hand instinctively reached out (back then I still could) to a particular drawer for the needed item.
    Robot with the stickers (printing on the computer plus foiling , cutting out and sticking on the drawer) was in total a few days, the cost - negligible, the end result I'm afraid more comfortable than this disco. But - if you don't have anything to do, you make up such a flicker ... for the sake of a flicker - because in practice the access time in my case is a mere two seconds - from reading the required value of an element to holding the drawer with it inside.
    So - a cataloguing job is needed in both cases. And that is the only element needed for both systems. Everything else (i.e. chiselling and sticking diodes plus writing software etc.) is an unnecessary effort with no point.

    As for the big shops with a large range.... Forgive me Kamil, but when was the last time you were in such a store, e.g. Wolumen in Warsaw? I visit from time to time (as far as possible) and I have never seen a salesperson have a problem finding the items needed - as in my case, the charm is not in the programme but in the logical ordering of what you have. After two or three days, the search for the item you need is gone - all you have to do is walk up to the right rack and reach an appropriate shelf for the item. Really
    A computer only keeps track of stock on a regular basis - and this is in order to be able to place an order at the right moment.... and often even just to dispatch (program wise...).
  • #26 21093977
    Jogesh
    Level 28  
    That's right, I find parts very quickly at my place because I have them sorted. In a shop, where the owner or an employee is always handling the parts, you also remember what is where. But if you have a company where there are, say, 1000 types of integrated circuits and they are only used for small production series or for prototypes, the employees do not know what is where. Among other reasons, because some ICs are in boxes of 50-100 pieces and some of them are a few thousand pieces and they have to be on a different rack.

    Of course, if you have a lot of space, you can easily manage this manually, but the above system will speed up the retrieval of components, especially because you also have to retrieve them in the system, so anyway in the application you have to take them out.
  • #27 21103307
    Anonymous
    Level 1  
  • #28 21103331
    398216 Usunięty
    Level 43  
    On another note:
    What happens when a diode/connection fails? You have to take the whole rack off the hanger, and in order to do that, you have to pull out all the drawers (so that everything doesn't spill out of them and get mixed up, thus providing another sorting game). And as I know life and the malice of inanimate objects - such damage is bound to occur, and at the least favourable moment....
  • #29 21111747
    yanek231
    Level 19  
    I used to try on making myself such an organiser but without the need for cataloguing, and I remember that a project called FindyBot3000 was most promising.



    .
  • #30 21112613
    Piter3040
    Level 24  
    It would be nice to have a remote control on which a password is written, e.g. "capacitor10uf" - click and the right drawer lights up:)

Topic summary

The discussion revolves around a project for creating "smart" workshop drawers integrated with a parts database, allowing users to easily locate components by highlighting the corresponding drawers when a part name is entered. The project utilizes a WS2812B LED strip for illumination and is controlled by a BK7231N or ESP8266 (NodeMCU). Participants express interest in enhancing the system with voice recognition capabilities, suggesting the integration of AI assistants for hands-free operation. Concerns are raised about the potential for drawer misplacement and the need for a reliable mapping system, with suggestions for using QR codes or NFC tags to maintain organization. The practicality of the system is debated, particularly in environments with numerous drawers, where manual organization may suffice. Overall, the project is praised for its innovative approach to inventory management in workshops.
Summary generated by the language model.
ADVERTISEMENT