element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents Open Source Inventory Warehousing System -- Episode 534
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Project Videos to participate - click to join for free!
Related
Recommended
Engagement
  • Author Author: kellyhensen
  • Date Created: 18 Jan 2022 5:04 PM Date Created
  • Last Updated Last Updated: 21 Jan 2022 8:24 AM
  • Views 13854 views
  • Likes 10 likes
  • Comments 8 comments

Open Source Inventory Warehousing System -- Episode 534

MAYER MAKES Engineering Resin (https://mayermakes.at/engineering-resin/)3D basics Color Ampule Black

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

For a lot of makers, selling their creations is a big goal.
Unsatisfied with the current options to sell DIY products Clem started building his own website. When many orders trickle in, it's easy to confuse items when packing. So Clem uses the REST API of his website a Raspberry pi 3A+ and a Barcode Scanner to build a warehousing system that helps you pack Orders and ship them out ASAP!

 

Supplemental Content:

  • Bonus Content - deep dive into the code with Clem
  • CAD Files and Code

Bill of Material:

Product Name Manufacturer Quantity
"MULTICOMP PRO Industrial Pushbutton Switch Multicomp pro 1 Buy Now
"PRO SIGNAL HDMI to VGA Adaptor Lead" Pro signal 1 Buy Now
"OPTICON Black USB Barcode CCD Scanner" Opticon 1 Buy Now
Raspberry PI 3A+  1 No longer stocked - see alternative below
Alternative:
"DFROBOT Single Board Computer Lattepanda Dfrobot 1 Buy Now
"ALCOSWITCH - TE CONNECTIVITY Industrial Pushbutton Switch Alcoswitch 1 Buy Now

Additional Parts:

Old PC monitor
Vga cable
PMMA for lasercutting or other material for mounting the SBC
MAYER MAKES Engineering Resin 

element14 presents

element14 Presents  |  About Clem  |  Project Videos

  • clem
  • raspberry pi
  • element14 presents
  • rest api
  • scan
  • friday_release
  • mayermakes
  • Share
  • History
  • More
  • Cancel
Actions
  • Share
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • kmikemoo
    kmikemoo over 3 years ago +2
    mayermakes Very cool. I have wondered from time to time how difficult it would be to integrate bar code scanning into inventory tracking. This episode was very helpful.
  • mayermakes
    mayermakes over 3 years ago in reply to phoenixcomm +2
    So where do I start: the preface this project is only showcasing 1 simple API call and making use of the Json response. Its only getting the orders that are ready for shipping and helps packing these…
  • mayermakes
    mayermakes over 3 years ago +1
    What APIs do you use for projects? any secrets you want to share? Mine is POSTMAN saves a lot of headaches when trying to figure out API communication!
  • mayermakes
    mayermakes over 3 years ago in reply to DAB

    thanks DAB

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes over 3 years ago in reply to kmikemoo

    glad it was of help!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes over 3 years ago

    the Issue with the input() function in a python script mentioned in the video has been solved thanks to our viewer Rene Snijders from the netherlands!
    Here is his solution:

    Rene just wrote a simple input & print :

    ---- myprogramm.py

    #simple input
    barcode = input ("Enter Barcode :")
    print(barcode)

    ---- myprogramm.py

    Then in the terminal as root or sudo -i

    mkdir -p /etc/systemd/system/getty@tty1.service.d
    echo "[Service]" > /etc/systemd/system/getty@tty1.service.d/override.conf
    echo "ExecStart=" >> /etc/systemd/system/getty@tty1.service.d/override.conf
    echo "ExecStart=-/usr/bin/python3 /home/pi/myprogramm.py" >> /etc/systemd/system/getty@tty1.service.d/override.conf
    echo "StandardInput=tty"  >> /etc/systemd/system/getty@tty1.service.d/override.conf
    echo "StandardOutput=tty"  >> /etc/systemd/system/getty@tty1.service.d/override.conf

    sync
    sudo reboot

    And with every keyboard attached the program runs perfect.

    the most common barcode scanners mimic a HID (KeyBoard)

    Tested with a clean install of armbian ( on a OrangePi ) but systemd = systemd this must work for you to.

    I hope you got a spare Pi to test this

    Kind Regards from the Netherlands,

    René

    I had to adapt it a little bit for my application since Raspbian buster gave me a permission error even elevated as sudo:

    the Echo method did only give me permission errors so I edited the file in nano.

    changes I had to do on Raspbian Buster:
    mkdir -p /etc/systemd/system/getty@tty1.service.d
    sudo nano /etc/systemd/system/getty@tty1.service.d/override.conf

    enter these lines:

    ExecStart=-/usr/bin/python3 /home/pi/myprogramm.py
    StandardInput=tty1
    StandardOutput=tty1

    sync
    reboot

    This now allowed me to run  the script shown in the video on the push of a button or from a crontab!


    Rene is a very experienxed UNIX/Linux Guy so I also share his tip here that might come in handy for screen recording:

    do you know how to enlarge the font size for the console on the Rasperry ?

    sudo dpkg-reconfigure console-setup

    search for terminus font ;-) and a larger pixel ;-) this makes it more readable on a high-res monitor ;-)

    A Big thank you to Rene for sharing his knowledges with us!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes over 3 years ago in reply to phoenixcomm

    So where do I start:
    the preface Airplane

    this project is only showcasing 1 simple API call and making use of the Json response.
    Its only getting the orders that are ready for shipping and helps packing these orders one by one by matching barcodes.
    So the whole station has only one purpose: packing orders. nothing else.
    Focus on one specific task is the intended approach to avoid packing errors.

    The backend is a Webserver running Woocommerce and dokan with a few plugins and customizations (mainly for compliancy with GPDR/Commerce laws)
    so a lot of databases with MySQL behind it.
    So all the databases and connections you mentioned are there and mostly operational (I have recently nuked the build to rebuild it without legacy residue)

    How do you add a part:
    Simple you can use the full extend of the Dokan API and Woocommerce Rest API or just enter it on the Website if you don't want to do it automated.
    Also some settings are not accessible via API because pushing them in  would break compatibility with security updates pushed by maintainers of the main repos.
    here is some documentation: https://wedevsofficial.github.io/dokan/

    In there are code variants for php, JS, python, bash, and ruby.

    the User interface can therefore be whatever code you want to write or just the website.
    Which of course you can use with Keyboard and mouse.

    the barcode reader is only there for the packing station as shown in the video.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • phoenixcomm
    phoenixcomm over 3 years ago

    clem, I personally don't like your warehouse system, mine took me about 6 months of programming in Perl, a C-like language suited for strings, and I don't like python. I personally think you missed the boat. everything in a bar-code.LOL, my large online DB is punished published with MySQL.  www.phoenixtrading.biz currently, I have over 1/4 million records, I, in fact, you have two parts the Info table which has all the stuff about the product. and a link to the manufactures table. Second or third you need your history table, invoice table, and quotes which turn into invoices. If you go further you need a purchasing table. 

    how do you add a part?? Description, etc with a barcode?

    I use Apache as the user interface. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • kmikemoo
    kmikemoo over 3 years ago

    mayermakes  Very cool.  I have wondered from time to time how difficult it would be to integrate bar code scanning into inventory tracking.  This episode was very helpful.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB over 3 years ago

    Nice episode Clem.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes over 3 years ago

    What APIs do you use for projects? any secrets you want to share?
    Mine is POSTMAN saves a lot of headaches when trying to figure out API communication!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube