Innehållsförteckning:

Integrerat lagerhanteringssystem: 10 steg (med bilder)
Integrerat lagerhanteringssystem: 10 steg (med bilder)

Video: Integrerat lagerhanteringssystem: 10 steg (med bilder)

Video: Integrerat lagerhanteringssystem: 10 steg (med bilder)
Video: Полный курс по Next js - Изучи Nextjs за 2 часа! | React SSR +таймкоды 2024, November
Anonim
Integrerat lagerhanteringssystem
Integrerat lagerhanteringssystem

Jag har alltid velat ha ett prisvärt sätt att hålla reda på allt i mitt skafferi, så för ett par månader sedan började jag arbeta med ett projekt som skulle göra just det. Målet var att göra ett enkelt, prisvärt system som var mycket lätt att använda samtidigt som det lagrade tillräckligt med information för att vara värt den extra ansträngningen. Vad jag så småningom byggde är ett lagerhanteringssystem som kan lagra och uppdatera information om alla objekt som har en streckkod, samt min grundläggande data om dessa artiklar från internet.

Kort sagt, systemet fungerar så här.

  1. En streckkod skannas.
  2. Ett Python -skript läser data från skannern.
  3. Begäran skickas till ett REST-API som körs på nod-röd.
  4. API: et behandlar begäran, bryter ytterligare data från internet och redigerar databasen i enlighet därmed.

Allt detta görs på en enda Raspberry Pi, vilket ger dig möjlighet att uppdatera och lagra data om hela ditt lager i ett litet, bärbart system. Detta projekt är lite tekniskt och en grundläggande förståelse för databaser, HTTP och Python kommer att vara till stor hjälp, men jag kommer att göra mitt bästa för att göra det lätt nog för en nybörjare att förstå. Låt oss börja!

Steg 1: Vad du behöver

Vad du behöver
Vad du behöver

Delarna du behöver för detta projekt är …

  • Raspberry Pi
  • USB -streckkodsläsare (länk till den jag använder)
  • WiFi -adapter (om din Pi inte har inbyggd WiFi)
  • Brytare
  • Jumper Wires
  • Fodral till din Raspberry Pi (tillval)

Steg 2: Installera och konfigurera databasen

Installera och konfigurera databasen
Installera och konfigurera databasen

MySQL är databashanteringssystemet som kommer att lagra all data vi drar in från streckkodsskanningarna. Detta är mycket enkelt att göra på Pi, kör enkelt följande kommando i terminalen på din Pi.

sudo apt-get installera mysql-server

Du går sedan igenom installationsprocessen och uppmanas att skapa ett lösenord. Det är allt. Med MySQL installerat kan din Pi fungera som sin egen lilla databasserver. Nu måste vi skapa tabellerna som innehåller våra data. Logga in först. Efter installationen är den enda MySql -användaren root (användaren som har åtkomst till varje bord och system). Du kan logga in som root genom att köra följande kommando.

mysql -uroot -p

Snart kommer vi att skapa en annan användare som vårt system ska använda men först måste vi skapa vår databas och tabellerna i databasen. För att göra detta, kör följande kommandon.

skapa databasinventering;

använd inventering; skapa tabell upc_count (upc varchar (15) inte null, räkna heltal (3) inte null standard 0, namn varchar (255), storlek varchar (40), tillverkare varchar (80), primärnyckel (upc));

Nu har vi en enkel tabell med fem kolumner uppc (som blir huvudnyckeln), antal, namn, storlek och tillverkare. Obs: A upc är ett tal som unikt identifierar en produkt. Det numret är det som läses från streckkodsetiketten när den skannas.

Slutligen kommer vi att ställa in den användaren vi behöver. Jag kommer att ringa min, för att göra detta, kör följande kommandon, med vilket användarnamn och lösenord du vill:

bevilja allt på lager.* till ''@'localhost' identifierad av;

Nu när vi har vår databas kan vi börja bygga systemet!

Steg 3: Skaffa OutPan API -nyckel

OutPan är ett API som kan användas för att få information om en produkt med dess upc -nummer. Vi kommer att använda detta för att få mer information om produkterna när de läggs till i databasen. Detta är en offentlig API, men för att kunna använda den måste du registrera dig och få en API -nyckel. Registrering är ganska enkelt, helt enkelt gå hit och följ stegen för att registrera dig för en nyckel.

När du fått din nyckel, kopiera ner den. Du behöver det i ett senare steg.

Steg 4: Installera och konfigurera Node-Red

Installera och konfigurera Node-Red
Installera och konfigurera Node-Red
Installera och konfigurera Node-Red
Installera och konfigurera Node-Red

Node-Red är förinstallerat på alla versioner av Raspbian OS sedan slutet av 2015. För att ta reda på om du har nod-röd installerat, kör helt enkelt följande kommando i terminalen.

nod-röd

Om meddelandet "kommando hittades inte" visas måste du installera nod-röd. För att göra detta, kör följande kommandon.

sudo apt-get uppdatering sudo apt-get install nodered

Efter att ha startat nod-rött kan du komma åt nod-röd från adressen som visas i utdata.

Den enda inställningen som återstår är att installera MySQL -noder. Du kan göra detta via webbläsaren. Klicka på symbolen i det övre högra hörnet av sidan och klicka sedan på alternativet 'Hantera palett'. Därifrån söker du bara efter 'mysql' och klickar på installationsknappen.

Vi är nu redo att importera API: et.

Steg 5: Konfigurera API: et

Konfigurera API: et
Konfigurera API: et
Konfigurera API: et
Konfigurera API: et
Konfigurera API: et
Konfigurera API: et

Nedan finns hela nod-röda API: et som jag skrev. Kopiera helt enkelt allt nedan, klicka på symbolen i det övre högra hörnet och gå till import → från Urklipp.

[{"id": "ef09537e.8b96d", "type": "subflow", "name": "mineOpenPanData", "info": "", "in": [{"x": 64, "y": 57, "wires": [{"id": "b8b6d2e4.169e7"}]}], "out": [{"x": 755, "y": 58, "wires": [{"id": "8dc2d52b.6a6fd8", "port": 0}]}]}, {"id": "b8b6d2e4.169e7", "type": "http request", "z": "ef09537e.8b96d", "name ":" Begäran om panering "," method ":" GET "," ret ":" txt "," url ":" https://api.outpan.com/v2/products/{{{upc}}} ? apikey = "," tls ":" "," x ": 202," y ": 57," wires ":

Nu har du hela API: et som vi ska använda för att infoga och uppdatera data. Endast ett par justeringar behöver göras innan vi är redo att använda det.

  1. Gå först in i alla MySQL -databasnoder och ändra användarnamn och lösenord till dem du skapade för databasen i föregående steg.
  2. För det andra, redigera mineOutPanData -underflödet så att HTTP -begäran som används för att hämta Open Pan -data använder din egen API -nyckel.

Nu är du redo att använda API: et. Detta flöde skapar ett enkelt REST API som låter dig skicka data från alla enheter som är anslutna till internet med hjälp av HTTP -förfrågningar.

Steg 6: (Valfritt) Förstå API

Anslut omkopplaren
Anslut omkopplaren

Det sista vi behöver göra är att ansluta en switch till GPIO så att vi kan skanna i två lägen, lägga till och ta bort.

Detta är ganska rakt fram, helt enkelt ställa in en växelströmbrytare för att läsa från GPIO pin 21 på Pi och du är klar att gå. Med hjälp av kretsen på den bifogade bilden (känd som en PUD DOWN -krets) kommer skriptet att skicka en tilläggsbegäran när omkopplaren är stängd och en begäran om att ta bort när vippomkopplaren är öppen.

Därefter tejpar vi helt enkelt fast trådarna på insidan av fodralet och vi är igång.

Steg 9: (Valfritt) Skapa ett användargränssnitt

(Valfritt) Skapa ett användargränssnitt
(Valfritt) Skapa ett användargränssnitt

Detta sista steg är inte nödvändigt men verkligen användbart om du vill utnyttja hela potentialen i systemet. Jag riggade upp ett mycket enkelt användargränssnitt som visade all data vi har i vår databas i en tabell som är lätt att navigera. Tabellen kan sorteras efter kolumn och även sökas, vilket gör det enkelt att se vad du har till hands.

UI är ganska enkelt; Jag tänkte om några exempelkoder som jag hittade på nätet för att fungera med vårt API (om du är intresserad kan den här exempelkoden hittas här).

Gör följande för att köra användargränssnittet …

  1. Spara den bifogade index.txt -filen som index.html (jag kunde inte ladda upp filen som en HTML -fil av någon anledning).
  2. Lägg de två filerna i samma katalog på din dator.
  3. Kör filen 'index.html' i din favoritwebbläsare.

Nu kan vi enkelt se och sortera igenom ditt lager!

Steg 10: Börja skanna

Börja skanna!
Börja skanna!

Nu är du redo att börja skanna! Om du har några frågor lämna dem i kommentarerna och jag kommer säkert att svara när jag kan.

Slutligen skulle dina röster i tävlingen uppskattas mycket. Tack för att du läser!

Rekommenderad: