Kazalo:

Integriran sistem upravljanja zalog: 10 korakov (s slikami)
Integriran sistem upravljanja zalog: 10 korakov (s slikami)

Video: Integriran sistem upravljanja zalog: 10 korakov (s slikami)

Video: Integriran sistem upravljanja zalog: 10 korakov (s slikami)
Video: 97% Owned: The Money System | Finance Documentary Film (Netflix) 2024, Julij
Anonim
Integriran sistem upravljanja zalog
Integriran sistem upravljanja zalog

Vedno sem si želel dostopen način spremljanja vsega v svoji shrambi, zato sem pred nekaj meseci začel delati na projektu, ki bi naredil prav to. Cilj je bil narediti preprost in cenovno ugoden sistem, ki bi bil zelo enostaven za uporabo, hkrati pa bi shranil dovolj informacij, ki bi bile vredne dodatnih naporov. Na koncu sem zgradil sistem za upravljanje zalog, ki lahko shranjuje in posodablja informacije o katerem koli predmetu s črtno kodo, pa tudi osnovne podatke o teh elementih iz interneta.

Skratka, sistem deluje tako.

  1. Skenira se črtna koda.
  2. Skript Python bere podatke iz optičnega bralnika.
  3. Zahteva se pošlje API-ju REST, ki deluje na vozlišču-rdeče.
  4. API obdela zahtevo, pridobi dodatne podatke iz interneta in ustrezno uredi bazo podatkov.

Vse to poteka na enem samem Raspberry Pi, kar vam omogoča, da posodobite in shranite podatke o celotnem inventarju v enem majhnem prenosnem sistemu. Ta projekt je malo tehničen in osnovno razumevanje baz podatkov, HTTP in Python bo v veliko pomoč, vendar se bom potrudil, da bo začetniku dovolj enostavno razumeti. Začnimo!

Korak: Kaj boste potrebovali

Kaj boste potrebovali
Kaj boste potrebovali

Deli, ki jih potrebujete za ta projekt, so…

  • Malina Pi
  • Optični bralnik črtnih kod USB (povezava do tistega, ki ga uporabljam)
  • WiFi adapter (če vaš Pi nima vgrajenega WiFi)
  • Preklopite stikalo
  • Mostične žice
  • Etui za vaš Raspberry Pi (neobvezno)

Korak: Namestite in nastavite bazo podatkov

Namestite in nastavite bazo podatkov
Namestite in nastavite bazo podatkov

MySQL je sistem za upravljanje baz podatkov, ki bo vseboval vse podatke, ki jih poberemo iz skeniranja črtne kode. To je zelo enostavno narediti na Pi, preprosto zaženite naslednji ukaz v terminalu vašega Pi.

sudo apt-get install mysql-server

Nato vas bodo popeljali skozi postopek namestitve in morali boste ustvariti geslo. To je to. Z nameščenim MySQL lahko vaš Pi deluje kot lasten mali strežnik baz podatkov. Zdaj moramo ustvariti tabele, ki bodo hranile naše podatke. Najprej se prijavite. Po namestitvi je edini uporabnik MySql root (uporabnik, ki ima dostop do vsake tabele in sistema). Z naslednjim ukazom se lahko prijavite kot root.

mysql -uroot -p

Kmalu bomo nastavili drugega uporabnika, ki ga bo uporabljal naš sistem, vendar moramo najprej ustvariti svojo bazo podatkov in tabele v tej bazi. Če želite to narediti, zaženite naslednje ukaze.

ustvarite popis baze podatkov;

uporaba inventarja; ustvarite tabelo upc_count (upc varchar (15) ni null, count integer (3) ni null privzeto 0, ime varchar (255), velikost varchar (40), proizvajalec varchar (80), primarni ključ (upc));

Zdaj imamo preprosto tabelo s petimi stolpci upc (ki bo primarni ključ), štetjem, imenom, velikostjo in proizvajalcem. Opomba: Upc je številka, ki enolično identificira izdelek. Ta številka se prebere z nalepke črtne kode, ko se skenira.

Nazadnje bomo nastavili tistega uporabnika, ki ga potrebujemo. Poklical bom svojega, za to pa zaženite naslednje ukaze, pri čemer uporabite poljubno uporabniško ime in geslo:

podeli vse za inventar.* za ''@'localhost', ki ga identificira;

Zdaj, ko imamo svojo bazo podatkov, lahko začnemo graditi sistem!

3. korak: Pridobite ključ API OutPan

OutPan je API, ki ga lahko uporabite za pridobivanje informacij o izdelku z njegovo številko upc. To bomo uporabili za pridobivanje več informacij o izdelkih, ko so dodani v bazo podatkov. To je javni api, vendar se morate za uporabo prijaviti in dobiti ključ api. Prijava je precej preprosta, pojdite sem in sledite korakom, da se prijavite za ključ.

Ko dobite ključ, ga prepišite. Potrebovali ga boste v naslednjem koraku.

4. korak: Namestite in nastavite Node-Red

Namestite in nastavite Node-Red
Namestite in nastavite Node-Red
Namestite in nastavite Node-Red
Namestite in nastavite Node-Red

Node-Red je vnaprej nameščen v vseh različicah OS Raspbian od konca leta 2015. Če želite izvedeti, ali imate nameščeno node-red, preprosto zaženite naslednji ukaz v terminalu.

vozlišče-rdeče

Če se prikaže sporočilo »ukaza ni mogoče najti«, morate namestiti node-red. Če želite to narediti, zaženite naslednje ukaze.

sudo apt-get update sudo apt-get install nodered

Po zagonu node-red lahko dostopate do node-red z naslova, prikazanega v izhodu.

Edina nastavitev je namestitev vozlišč MySQL. To lahko storite prek brskalnika. Kliknite simbol v zgornjem desnem kotu strani in nato možnost »Upravljanje palete«. Od tam preprosto poiščite »mysql« in kliknite gumb za namestitev.

Zdaj smo pripravljeni na uvoz API -ja.

5. korak: Nastavite API

Nastavite API
Nastavite API
Nastavite API
Nastavite API
Nastavite API
Nastavite API

Spodaj je celoten node-red API, ki sem ga napisal. Preprosto kopirajte vse spodaj, kliknite simbol v zgornjem desnem kotu in pojdite na uvoz → iz odložišča.

[{"id": "ef09537e.8b96d", "type": "subflow", "name": "mineOpenPanData", "info": "", "in": [{"x": 64, "y": 57, "žice": [{"id": "b8b6d2e4.169e7"}]}], "ven": [{"x": 755, "y": 58, "žice": [{"id": "8dc2d52b.6a6fd8", "vrata": 0}]}]}, {"id": "b8b6d2e4.169e7", "type": "http zahteva", "z": "ef09537e.8b96d", "name ":" Out Pan Request "," method ":" GET "," ret ":" txt "," url ":" https://api.outpan.com/v2/products/{{{upc}}} ? apikey = "," tls ":" "," x ": 202," y ": 57," žice ":

Zdaj imate celoten API, ki ga bomo uporabili za vstavljanje in posodabljanje podatkov. Preden ga bomo pripravljeni uporabiti, je treba narediti le nekaj prilagoditev.

  1. Najprej pojdite v vsa vozlišča baze podatkov MySQL in spremenite uporabniško ime in geslo na tista, ki ste jih ustvarili za bazo podatkov v prejšnjem koraku.
  2. Drugič, uredite podtok mineOutPanData, tako da zahteva HTTP za pridobivanje podatkov Open Pan uporablja vaš lasten ključ API.

Zdaj ste pripravljeni za uporabo API -ja. Ta tok ustvari preprost REST API, ki vam omogoča pošiljanje podatkov iz katere koli naprave, povezane z internetom, z zahtevami

6. korak: (Izbirno) Razumevanje API -ja

Priključite preklopno stikalo
Priključite preklopno stikalo

Zadnja stvar, ki jo moramo storiti, je, da stikalo priključimo na GPIO, da lahko skeniramo v dveh načinih, dodamo in odstranimo.

To je precej naravnost, preprosto nastavite preklopno stikalo za branje iz vtičnice GPIO 21 na Pi in lahko ste pripravljeni. S pomočjo vezja na priloženi sliki (znano kot vezje PUD DOWN) bo skript poslal zahtevo za dodajanje, ko je stikalo zaprto, in zahtevo za odstranitev, ko je stikalo odprto.

Po tem preprosto prilepimo žice na notranjo stran ohišja in smo pripravljeni.

9. korak: (Izbirno) Ustvarite uporabniški vmesnik

(Izbirno) Ustvarite uporabniški vmesnik
(Izbirno) Ustvarite uporabniški vmesnik

Ta zadnji korak ni nujen, vsekakor pa je koristen, če želite v celoti izkoristiti potencial sistema. Pripravil sem zelo preprost uporabniški vmesnik, ki je prikazal vse podatke, ki jih imamo v bazi podatkov, v tabeli za enostavno krmarjenje. Tabelo lahko razvrstite po stolpcih in tudi iščete, kar olajša ogled vsebine, ki jo imate pri roki.

Uporabniški vmesnik je precej preprost; Nekaj vzorčne kode, ki sem jo našel na spletu, sem ponovno namenil za delo z našim API-jem (če vas zanima, lahko to primerno kodo najdete tukaj).

Če želite zagnati uporabniški vmesnik, naredite naslednje …

  1. Priloženo datoteko index.txt shranite kot index.html (datoteke iz nekega razloga nisem mogel naložiti kot datoteko HTML).
  2. Dve datoteki postavite v isti imenik v računalniku.
  3. Zaženite datoteko 'index.html' v svojem najljubšem spletnem brskalniku.

Zdaj lahko preprosto pregledamo in razvrstimo vaš inventar!

10. korak: Začnite skenirati

Začni skeniranje!
Začni skeniranje!

Zdaj ste pripravljeni na skeniranje! Če imate kakršna koli vprašanja, jih pustite v komentarjih in odgovoril bom, ko bom lahko.

Nazadnje bi bili vaši glasovi na natečaju zelo cenjeni. Hvala za branje!

Priporočena: