Innholdsfortegnelse:

Integrert lagerstyringssystem: 10 trinn (med bilder)
Integrert lagerstyringssystem: 10 trinn (med bilder)

Video: Integrert lagerstyringssystem: 10 trinn (med bilder)

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

Jeg har alltid ønsket en rimelig måte å holde oversikt over alt i pantryet mitt, så for et par måneder siden begynte jeg å jobbe med et prosjekt som ville gjøre nettopp det. Målet var å lage et enkelt, rimelig system som var veldig enkelt å bruke samtidig som det lagret nok informasjon til å være verdt den ekstra innsatsen. Det jeg til slutt bygde er et lagerstyringssystem som kan lagre og oppdatere informasjon om ethvert element som har en strekkode, samt min grunnleggende data om disse elementene fra internett.

Kort sagt, systemet fungerer slik.

  1. En strekkode skannes.
  2. Et Python -skript leser dataene fra skanneren.
  3. Forespørselen sendes til et REST API som kjører på node-red.
  4. API -et behandler forespørselen, bryter ytterligere data fra internett og redigerer databasen deretter.

Alt dette er gjort på en enkelt Raspberry Pi, noe som gir deg muligheten til å oppdatere og lagre data om hele beholdningen din i et lite, bærbart system. Dette prosjektet er litt teknisk og en grunnleggende forståelse av databaser, HTTP og Python vil være veldig nyttig, men jeg vil gjøre mitt beste for å gjøre det enkelt nok for en nybegynner å forstå. La oss komme i gang!

Trinn 1: Hva du trenger

Hva du trenger
Hva du trenger

Delene du trenger for dette prosjektet er …

  • Bringebær Pi
  • USB strekkodeskanner (lenke til den jeg bruker)
  • WiFi -adapter (hvis Pi ikke har innebygd WiFi)
  • Vekslebryter
  • Jumper Wires
  • Etui til din Raspberry Pi (valgfritt)

Trinn 2: Installer og konfigurer databasen

Installer og konfigurer databasen
Installer og konfigurer databasen

MySQL er databasesystemet som vil lagre alle dataene vi trekker inn fra strekkodeskanningene. Dette er veldig enkelt å gjøre på Pi, enkelt kjøre følgende kommando i terminalen til deg Pi.

sudo apt-get install mysql-server

Du blir deretter gjennomgått installasjonsprosessen, og du blir bedt om å opprette et passord. Det er det. Med MySQL installert, kan din Pi fungere som sin egen lille databaseserver. Nå må vi lage tabellene som inneholder dataene våre. Logg deg først på. Etter installasjonen er den eneste MySql -brukeren root (brukeren som har tilgang til alle tabeller og systemer). Du kan logge på som root ved å kjøre følgende kommando.

mysql -uroot -p

Snart setter vi opp en annen bruker som systemet vårt skal bruke, men først må vi opprette databasen vår og tabellene i databasen. For å gjøre dette, kjør følgende kommandoer.

lage databaselager;

bruk inventar; opprett tabell upc_count (upc varchar (15) ikke null, teller heltall (3) ikke null standard 0, navn varchar (255), størrelse varchar (40), produsent varchar (80), primærnøkkel (upc));

Nå har vi en enkel tabell med fem kolonner upc (som vil være hovednøkkelen), antall, navn, størrelse og produsent. Merk: En upc er et tall som unikt identifiserer et produkt. Det tallet er det som leses fra strekkodelappen når den skannes.

Til slutt skal vi sette opp den brukeren vi trenger. Jeg kommer til å ringe min, for å gjøre dette, kjør følgende kommandoer, med hvilket brukernavn og passord du måtte ønske:

gi alt på lager.* til ''@'localhost' identifisert av;

Nå som vi har databasen vår, kan vi begynne å bygge systemet!

Trinn 3: Skaff OutPan API -nøkkel

OutPan er et API som kan brukes til å få informasjon om et produkt ved å bruke upc -nummeret. Vi kommer til å bruke dette til å utvinne mer informasjon om produktene etter hvert som de legges til i databasen. Dette er en offentlig api, men for å bruke den må du registrere deg og få en api -nøkkel. Det er ganske enkelt å registrere seg, bare gå hit og følg trinnene for å registrere deg for en nøkkel.

Når du har fått nøkkelen din, kopierer du den ned. Du trenger det i et senere trinn.

Trinn 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 forhåndsinstallert på alle versjoner av Raspbian OS siden slutten av 2015. For å finne ut om du har node-red installert, bare kjør følgende kommando i terminalen.

node-rød

Hvis meldingen "kommando ikke funnet" vises, må du installere node-rød. For å gjøre dette, kjør følgende kommandoer.

sudo apt-get oppdatering sudo apt-get install nodered

Etter at du har startet node-rød, kan du få tilgang til node-red fra adressen som vises i utgangen.

Det eneste oppsettet som er igjen, er å installere MySQL -noder. Du kan gjøre dette gjennom nettleseren. Klikk på symbolet øverst til høyre på siden, og klikk deretter på alternativet 'Administrer palett'. Derfra bare søk etter 'mysql' og klikk på installeringsknappen.

Vi er nå klare til å importere API.

Trinn 5: Sett opp API

Sett opp API
Sett opp API
Sett opp API
Sett opp API
Sett opp API
Sett opp API

Nedenfor er hele den node-røde API-en som jeg skrev. Bare kopier alt nedenfor, klikk på symbolet øverst til høyre og gå til import → fra utklippstavlen.

[{"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" ":" Forespørsel om utgående panering "," metode ":" GET "," ret ":" txt "," url ":" https://api.outpan.com/v2/products/{{{upc}}} ? apikey = "," tls ":" "," x ": 202," y ": 57," wires ":

Nå har du hele API -et som vi bruker til å sette inn og oppdatere data. Bare et par justeringer må gjøres før vi er klare til å bruke den.

  1. Gå først inn i alle MySQL -databasenoder og endre brukernavn og passord til de du opprettet for databasen i forrige trinn.
  2. For det andre, rediger mineOutPanData -underflyten slik at HTTP -forespørselen som brukes til å hente Open Pan -dataene bruker din egen API -nøkkel.

Nå er du klar til å bruke API. Denne flyten skaper en enkel REST API som lar deg sende data fra alle enheter som er koblet til internett ved hjelp av HTTP -forespørsler.

Trinn 6: (Valgfritt) Forstå API

Koble vippebryteren
Koble vippebryteren

Det siste vi må gjøre er å koble en bryter til GPIO slik at vi kan skanne i to moduser, legge til og fjerne.

Dette er ganske rett frem, bare sett opp en vippebryter for å lese fra GPIO pin 21 på Pi, så er du i gang. Ved å bruke kretsen på det vedlagte bildet (kjent som en PUD DOWN -krets) sender skriptet en tilleggsforespørsel når vippebryteren er lukket og en forespørsel om fjerning når vippebryteren er åpen.

Etter at vi bare teiper ledningene på innsiden av saken, er vi i gang.

Trinn 9: (Valgfritt) Lag et brukergrensesnitt

(Valgfritt) Lag et brukergrensesnitt
(Valgfritt) Lag et brukergrensesnitt

Dette siste trinnet er ikke nødvendig, men absolutt nyttig hvis du vil utnytte systemets fulle potensial. Jeg rigget opp et veldig enkelt brukergrensesnitt som viste alle dataene vi har i databasen vår i en tabell som er lett å navigere. Tabellen kan sorteres etter kolonne og også søkes, noe som gjør det enkelt å se hva du har tilgjengelig.

Grensesnittet er ganske enkelt; Jeg foreslo noen eksempler på kode jeg fant på nettet for å fungere med vårt API (hvis du er interessert, kan du finne eksemplet på koden her).

Gjør følgende for å kjøre brukergrensesnittet …

  1. Lagre den vedlagte index.txt -filen som index.html (jeg kunne ikke laste opp filen som en HTML -fil av en eller annen grunn).
  2. Sett de to filene i samme katalog på datamaskinen.
  3. Kjør filen 'index.html' i din favoritt nettleser.

Nå kan vi enkelt se og sortere gjennom beholdningen din!

Trinn 10: Start skanning

Start skanning!
Start skanning!

Nå er du klar til å begynne å skanne! Hvis du har spørsmål, legg dem i kommentarene, og jeg svarer sikkert når jeg kan.

Til slutt vil dine stemmer i konkurransen bli satt stor pris på. Takk for at du leste!

Anbefalt: