Indholdsfortegnelse:

Integreret lagerstyringssystem: 10 trin (med billeder)
Integreret lagerstyringssystem: 10 trin (med billeder)

Video: Integreret lagerstyringssystem: 10 trin (med billeder)

Video: Integreret lagerstyringssystem: 10 trin (med billeder)
Video: Webshop introduktion - Kom i gang med DanDomain Webshop 2024, November
Anonim
Integreret lagerstyringssystem
Integreret lagerstyringssystem

Jeg har altid ønsket en overkommelig måde at holde styr på alt i mit spisekammer, så for et par måneder siden begyndte jeg at arbejde på et projekt, der ville gøre netop det. Målet var at lave et enkelt, overkommeligt system, der var meget let at bruge, samtidig med at det lagrede nok information til at være den ekstra indsats værd. Det, jeg til sidst har bygget, er et lagerstyringssystem, der kan gemme og opdatere oplysninger om ethvert element, der har en stregkode, samt mine grundlæggende data om disse varer fra internettet.

Kort sagt fungerer systemet sådan.

  1. En stregkode scannes.
  2. Et Python -script læser dataene fra scanneren.
  3. Anmodningen sendes til en REST API, der kører på node-red.
  4. API'et behandler anmodningen, miner yderligere data fra internettet og redigerer databasen i overensstemmelse hermed.

Alt dette sker på en enkelt Raspberry Pi, hvilket giver dig mulighed for at opdatere og gemme data om hele din beholdning i et lille, bærbart system. Dette projekt er lidt teknisk og en grundlæggende forståelse af databaser, HTTP og Python vil være meget nyttigt, men jeg vil gøre mit bedste for at gøre det let nok for en nybegynder at forstå. Lad os komme igang!

Trin 1: Hvad skal du bruge

Hvad du skal bruge
Hvad du skal bruge

De dele, du skal bruge til dette projekt, er …

  • Hindbær Pi
  • USB stregkodescanner (link til den jeg bruger)
  • WiFi -adapter (hvis din Pi ikke har indbygget WiFi)
  • Toggle Switch
  • Jumper Wires
  • Etui til din Raspberry Pi (valgfri)

Trin 2: Installer og konfigurer databasen

Installer og konfigurer databasen
Installer og konfigurer databasen

MySQL er databasesystemet, der gemmer alle de data, vi henter fra stregkodescanninger. Dette er meget let at gøre på Pi, simpelthen køre følgende kommando i terminalen på din Pi.

sudo apt-get installer mysql-server

Du bliver derefter gennemgået installationsprocessen og bedt om at oprette en adgangskode. Det er det. Med MySQL installeret kan din Pi fungere som sin egen lille databaseserver. Nu skal vi oprette tabellerne, der skal indeholde vores data. Log først på. Efter installationen er den eneste MySql -bruger root (den bruger, der har adgang til alle tabeller og systemer). Du kan logge ind som root ved at køre følgende kommando.

mysql -uroot -p

Snart opretter vi en anden bruger, som vores system skal bruge, men først skal vi oprette vores database og tabellerne i denne database. For at gøre dette skal du køre følgende kommandoer.

oprette database opgørelse;

bruge beholdning; oprette tabel upc_count (upc varchar (15) ikke null, tæl heltal (3) ikke null standard 0, navn varchar (255), størrelse varchar (40), producent varchar (80), primær nøgle (upc));

Nu har vi en simpel tabel med fem kolonner upc (som vil være den primære nøgle), tælling, navn, størrelse og producent. Bemærk: A upc er et tal, der entydigt identificerer et produkt. Det tal er det, der læses fra stregkodemærkaten, når det scannes.

Endelig vil vi oprette den bruger, vi har brug for. Jeg vil ringe til min, for at gøre dette skal du køre følgende kommandoer ved hjælp af det brugernavn og den adgangskode, du gerne vil have:

give alt på lager.* til ''@'localhost' identificeret af;

Nu hvor vi har vores database, kan vi begynde at bygge systemet!

Trin 3: Hent OutPan API -nøgle

OutPan er en API, der kan bruges til at få oplysninger om et produkt ved hjælp af dets upc -nummer. Vi kommer til at bruge dette til at udvinde flere oplysninger om produkterne, når de tilføjes til databasen. Dette er en offentlig api, men for at bruge den skal du tilmelde dig og få en api -nøgle. Tilmelding er ret ligetil, bare gå her og følg trinene for at tilmelde dig en nøgle.

Når du har fået din nøgle, skal du kopiere den ned. Du får brug for det i et senere trin.

Trin 4: Installer og konfigurer Node-Red

Installer og konfigurer Node-Red
Installer og konfigurer Node-Red
Installer og konfigurer Node-Red
Installer og konfigurer Node-Red

Node-Red er forudinstalleret på alle versioner af Raspbian OS siden slutningen af 2015. For at finde ud af, om du har node-red installeret, skal du blot køre følgende kommando i terminalen.

knude-rød

Hvis meddelelsen "kommando ikke fundet" vises, skal du installere knude-rød. For at gøre dette skal du køre følgende kommandoer.

sudo apt-get opdatering sudo apt-get installation nodered

Efter start af knude-rød, kan du få adgang til knude-rød fra adressen vist i output.

Den eneste opsætning, der er tilbage, er at installere MySQL -noder. Du kan gøre dette via browseren. Klik på symbolet i øverste højre hjørne af siden, og klik derefter på 'Administrer palet'. Derfra skal du blot søge efter 'mysql' og klikke på installationsknappen.

Vi er nu klar til at importere API'en.

Trin 5: Konfigurer API

Opsæt API'en
Opsæt API'en
Opsæt API'en
Opsæt API'en
Opsæt API'en
Opsæt API'en

Nedenfor er hele den knude-røde API, som jeg skrev. Du skal blot kopiere alt herunder, klikke på symbolet i øverste højre hjørne og gå til import → fra udklipsholder.

[{"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 -forespørgsel", "z": "ef09537e.8b96d", "navn ":" Anmodning om panering "," method ":" GET "," ret ":" txt "," url ":" https://api.outpan.com/v2/products/{{{cup}}} ? apikey = "," tls ":" "," x ": 202," y ": 57," wires ":

Nu har du hele API'en, som vi vil bruge til at indsætte og opdatere data. Der skal kun foretages et par justeringer, før vi er klar til at bruge det.

  1. Først skal du gå ind i alle MySQL -databaseknuderne og ændre brugernavn og adgangskode til dem, du oprettede til databasen i det foregående trin.
  2. For det andet, rediger mineOutPanData -underflowet, så HTTP -anmodningen, der bruges til at hente Open Pan -data, bruger din egen API -nøgle.

Nu er du klar til at bruge API'en. Dette flow skaber en simpel REST API, som giver dig mulighed for at sende data fra enhver enhed, der er forbundet til internettet ved hjælp af HTTP -anmodninger.

Trin 6: (Valgfrit) Forståelse af API

Tilslut vippekontakten
Tilslut vippekontakten

Den sidste ting, vi skal gøre, er at tilslutte en switch til GPIO, så vi kan scanne i to tilstande, tilføje og fjerne.

Dette er ret ligetil. Du skal blot oprette en vippekontakt for at læse fra GPIO pin 21 på Pi, og du er klar til at gå. Ved hjælp af kredsløbet på det vedhæftede billede (kendt som et PUD DOWN -kredsløb) sender scriptet en tilføjelsesanmodning, når vippekontakten er lukket, og en anmodning om fjernelse, når vippekontakten er åben.

Derefter tape vi simpelthen ledningerne på indersiden af sagen, og vi er godt i gang.

Trin 9: (Valgfrit) Opret en brugergrænseflade

(Valgfrit) Opret en brugergrænseflade
(Valgfrit) Opret en brugergrænseflade

Dette sidste trin er ikke nødvendigt, men bestemt nyttigt, hvis du vil udnytte systemets fulde potentiale. Jeg oprettede en meget enkel brugergrænseflade, der viste alle de data, vi har i vores database, i en let at navigere tabel. Tabellen kan sorteres efter kolonne og også søges, hvilket gør det let at se, hvad du har ved hånden.

UI'et er ret simpelt; Jeg omformulerede en eksempelkode, jeg fandt online, til at fungere med vores API (hvis du er interesseret, kan denne eksempelkode findes her).

Gør følgende for at køre brugergrænsefladen …

  1. Gem den vedhæftede index.txt -fil som index.html (jeg kunne af en eller anden grund ikke uploade filen som en HTML -fil).
  2. Læg de to filer i det samme bibliotek på din computer.
  3. Kør filen 'index.html' i din foretrukne webbrowser.

Nu kan vi let se og sortere din beholdning!

Trin 10: Start scanning

Start scanning!
Start scanning!

Nu er du klar til at begynde at scanne! Hvis du har spørgsmål, så lad dem stå i kommentarerne, og jeg vil helt sikkert svare, når jeg kan.

Endelig vil dine stemmer i konkurrencen blive værdsat meget. Tak fordi du læste!

Anbefalede: