Sommario:
- Passaggio 1: cosa ti servirà
- Passaggio 2: installa e configura il database
- Passaggio 3: ottenere la chiave API OutPan
- Passaggio 4: installa e configura Node-Red
- Passaggio 5: imposta l'API
- Passaggio 6: (Facoltativo) Comprendere l'API
- Passaggio 9: (Facoltativo) Crea un'interfaccia utente
- Passaggio 10: avvia la scansione
Video: Sistema di gestione dell'inventario integrato: 10 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Ho sempre voluto un modo conveniente per tenere traccia di tutto nella mia dispensa, quindi un paio di mesi fa ho iniziato a lavorare a un progetto che avrebbe fatto proprio questo. L'obiettivo era quello di creare un sistema semplice ed economico che fosse molto facile da usare e allo stesso tempo memorizzasse abbastanza informazioni per valere lo sforzo extra. Quello che alla fine ho costruito è un sistema di gestione dell'inventario in grado di archiviare e aggiornare le informazioni su qualsiasi articolo che ha un codice a barre, nonché i miei dati di base su quegli articoli da Internet.
In breve, il sistema funziona così.
- Viene scansionato un codice a barre.
- Uno script Python legge i dati dallo scanner.
- La richiesta viene inviata a un'API REST in esecuzione su node-red.
- L'API elabora la richiesta, estrae dati aggiuntivi da Internet e modifica il database di conseguenza.
Tutto questo viene fatto su un singolo Raspberry Pi, dandoti la possibilità di aggiornare e memorizzare i dati sull'intero inventario in un piccolo sistema portatile. Questo progetto è un po' tecnico e una conoscenza di base di database, HTTP e Python sarà molto utile, ma farò del mio meglio per renderlo abbastanza facile da capire per un principiante. Iniziamo!
Passaggio 1: cosa ti servirà
Le parti di cui avrai bisogno per questo progetto sono…
- Lampone Pi
- Scanner di codici a barre USB (link a quello che sto usando)
- Adattatore WiFi (se il tuo Pi non ha il WiFi integrato)
- Interruttore a levetta
- Cavi per ponticelli
- Custodia per il tuo Raspberry Pi (opzionale)
Passaggio 2: installa e configura il database
MySQL è il sistema di gestione del database che conterrà tutti i dati che estraiamo dalle scansioni dei codici a barre. Questo è molto facile da fare sul Pi, esegui semplicemente il seguente comando nel terminale del tuo Pi.
sudo apt-get install mysql-server
Verrai quindi guidato attraverso il processo di installazione e ti verrà chiesto di creare una password. Questo è tutto. Con MySQL installato, il tuo Pi può fungere da piccolo server di database. Ora dobbiamo creare le tabelle che conterranno i nostri dati. Per prima cosa, accedi. Dopo l'installazione, l'unico utente MySql è root (l'utente che ha accesso a ogni tabella e sistema). Puoi accedere come root eseguendo il seguente comando.
mysql -uroot -p
Presto configureremo un altro utente che il nostro sistema utilizzerà, ma prima dobbiamo creare il nostro database e le tabelle all'interno di quel database. Per fare ciò, esegui i seguenti comandi.
creare un inventario del database;
utilizzare l'inventario; crea tabella upc_count(upc varchar(15) not null, count integer(3) not null default 0, name varchar(255), size varchar(40), producer varchar(80), primary key (upc));
Ora abbiamo una semplice tabella con cinque colonne upc (che sarà la chiave primaria), conteggio, nome, dimensione e produttore. Nota: un upc è un numero che identifica in modo univoco un prodotto. Quel numero è ciò che viene letto dall'etichetta del codice a barre quando viene scansionato.
Infine, configureremo l'utente di cui abbiamo bisogno. Chiamerò il mio, per farlo, esegui i seguenti comandi, usando qualsiasi nome utente e password desideri:
concedere tutto sull'inventario.* a ''@'localhost' identificato da;
Ora che abbiamo il nostro database, possiamo iniziare a costruire il sistema!
Passaggio 3: ottenere la chiave API OutPan
OutPan è un'API che può essere utilizzata per ottenere informazioni su un prodotto utilizzando il suo numero upc. Lo useremo per estrarre ulteriori informazioni sui prodotti man mano che vengono aggiunti al database. Questa è un'API pubblica, ma per utilizzarla è necessario registrarsi e ottenere una chiave API. La registrazione è piuttosto semplice, basta andare qui e seguire i passaggi per registrarsi per una chiave.
Una volta ottenuta la chiave, copiala. Ne avrai bisogno in un passaggio successivo.
Passaggio 4: installa e configura Node-Red
Node-Red è preinstallato su tutte le versioni del sistema operativo Raspbian dalla fine del 2015. Per scoprire se hai installato node-red, esegui semplicemente il seguente comando nel terminale.
nodo-rosso
Se viene visualizzato un messaggio "comando non trovato", dovrai installare node-red. Per fare ciò, esegui i seguenti comandi.
sudo apt-get update sudo apt-get install nodered
Dopo aver avviato node-red, è possibile accedere a node-red dall'indirizzo visualizzato nell'output.
L'unica configurazione rimasta è installare i nodi MySQL. Puoi farlo tramite il browser. Fare clic sul simbolo nell'angolo in alto a destra della pagina e quindi fare clic sull'opzione "Gestisci tavolozza". Da lì, cerca semplicemente "mysql" e fai clic sul pulsante di installazione.
Ora siamo pronti per importare l'API.
Passaggio 5: imposta l'API
Di seguito è riportata l'intera API node-red che ho scritto. Basta copiare tutto sotto, fare clic sul simbolo nell'angolo in alto a destra e andare su importa → dagli appunti.
[{"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":"richiesta http", "z":"ef09537e.8b96d", "name ":"Richiesta Out Pan", "method":"GET", "ret":"txt", "url":"https://api.outpan.com/v2/products/{{{upc}}} ?apikey=", "tls":"", "x":202, "y":57, "wires":
Ora hai l'intera API che useremo per inserire e aggiornare i dati. È necessario apportare solo un paio di modifiche prima di poterlo utilizzare.
- Innanzitutto, accedi a tutti i nodi del database MySQL e modifica il nome utente e la password con quelli creati per il database nel passaggio precedente.
- In secondo luogo, modifica il sottoflusso mineOutPanData in modo che la richiesta HTTP utilizzata per ottenere i dati Open Pan utilizzi la tua chiave API.
Ora sei pronto per utilizzare l'API. Questo flusso crea una semplice API REST che consente di inviare dati da qualsiasi dispositivo connesso a Internet tramite richieste
Passaggio 6: (Facoltativo) Comprendere l'API
L'ultima cosa che dobbiamo fare è collegare uno switch al GPIO in modo da poter eseguire la scansione in due modalità, aggiungere e rimuovere.
Questo è abbastanza semplice, basta impostare un interruttore a levetta per leggere dal pin 21 GPIO sul Pi e sei a posto. Utilizzando il circuito sull'immagine allegata (noto come circuito PUD DOWN) lo script invierà una richiesta di aggiunta quando l'interruttore a levetta è chiuso e una richiesta di rimozione quando l'interruttore a levetta è aperto.
Dopodiché fissiamo semplicemente i fili all'interno della custodia e siamo a posto.
Passaggio 9: (Facoltativo) Crea un'interfaccia utente
Quest'ultimo passaggio non è necessario ma sicuramente utile se si vuole sfruttare al massimo le potenzialità del sistema. Ho creato un'interfaccia utente molto semplice che mostrava tutti i dati che abbiamo nel nostro database in una tabella di facile navigazione. La tabella può essere ordinata per colonna e anche cercata, rendendo più facile vedere cosa hai a portata di mano.
L'interfaccia utente è piuttosto semplice; Ho riproposto un codice di esempio che ho trovato online per funzionare con la nostra API (se sei interessato, quel codice di esempio può essere trovato qui).
Per eseguire l'interfaccia utente, procedi come segue…
- Salva il file index.txt allegato come index.html (non ho potuto caricare il file come file HTML per qualche motivo).
- Metti i due file nella stessa directory sul tuo computer.
- Esegui il file "index.html" nel tuo browser web preferito.
Ora possiamo vedere e ordinare facilmente il tuo inventario!
Passaggio 10: avvia la scansione
Ora sei pronto per iniziare la scansione! Se hai domande, lasciale nei commenti e sarò sicuro di rispondere quando posso.
Infine, i tuoi voti nel concorso sarebbero molto apprezzati. Grazie per aver letto!
Consigliato:
OpenLH: sistema aperto di gestione dei liquidi per la sperimentazione creativa con la biologia: 9 passaggi (con immagini)
OpenLH: sistema aperto di gestione dei liquidi per la sperimentazione creativa con la biologia: siamo orgogliosi di presentare questo lavoro alla Conferenza internazionale sull'interazione tangibile, incorporata e incarnata (TEI 2019). Tempe, Arizona, USA | 17-20 marzo.Tutti i file di assemblaggio e le guide sono disponibili qui.L'ultima versione del codice è disponibile su
Task Manager: un sistema di gestione delle faccende domestiche: 5 passaggi (con immagini)
Task Manager - un sistema di gestione delle faccende domestiche: volevo provare ad affrontare un problema reale affrontato nella nostra famiglia (e, immagino, quello di molti altri lettori), ovvero come allocare, motivare e premiare i miei figli per aver aiutato con le faccende domestiche. Finora abbiamo mantenuto un foglio laminato
Gestione dell'impianto basata sul peso solare con ESP32: 7 passaggi (con immagini)
Gestione delle piante basata sul peso solare con ESP32: coltivare le piante è divertente e annaffiare e prendersene cura non è davvero una seccatura. Le applicazioni di microcontrollori per monitorare la loro salute sono ovunque su Internet e l'ispirazione per il loro design deriva dalla natura statica delle piante e dalla facilità di monitoraggio
Sistema di gestione del motore per applicazioni di sollevamento utilizzando Arduino Mega 2560 e IoT: 8 passaggi (con immagini)
Sistema di gestione del motore per applicazioni di sollevamento utilizzando Arduino Mega 2560 e IoT: Oggigiorno i microcontrollori basati su IoT sono ampiamente utilizzati nell'applicazione industriale. Economicamente sono usati al posto di un computer. L'obiettivo del progetto è il controllo completamente digitalizzato, il data logger e il monitoraggio del motore a induzione trifase con
Sicurezza domestica con sistema integrato: 12 passaggi (con immagini)
Sicurezza domestica con sistema integrato: Ciao lettori, questo è un Instructables per la costruzione di un sistema di sicurezza domestica diverso da ogni altro sistema di sicurezza. Questo sistema ha una funzionalità migliorata Modalità TRAPPOLA e PANICO che collega il proprietario della casa della vittima, il vicino e la stazione di polizia sulla rete.In