Inhaltsverzeichnis:
- Schritt 1: Was Sie brauchen
- Schritt 2: Installieren und Einrichten der Datenbank
- Schritt 3: OutPan-API-Schlüssel abrufen
- Schritt 4: Node-Red installieren und einrichten
- Schritt 5: API einrichten
- Schritt 6: (Optional) Verständnis der API
- Schritt 9: (Optional) Erstellen Sie eine Benutzeroberfläche
- Schritt 10: Starten Sie das Scannen
Video: Integriertes Warenwirtschaftssystem - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Ich wollte schon immer eine erschwingliche Möglichkeit haben, alles in meiner Speisekammer im Auge zu behalten, also habe ich vor ein paar Monaten angefangen, an einem Projekt zu arbeiten, das genau das tun würde. Das Ziel war es, ein einfaches, erschwingliches System zu entwickeln, das sehr einfach zu bedienen ist und gleichzeitig genügend Informationen speichert, um den zusätzlichen Aufwand zu lohnen. Was ich schließlich gebaut habe, ist ein Bestandsverwaltungssystem, das Informationen zu jedem Artikel mit Strichcode speichern und aktualisieren sowie grundlegende Daten zu diesen Artikeln aus dem Internet abrufen kann.
Kurz gesagt, das System funktioniert so.
- Ein Strichcode wird gescannt.
- Ein Python-Skript liest die Daten vom Scanner.
- Die Anfrage wird an eine REST-API gesendet, die auf node-red ausgeführt wird.
- Die API verarbeitet die Anfrage, sammelt zusätzliche Daten aus dem Internet und bearbeitet die Datenbank entsprechend.
All dies geschieht auf einem einzigen Raspberry Pi, sodass Sie Daten über Ihr gesamtes Inventar in einem kleinen, tragbaren System aktualisieren und speichern können. Dieses Projekt ist ein wenig technisch und ein grundlegendes Verständnis von Datenbanken, HTTP und Python wird sehr hilfreich sein, aber ich werde mein Bestes tun, um es einem Anfänger leicht verständlich zu machen. Lass uns anfangen!
Schritt 1: Was Sie brauchen
Die Teile, die Sie für dieses Projekt benötigen, sind…
- Himbeer-Pi
- USB-Barcode-Scanner (Link zu dem, den ich verwende)
- WLAN-Adapter (Wenn Ihr Pi kein integriertes WLAN hat)
- Kippschalter
- Überbrückungsdrähte
- Gehäuse für Ihren Raspberry Pi (optional)
Schritt 2: Installieren und Einrichten der Datenbank
MySQL ist das Datenbankverwaltungssystem, das alle Daten enthält, die wir aus den Barcode-Scans abrufen. Dies ist auf dem Pi sehr einfach, führen Sie einfach den folgenden Befehl im Terminal Ihres Pi aus.
sudo apt-get install mysql-server
Sie werden dann durch den Installationsprozess geführt und aufgefordert, ein Passwort zu erstellen. Das ist es. Wenn MySQL installiert ist, kann Ihr Pi als eigener kleiner Datenbankserver fungieren. Jetzt müssen wir die Tabellen erstellen, die unsere Daten enthalten. Melden Sie sich zuerst an. Nach der Installation ist der einzige MySql-Benutzer root (der Benutzer, der Zugriff auf jede Tabelle und jedes System hat). Sie können sich als Root anmelden, indem Sie den folgenden Befehl ausführen.
mysql -uroot -p
Bald werden wir einen anderen Benutzer einrichten, den unser System verwenden soll, aber zuerst müssen wir unsere Datenbank und die Tabellen in dieser Datenbank erstellen. Führen Sie dazu die folgenden Befehle aus.
Datenbankinventar erstellen;
Inventar verwenden; Tabelle erstellen upc_count(upc varchar(15) nicht null, count integer(3) nicht null default 0, name varchar(255), Größe varchar(40), Hersteller varchar(80), Primärschlüssel (upc));
Jetzt haben wir eine einfache Tabelle mit fünf Spalten upc (die der Primärschlüssel sein wird), Anzahl, Name, Größe und Hersteller. Hinweis: Eine Upc ist eine Nummer, die ein Produkt eindeutig identifiziert. Diese Nummer wird beim Scannen vom Barcode-Etikett gelesen.
Schließlich richten wir den benötigten Benutzer ein. Ich werde meins anrufen, um dies zu tun, führen Sie die folgenden Befehle aus und verwenden Sie den gewünschten Benutzernamen und das gewünschte Passwort:
Gewähre alles im Inventar.* an ''@'localhost' identifiziert durch;
Da wir nun unsere Datenbank haben, können wir mit dem Aufbau des Systems beginnen!
Schritt 3: OutPan-API-Schlüssel abrufen
OutPan ist eine API, die verwendet werden kann, um Informationen über ein Produkt mithilfe seiner Upc-Nummer zu erhalten. Wir werden dies verwenden, um weitere Informationen zu den Produkten zu ermitteln, wenn sie in die Datenbank aufgenommen werden. Dies ist eine öffentliche API, aber um sie zu verwenden, müssen Sie sich anmelden und einen API-Schlüssel erhalten. Die Anmeldung ist ziemlich einfach. Gehen Sie einfach hierher und folgen Sie den Schritten, um sich für einen Schlüssel anzumelden.
Sobald Sie Ihren Schlüssel erhalten haben, kopieren Sie ihn nach unten. Sie benötigen es in einem späteren Schritt.
Schritt 4: Node-Red installieren und einrichten
Node-Red ist seit Ende 2015 auf allen Versionen des Raspbian OS vorinstalliert. Um herauszufinden, ob Sie node-red installiert haben, führen Sie einfach den folgenden Befehl im Terminal aus.
Knoten-rot
Wenn die Meldung „Befehl nicht gefunden“angezeigt wird, müssen Sie node-red installieren. Führen Sie dazu die folgenden Befehle aus.
sudo apt-get update sudo apt-get install nodered
Nachdem Sie node-red gestartet haben, können Sie von der in der Ausgabe angezeigten Adresse auf node-red zugreifen.
Das einzige Setup, das übrig bleibt, besteht darin, die MySQL-Knoten zu installieren. Sie können dies über den Browser tun. Klicken Sie auf das Symbol in der oberen rechten Ecke der Seite und dann auf die Option 'Palette verwalten'. Suchen Sie dort einfach nach „mysql“und klicken Sie auf die Schaltfläche „Installieren“.
Wir sind jetzt bereit, die API zu importieren.
Schritt 5: API einrichten
Unten ist die gesamte knotenrote API, die ich geschrieben habe. Kopieren Sie einfach alles unten, klicken Sie auf das Symbol oben rechts und gehen Sie auf Importieren → aus Zwischenablage.
[{"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-Anfrage", "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, "wires":
Jetzt haben Sie die gesamte API, die wir zum Einfügen und Aktualisieren von Daten verwenden. Es müssen nur ein paar Anpassungen vorgenommen werden, bevor wir es verwenden können.
- Gehen Sie zuerst zu allen MySQL-Datenbankknoten und ändern Sie den Benutzernamen und das Passwort in die, die Sie im vorherigen Schritt für die Datenbank erstellt haben.
- Zweitens bearbeiten Sie den MineOutPanData-Unterfluss so, dass die HTTP-Anforderung, die zum Abrufen der Open Pan-Daten verwendet wird, Ihren eigenen API-Schlüssel verwendet.
Jetzt können Sie die API verwenden. Dieser Flow erstellt eine einfache REST-API, mit der Sie Daten von jedem mit dem Internet verbundenen Gerät über HTTP-Anforderungen senden können.
Schritt 6: (Optional) Verständnis der API
Das letzte, was wir tun müssen, ist, einen Schalter an den GPIO anzuschließen, damit wir in zwei Modi scannen können, hinzufügen und entfernen.
Dies ist ziemlich einfach, richten Sie einfach einen Kippschalter ein, um vom GPIO-Pin 21 auf dem Pi zu lesen, und Sie können loslegen. Unter Verwendung der Schaltung im angehängten Bild (bekannt als PUD DOWN-Schaltung) sendet das Skript eine Hinzufügen-Anforderung, wenn der Kippschalter geschlossen ist, und eine Entfernungsanforderung, wenn der Kippschalter geöffnet ist.
Danach kleben wir einfach die Drähte an die Innenseite des Gehäuses und es kann losgehen.
Schritt 9: (Optional) Erstellen Sie eine Benutzeroberfläche
Dieser letzte Schritt ist nicht notwendig, aber sicherlich hilfreich, wenn Sie das volle Potenzial des Systems ausschöpfen möchten. Ich habe eine sehr einfache Benutzeroberfläche erstellt, die alle Daten, die wir in unserer Datenbank haben, in einer leicht zu navigierenden Tabelle anzeigt. Die Tabelle kann nach Spalten sortiert und auch durchsucht werden, sodass Sie leicht sehen können, was Sie zur Hand haben.
Die Benutzeroberfläche ist ziemlich einfach; Ich habe einen Beispielcode, den ich online gefunden habe, umfunktioniert, um mit unserer API zu arbeiten (wenn Sie interessiert sind, finden Sie diesen Beispielcode hier).
Gehen Sie wie folgt vor, um die Benutzeroberfläche auszuführen…
- Speichern Sie die angehängte Datei index.txt als index.html (ich konnte die Datei aus irgendeinem Grund nicht als HTML-Datei hochladen).
- Legen Sie die beiden Dateien im selben Verzeichnis auf Ihrem Computer ab.
- Führen Sie die Datei „index.html“in Ihrem bevorzugten Webbrowser aus.
Jetzt können wir Ihr Inventar ganz einfach einsehen und sortieren!
Schritt 10: Starten Sie das Scannen
Jetzt können Sie mit dem Scannen beginnen! Wenn Sie Fragen haben, hinterlassen Sie sie in den Kommentaren und ich werde sie beantworten, wenn ich kann.
Zu guter Letzt würden wir uns sehr über Ihre Stimmen im Wettbewerb freuen. Danke fürs Lesen!