taks
PCGH-Community-Veteran(in)
#Vorwort
Willkommen zu meinem ersten Raspi Projekt
Das Projekt ist in meinem Kopf schon länger in Planung und wird nun endlich umgesetzt. Das Ganze will ich hier in schriftlicher Form festhalten da ich zum einen gerne hier durch die Tagebücher stöbere und nun etwas zurückgeben will. Zum Anderen hoffe ich selbst die Übersicht über das Projekt ein bisschen besser behalten zu können. Da ich von Berufswegen mit Softwareentwicklung zu tun habe und als Hobby gerne an Sachen herumbastle sollte das Projekt eigentlich ohne grössere Probleme umsetzbar sein. Ob es wirklich so ist wird sich hier im Tagebuch mit der Zeit zeigen ^^
Ich wünsche euch viel Spass beim Lesen und immer her mit euren Meinungen, Ideen und Einwänden.
#Projektvorstellung
Problem & Lösung
Der Grund für das Projekt ist die momentane, unübersichtliche Verwaltung unseren Vorräte im Keller. Da wir viele Dinge auf Vorrat kaufen wenn diese reduzierte Preise haben hat unser Vorrat doch eine gewisse Grösse erreicht welche wir ohne Hilfsmittel nicht mehr übersehen. Dazu kommt, dass wir nächstes Jahr umziehen und einen grösseren Keller haben werden
Deshalb ist mein Ziel ein Warenwirtschaftssystem zu entwickeln mit welchem wir unsere Vorräte im Überblick haben. Dazu werden die Vorräte per Strichcode eingescannt und dann auf einem Raspi mit Display verwaltet. Dazu kommen dann eventuell Erweiterungen wie das Ablaufdatum überwachen, etc. Das Projekt soll bis Weihnachten fertig, oder zumindest Einsatzfähig sein da es das Weihnachtsgeschenk für meine Freundin wird. Sie schwärmt schon längere Zeit davon einen eigenen "Laden" im Keller zu haben ^^
Hardware
Das System basiert auf einem Raspberry PI 4 als Rechner, einem 7" Touchscreen als Benutzerschnittstelle und einem Barcodescanner zum Erfassen bzw. Austragen der Produkte.
Raspberry Pi 4 4G Model B
Raspberry Pi 7" Touch Screen
Raspberry Pi Official Raspberry Pi 4 Power
Sandisk Ultra microSD A1 (microSDHC, 16GB, U1, UHS-I)
Datalogic Quickscan Lite Imager Kit
Um die Benutzung ergonomischer zu gestalten wird alles in einem Holzgehäuse untergebracht welches auch einen Halter für den Barcodescanner integriert hat. Eine ungefähre Idee dazu ist schon vorhanden, jedoch muss ich dann erstmal ein bisschen mit dem System arbeiten um zu sehen ob meine Idee auch in der Praxis besteht. Die Konstruktion soll aber möglichst simpel sein und wird aus einem angewinkelten Brett bestehen in welchen das Display eingelassen ist, sowie zwei Seitenwänden und noch ein paar Blenden um das Netzteil etc. zu Kaschieren. Dazu wird das Gehäuse am Schluss noch ansprechend lackiert.
Software (Projektname: Candy Shop)
Die Software wird durch mich in Python programmiert. Soweit zumindest der Plan. Ein paar Scripts habe ich schon mit Python geschrieben aber mit GUI und Datenbankanbindung hab ich zumindest mit Python noch keine Erfahrung. Ich bin dennoch zuversichtlich, da man für ziemlich alles ein Tutorial findet.
Die Software wird in folgende Punkte unterteilt:
- Grundfunktion: Programm Skeleton, die Grundfunktionalität zum Scannen von Strichcodes und die Datenbank-Anbindung sowie Datenbankstrukturen
- GUI: Die Benutzeroberfläche für die Vorratsverwaltung mit Steuerung über das Touchdisplay.
- Online Produktabgleich: Der gescannt Strichcode wiederspiegelt ja nur einen GS1-Code. So ist die Idee, damit wir nicht alle Produkte von Hand erfassen müssen, dass die Produktdaten via GS1-Code übers Internet gesucht werden um, falls noch nicht im System vorhanden, die Informationen ins System zu laden. (Hersteller, Produktname, Gewicht/Menge, etc.)
- Webserver mit Statistik: Um nicht jedesmal in den Keller laufen zu müssen um zu sehen welche Produkte auslaufen oder ablaufen kommt ein Webserver zum Einsatz, damit man vom Smartphone aus den Lagerbestand überprüfen kann.
Ich hab mir mittlerweile schon einige Python IDEs angeschaut und muss mich noch zwischen "Visual Studio Code" und "PyCharm" entscheiden. Wobei mir VS Code irgendwie besser gefällt. Habt ihr sonst noch Empfehlungen?
Herausforderungen
Die grösste Herausforderung wird sein, am Projekt zu Arbeiten ohne das die Freundin etwas mitbekommt
Daneben das vertiefte Auseinandersetzen mit Python sowie Angewöhnung an Raspi mit Rasbian.
#Projektphasen
Das Projekt habe ich in verschiedene Phasen strukturiert welche für mich Sinn ergeben und das Projekt in kleinere Häppchen unterteilt. Ob die Phasen im Verlauf des Projekts angepasst werden kann ich noch nicht sagen. aber es ist gut möglich da ich mit Sicherheit etwas übersehen habe ^^
1. Raspi in Betrieb nehmen -> Abgeschlossen
2. Python Skeleton erstellen -> Abgeschlossen
3. Scanfunktion implementieren -> Abgeschlossen
4. Datenbank einrichten -> Abgeschlossen
5. Datenbankstruktur aufbauen -> Abgeschlossen
6. Scan in Datenbank ablegen -> Abgeschlossen
7. Benutzeroberfläche für Python -> Abgeschlossen
8. Online Produktabgleich/-vorschlag -> Abgeschlossen
9. Gehäuse anfertigen -> In Arbeit
10. Webserver einrichten
11. Webseite Skeleton erstellen
12. Datenbankanbindung für Webseite
13. Webseite erweitern
#Inhaltsverzeichnis
1. Lieferung & Auspacken
2. IDE Auswahl (Kurz Update)
3. Run Raspi Run
4. Code & Scan
5. Erster GUI Entwurf (Kurz Update)
6. Programm-Skeleton (TNotebook)
7. Programm-Skeleton - Progress Incoming
8. Datenbank: Die Erste
9. GUI Refactoring: !#%?-ç(@!!
10. Gehäuse Teil 1
11. Webabfrage & weitere Funktionen
12. Gehäuse Teil 2
Willkommen zu meinem ersten Raspi Projekt
Das Projekt ist in meinem Kopf schon länger in Planung und wird nun endlich umgesetzt. Das Ganze will ich hier in schriftlicher Form festhalten da ich zum einen gerne hier durch die Tagebücher stöbere und nun etwas zurückgeben will. Zum Anderen hoffe ich selbst die Übersicht über das Projekt ein bisschen besser behalten zu können. Da ich von Berufswegen mit Softwareentwicklung zu tun habe und als Hobby gerne an Sachen herumbastle sollte das Projekt eigentlich ohne grössere Probleme umsetzbar sein. Ob es wirklich so ist wird sich hier im Tagebuch mit der Zeit zeigen ^^
Ich wünsche euch viel Spass beim Lesen und immer her mit euren Meinungen, Ideen und Einwänden.
#Projektvorstellung
Problem & Lösung
Der Grund für das Projekt ist die momentane, unübersichtliche Verwaltung unseren Vorräte im Keller. Da wir viele Dinge auf Vorrat kaufen wenn diese reduzierte Preise haben hat unser Vorrat doch eine gewisse Grösse erreicht welche wir ohne Hilfsmittel nicht mehr übersehen. Dazu kommt, dass wir nächstes Jahr umziehen und einen grösseren Keller haben werden
Deshalb ist mein Ziel ein Warenwirtschaftssystem zu entwickeln mit welchem wir unsere Vorräte im Überblick haben. Dazu werden die Vorräte per Strichcode eingescannt und dann auf einem Raspi mit Display verwaltet. Dazu kommen dann eventuell Erweiterungen wie das Ablaufdatum überwachen, etc. Das Projekt soll bis Weihnachten fertig, oder zumindest Einsatzfähig sein da es das Weihnachtsgeschenk für meine Freundin wird. Sie schwärmt schon längere Zeit davon einen eigenen "Laden" im Keller zu haben ^^
Hardware
Das System basiert auf einem Raspberry PI 4 als Rechner, einem 7" Touchscreen als Benutzerschnittstelle und einem Barcodescanner zum Erfassen bzw. Austragen der Produkte.
Raspberry Pi 4 4G Model B
Raspberry Pi 7" Touch Screen
Raspberry Pi Official Raspberry Pi 4 Power
Sandisk Ultra microSD A1 (microSDHC, 16GB, U1, UHS-I)
Datalogic Quickscan Lite Imager Kit
Um die Benutzung ergonomischer zu gestalten wird alles in einem Holzgehäuse untergebracht welches auch einen Halter für den Barcodescanner integriert hat. Eine ungefähre Idee dazu ist schon vorhanden, jedoch muss ich dann erstmal ein bisschen mit dem System arbeiten um zu sehen ob meine Idee auch in der Praxis besteht. Die Konstruktion soll aber möglichst simpel sein und wird aus einem angewinkelten Brett bestehen in welchen das Display eingelassen ist, sowie zwei Seitenwänden und noch ein paar Blenden um das Netzteil etc. zu Kaschieren. Dazu wird das Gehäuse am Schluss noch ansprechend lackiert.
Software (Projektname: Candy Shop)
Die Software wird durch mich in Python programmiert. Soweit zumindest der Plan. Ein paar Scripts habe ich schon mit Python geschrieben aber mit GUI und Datenbankanbindung hab ich zumindest mit Python noch keine Erfahrung. Ich bin dennoch zuversichtlich, da man für ziemlich alles ein Tutorial findet.
Die Software wird in folgende Punkte unterteilt:
- Grundfunktion: Programm Skeleton, die Grundfunktionalität zum Scannen von Strichcodes und die Datenbank-Anbindung sowie Datenbankstrukturen
- GUI: Die Benutzeroberfläche für die Vorratsverwaltung mit Steuerung über das Touchdisplay.
- Online Produktabgleich: Der gescannt Strichcode wiederspiegelt ja nur einen GS1-Code. So ist die Idee, damit wir nicht alle Produkte von Hand erfassen müssen, dass die Produktdaten via GS1-Code übers Internet gesucht werden um, falls noch nicht im System vorhanden, die Informationen ins System zu laden. (Hersteller, Produktname, Gewicht/Menge, etc.)
- Webserver mit Statistik: Um nicht jedesmal in den Keller laufen zu müssen um zu sehen welche Produkte auslaufen oder ablaufen kommt ein Webserver zum Einsatz, damit man vom Smartphone aus den Lagerbestand überprüfen kann.
Ich hab mir mittlerweile schon einige Python IDEs angeschaut und muss mich noch zwischen "Visual Studio Code" und "PyCharm" entscheiden. Wobei mir VS Code irgendwie besser gefällt. Habt ihr sonst noch Empfehlungen?
Herausforderungen
Die grösste Herausforderung wird sein, am Projekt zu Arbeiten ohne das die Freundin etwas mitbekommt
Daneben das vertiefte Auseinandersetzen mit Python sowie Angewöhnung an Raspi mit Rasbian.
#Projektphasen
Das Projekt habe ich in verschiedene Phasen strukturiert welche für mich Sinn ergeben und das Projekt in kleinere Häppchen unterteilt. Ob die Phasen im Verlauf des Projekts angepasst werden kann ich noch nicht sagen. aber es ist gut möglich da ich mit Sicherheit etwas übersehen habe ^^
1. Raspi in Betrieb nehmen -> Abgeschlossen
2. Python Skeleton erstellen -> Abgeschlossen
3. Scanfunktion implementieren -> Abgeschlossen
4. Datenbank einrichten -> Abgeschlossen
5. Datenbankstruktur aufbauen -> Abgeschlossen
6. Scan in Datenbank ablegen -> Abgeschlossen
7. Benutzeroberfläche für Python -> Abgeschlossen
8. Online Produktabgleich/-vorschlag -> Abgeschlossen
9. Gehäuse anfertigen -> In Arbeit
10. Webserver einrichten
11. Webseite Skeleton erstellen
12. Datenbankanbindung für Webseite
13. Webseite erweitern
#Inhaltsverzeichnis
1. Lieferung & Auspacken
2. IDE Auswahl (Kurz Update)
3. Run Raspi Run
4. Code & Scan
5. Erster GUI Entwurf (Kurz Update)
6. Programm-Skeleton (TNotebook)
7. Programm-Skeleton - Progress Incoming
8. Datenbank: Die Erste
9. GUI Refactoring: !#%?-ç(@!!
10. Gehäuse Teil 1
11. Webabfrage & weitere Funktionen
12. Gehäuse Teil 2
Zuletzt bearbeitet: