Forum: PC-Programmierung In was sollte ich mich für dieses Raspi-Projekt einarbeiten?


von Matthias S. (da_user)


Lesenswert?

Hi,

ich möchte mich für ein Projekt in das eine oder andere Thema auf dem 
RasPi einarbeiten. Per Google habe ich schon das eine oder andere 
gefunden, was ich jetzt aber brauche sind Empfehlungen aus Erfahrungen 
heraus. Denn der erste Google Treffer ist halt oft genug nicht der 
beste.

=> Einiges an Umschreibungstext, wer's überspringen will, bis zum 
nächsten Pfeil springen, da kommen die eigentlichen Fragen.

Kurz zu meinen Kenntnissen:
* Das eine oder andere kleine Selbstbautool in C#, über den 
Anfängerstatus hinaus, aber definitv noch kein Fortgeschrittener, eher: 
"ich weiß ungefähr wo ich suchen muss".
* Klein wenig Erfahrung in Sachen (my)SQL, aber definitv nicht groß 
genug, um nicht in eine andere DB-Technologie einzusteigen
* Arduinoerfahrung ungefähr auf dem gleichen Level wie C#.
* Derzeit verschaffe ich mir einen Überblick über Python.

Zum Projekt:
Ich arbeite in einem Theater. Theater haben meistens den Nachteil, dass 
sie in der Altstadt liegen und somit praktisch keinen Lagerplatz für 
Kulissen haben. So kommt bei uns (wie in den meisten Häusern) täglich 
die Spedition mit Wechselcontainern, holt die Kulisse vom Vortag und 
bringt die des heutigen Tages.
Im Moment wird hier dann immer noch der Container notiert und in einer 
Exceltabelle dokumentiert, welche Produktion in welche(n) Container(n) 
liegt. Oder sollte ich besser sagen: "sollte". Einmal vergessen den 
Container aufzuschreiben, schon stürzt das ganze System fast ins Chaos.

Den würden wir gerne begegnen in dem wir die Container mit RFID-Tags 
ausstatten und nach und nach an den Abladestellen die entsprechenden 
Lesegeräte zusammen mit einem RaspberryPi ausrüsten. Die erste Stufe ist 
hierbei noch ziemlich einfach: "Wann wurde welcher Container wo 
gesehen?" Nach und nach soll das System natürlich ausgebaut werden, so 
dass möglichst die komplette Containerdispo auf diesem laufen kann.

=> konkretere Fragen

Wichtig: das ganze ist im ÖD, sollte also möglichst nix kosten. Ich 
würde entsprechend am liebsten auf freie und OpenSource-Software setzen.

Das ganze System braucht also erstmal eine Datenbank. Ich würde hierzu 
eigentlich auf eine SQL-Datenbank setzen. Aber auch hier hätte ich schon 
Anforderung, aufgrund der mir der eine oder andere mit Erfahrung eine DB 
empfehlen könnte, gerne auch eine, die keine SQL ist:
* Lauffähig auf dem Raspberry Pi.
* Es sollen, auch zur Redundanz mehrere Rasps eingesetzt werden. Wäre 
entsprechend sehr schön, wenn man die DBs dazu bringen könnte, sich 
gegenseitig ohne weiteres zutun synchron zu halten.
* Ich würde gerne Protokoll führen, wer wann welchen Befehl 
ausführt/welche Einträge ändert.
* Wer mir eine Datenbank empfehlen kann, wäre schön, wenn noch eine 
empfehlenswertes (!= erster Eintrag bei Google) Tutorial mit dazugeben 
könnte, dass zumindest mal für die ersten Schritte reicht.

Dann braucht das ganze natürlich noch ein Programm inkl. GUI. Zu 
letzteren würde ich für aufwendigere Aufgaben gerne eine GUI über den 
Webbrowser anbieten, kleinere Aufgaben sollen auch vor Ort über einen 
Touchscreen zu erledigen sein. Ich hätte mir darum vorgenommen, für 
beide Varianten eine "BrowserGUI" zu verwenden, für den Touchscreen kann 
ich ja einen Browser einfach in Vollbildschirmbetrieb laufen lassen.

Dazu hätte ich mir jetzt Node.js ergoogelt, leider habe ich außer 
simplen "Hello World"-Beispielen online keine weitere nennenswerte 
Lektüre gefunden, nur ein Buch aus dem Rheinwerkverlag, dass sein Geld 
sicherlich wert ist, da ich aber nichtmal weiß, ob Node.js für mein 
Vorhaben taugt, doch wieder zu teuer ist.
Evtl. hätte da auch wer den einen oder anderen Tipp für mich?

Wie gesagt, dass sind alles Dinge die man sicherlich ergoogeln kann, ich 
will hier aber eben raus aus der "Filterblase", und auch von Erfahrungen 
profitieren.

VG & danke für's durchlesen
da_user

von Wolfgang H. (drahtverhau)


Lesenswert?

Windowsondevices.com

von Helmut H. (helmuth)


Lesenswert?

Matthias S. schrieb:
> an den Abladestellen

Wieviele gibt es? Wie weit voneinander entfernt?

von Noch einer (Gast)


Lesenswert?

Das Problem bei so etwas -- es muss absolut idiotensicher stabil laufen.

Du wirst es mehrmals umbauen, weil die Leute immer neue Weg zur 
Fehlbedienung finden. Support und Administration wird schlimmer als 
alles, was Sisyphus erleiden musste.

Irgendwann wirst du die Idee mit dem Raspi aufgeben. Zunächst ist der 
Stromverbrauch für Batteriebetrieb zu hoch. Deine Leute werden es nicht 
sauber herunterfahren - SD Karte geschreddert. Und ab und zu fällt mal 
WLAN oder USB aus. Das Ding läuft zwar zuverlässiger als so ein 
Schreibtisch-PC mit Browser und Spielen, aber für so etwas nicht 
zuverlässig genug.

Da hast du ein Henne-Ei Problem. Damit du so etwas auf Anhieb richtig 
hinbekommst, musst du so etwas schon mal gemacht haben.

Fred Brooks hat das Zitat zwar schon 1975 veröffentlicht. Ist aber immer 
noch aktuell:

The management question, therefore, is not whether to build a pilot 
system and throw it away. You will do that. Hence plan to throw one 
away; you will, anyhow.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Matthias S. schrieb:

> Ich arbeite in einem Theater. Theater haben meistens den Nachteil, dass
> sie in der Altstadt liegen und somit praktisch keinen Lagerplatz für
> Kulissen haben. So kommt bei uns (wie in den meisten Häusern) täglich
> die Spedition mit Wechselcontainern, holt die Kulisse vom Vortag und
> bringt die des heutigen Tages.

Wie lösen den die meisten anderen Theater das Problem? Vielleicht gibt 
es ja schon Lösungen in anderen Theatern? Vielleicht gibt es das Problem 
in 20 anderen Theatern und die suchen auch eine Lösung und wären bereit 
5% der Kosten für eine Lösung zu tragen?

> Im Moment wird hier dann immer noch der Container notiert und in einer
> Exceltabelle dokumentiert, welche Produktion in welche(n) Container(n)
> liegt. Oder sollte ich besser sagen: "sollte". Einmal vergessen den
> Container aufzuschreiben, schon stürzt das ganze System fast ins Chaos.

Gibt es einen Grund, warum Du dich schon auf eine bestimmte Lösung fest 
legst? Soweit ich das Problem verstanden habe, wäre eine zentrale (z.B. 
Web-) Applikation mit RFID Lesestellen, vielleicht eine gute Lösung. Bei 
RFID Lesestellen, würde ich eher an Smartphones, als an einen Raspi 
denken.

mfg Torsten

von Horst (Gast)


Lesenswert?

Wolfgang H. schrieb:
> Windowsondevices.com

Witzbold.

von Noch einer (Gast)


Lesenswert?

>Bei RFID Lesestellen, würde ich eher an Smartphones, als an einen
>Raspi denken.

Nächste Frage wäre dann: Warum RFID? Nimmt man QR-Code, bringt jedes 
Smartphone die benötigte Hardware mit. Und wenn sowieso jeder 
Internet-Flatrate hat - warum einen eigenen Server administrieren? 
Homepage mit PHP und Mysql kostet weniger als der Strom für einen Raspi.

von Matthias S. (da_user)


Lesenswert?

Helmut H. schrieb:
> Wieviele gibt es? Wie weit voneinander entfernt?

Je nachdem was man alles zu einer Verladestellte dazuzählt. Anfangen 
würden wir wohl mit einer, und dann kommen wohl noch mind. zwei dazu.
Entfernung ist bei denen irrelevant, bei denen wäre auf jeden Fall Strom 
und Netzwerk legbar. Womit auch der Batteriebetrieb wegfällt. Und damit 
auch die Thematik mit dem herunterfahren.
Ich glaube auch, dass ich hier falsch verstanden worden bin: Ich will 
die Verladestellen mit den Raspis ausstatten, fest montiert. Antenne so, 
dass der RFID-Tag erkannt wird, wenn der Container in die Verladestelle 
fährt.

Für die eine oder andere weitere Verladestelle müsste man allerdings 
tatsächlich kreativ werden.

Torsten R. schrieb:
> Gibt es einen Grund, warum Du dich schon auf eine bestimmte Lösung fest
> legst? Soweit ich das Problem verstanden habe, wäre eine zentrale (z.B.
> Web-) Applikation mit RFID Lesestellen, vielleicht eine gute Lösung.

Weil dass eine günstige Lösung wäre. Man muss dazu sagen, dass wir die 
Möglichkeiten hätten, sowas während der Arbeitszeit "nebenbei" zu 
entwickeln, da es in einem Theater genügend Leerlauf gibt.
Es gab auch schon die Idee, sich da mal mit einer FH zusammenzutun, aber 
ehrlich gesagt bau ich das lieber selbst und habe dann die Möglichkeit 
das nach und nach auszubauen. In dem was ein FHler macht, steckt man 
halt nicht selbst drinnen.

Noch einer schrieb:
> Nächste Frage wäre dann: Warum RFID? Nimmt man QR-Code, bringt jedes
> Smartphone die benötigte Hardware mit. Und wenn sowieso jeder
> Internet-Flatrate hat - warum einen eigenen Server administrieren?
> Homepage mit PHP und Mysql kostet weniger als der Strom für einen Raspi.

Homepage usw. wären ja sogar schon vorhanden xD
Problem ist: wir haben tatsächlich genügend Kollegen ohne Datenflat, 
teilw. sogar ohne Handy. Und selbst Kollegen mit Datenflat werden ihr 
privates Handy nicht unbedingt für die Arbeit verwenden wollen. Und als 
Diensthandy gibts wirklich nur ein Handy, nix mit Smart.
Wie gesagt: das ganze ist eine Anstalt den öffentlichen Rechtes, dass 
darf man in keinen Falle mit der freien Wirtschaft verwechseln. Und der 
Faktor "Kunst" kommt dann auch noch dazu ;-)

An reine Lesegeräte an den Verladestellen habe ich natürlich auch schon 
gedacht, aber da kann ich auch einen Raspi dafür kaufen. Und wenn ich 
mehrere nehme, kann ich dafür sorgen, dass die sich gegenseitig synchron 
halten und somit habe ich ein vollautomatisches BackUp.
Stromverbrauch? Sorry, das ich nicht lache! Geschätzt kann ich vom 
Einschaltpeak der Beleuchtung (mind. 1x tägl, oft sogar 2x) die RasPis 
für 10 Jahre betreiben, das fällt also gar nicht ins Gewicht.

Zudem kommt dann wieder der Faktor Mensch dazu: jemand muss zum 
Container und den Tag/QR-Code einlesen. So baue ich mit die Antenne im 
Torbereich hin und das ganze wird automatisch in der DB hinterlegt.

Torsten R. schrieb:
> Wie lösen den die meisten anderen Theater das Problem?

Das ist tatsächlich eine Interessante Frage, bei der wir mittlerweile 
auch dran sind.
Von MUC weiß ich, dass die mit einem Innencontainersystem und einem 
vollautomatischen Hochregalsystem arbeiten. Die werden da also auch ein 
entsprechendes System haben, aber da ist Geld nochmal eine ganz andere 
Liga - Staatshaus.

: Bearbeitet durch User
von Noch einer (Gast)


Lesenswert?

>So baue ich mit die Antenne im Torbereich hin

Hast du schon ausprobiert, ob das mit bezahlbaren RFID Readern klappt?

von Wolfgang H. (drahtverhau)


Lesenswert?

Horst schrieb:
> Wolfgang H. schrieb:
>> Windowsondevices.com
>
> Witzbold.

Wo ist das Problem?

Der Kollege hat Grundkenntnisse in C#

Also soll er Visual Studio verwenden. Template Studio dazu installieren. 
NodeJS will er auch machen und Datenbank.

.NET Core ist OpenSource und er kann vernünftig debuggen... Was will er 
mehr?

von Matthias S. (da_user)


Lesenswert?

Wolfgang H. schrieb:
> Windowsondevices.com

Also Windows 10 IOT,...
Eigentlich schon interessant, ich wäre da ja in einer Umgebung in der 
ich mich ehrlich gesagt wohler fühle, als unter Linux.

Wolfgang H. schrieb:
> Der Kollege hat Grundkenntnisse in C#

Bis jetzt allerdings nur unter Windows.Forms und was halt so dazugehört.

Node.JS ist ja auch nicht gesetzt, da müsste ich mich auch erst voll 
reinarbeiten, von dem her wäre es schon schön, wenn ich bei meinem C# 
bleiben könnte. Das ginge dann in die Richtung ASP.NET wenn ich das 
richtig im Kopf habe?

Als Alternative zu Node.JS hätte ich jetzt noch Django ergoogelt. 
WebFramwork auf Basis von Python. Schaut auf den ersten Blick auch nicht 
so schlecht aus.

Wie schaut es den mit Datenbank aus? Bekomme ich die kostenlosen 
Varianten von mySQL, bzw. MicrosoftSQL dazu, alle Zugriffe zu 
Protokollieren und sich gegenseitig zu synchronisieren?

von Wolfgang H. (drahtverhau)


Lesenswert?

Schau dir mal die Beispiele an. Da sollte was dabei sein was passend für 
dein Vorhaben ist.
Asp.net kann man machen... Ich persönlich finde aber den Restup 
Webserver einfacher.

Für die Oberfläche kann man mittels Template Studio eine 
vorlagenstruktur generieren lassen.

Auf der Webseite sind auch jede Menge Projekte auf hackster.io 
verlinkt... Da sind auf jeden Fall passende Projekte dabei... Musst eben 
das zusammenkopieren was du brauchst.

Datenbank synchronisieren is vermutlich nicht einfach... Aber 
grundsätzlich kann man sqlite verwenden. Evtl ist Azure für dein Projekt 
interessant. Hier besteht auch die Möglichkeit deine Anwendung per 
Webapp zu bedienen...

Jedenfalls gibt's die meisten Sachen als Nuget Paket zum einbinden ins 
visual Studio.

Grundsätzlich können unter Windows IoT immer eine headed Applikation, 
also eine Oberfläche und beliebig viele Background Apps laufen.

Allerdings. Einfach wird dein Vorhaben vermutlich trotzdem nicht... Egal 
ob Windows oder Linux. Aber unter Windows wird vermutlich 
strukturierter.

von Christian K. (Gast)


Lesenswert?

Um wieviel Container geht es denn? Bei de Größenordnung von hundert 
gehts sicher auch ohne Datenbank. Speicherplatz ist auf dem Raspi nicht 
so das große Problem.

von Matthias S. (da_user)


Lesenswert?

Wolfgang H. schrieb:
> Schau dir mal die Beispiele an. Da sollte was dabei sein was passend für
> dein Vorhaben ist.
> [...]
> Allerdings. Einfach wird dein Vorhaben vermutlich trotzdem nicht... Egal
> ob Windows oder Linux. Aber unter Windows wird vermutlich
> strukturierter.

Danke für die vielen Anregungen. Das das ganze nicht einfach wird, ist 
mir natürlich klar. Aber ich denke das ganze kann gesund wachsen, 
insbesondere wenn erstmal grundlegende Dinge integriert sind.

Christian K. schrieb:
> Um wieviel Container geht es denn? Bei de Größenordnung von hundert
> gehts sicher auch ohne Datenbank.

Derzeit sind es, glaube ich, 40 Stk. + evtl. weitere Mietcontainer.
Ich möchte trotzdem nicht auf die Flexibilität einer Datenbank 
verzichten.

Das synchronisieren und protokollieren würde ich notfalls natürlich auch 
programmieren können. Schöner wäre aber natürlich, wenn das die DB 
übernehmen würde.

von Noch einer (Gast)


Lesenswert?

> Aber ich denke das ganze kann gesund wachsen

Solltest erst mal schauen, dass du die RFID Tore zum laufen bringst. Mit 
irgend einer Datenbank dahinter. Dann eine Oberfläche, mit der du den 
Bestand abfragen und Fehlbuchungen korrigieren kannst.

Zunächst irgend was zusammen geklopptes zusätzlich zu der alten Excel 
Tabelle laufen lassen. Erst mal schauen, ob die Leute das so benutzen 
wollen, und ob man es zuverlässig zum laufen bringen kann.

Erst wenn wenn deine Leute sagen, Erfassung und Oberfläche wollen die so 
haben, über die oben genannten konkreten Fragen nachdenken.

Node.JS, ASP.NET... bei dem Umfang deines Systems lohnt sich das alles 
nicht so wirklich. Der Aufwand, den du durch die zusätzliche Komplexität 
bekommst oder der Aufwand die Low Level Sachen selbst schreiben? Liegt 
in der selben Grössenordnung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.