Wiki/getränkezähler.md

6.9 KiB

+++ title = "Getränkezähler" +++

Unter-Seiten:

Benutzer-Guide

Anonym Bezahlen

Um anonym zu bezahlen, kannst du dir kleine Zettel mit einem Barcode ausdrucken. Dieser Barcode verfällt, nachdem sein Guthaben aufgebraucht ist.

  1. Hierzu tippst du am Getränkescanner auf Geld einwerfen
  2. Wirf einen Schein in die Kasse hinter dir.
  3. Tippe den entsprechenden Betrag auf dem Display an.
  4. Dein Code wird ausgedruckt. Du kannst jetzt Buchen!

Getränk Trinken

  1. Scanne ein Getränk.
  2. Tippe Buchen. Alternativ kannst du deinen Zettel oder Member-Code scannen.
    1. Wähle deinen Anfangsbuchstaben.
    2. Wähle deinen Nutzer.
  3. Drücke Trinken!

Alternativ kannst du auch zuerst deinen Nutzer auswählen (oder Member-Code scannen), und dann dein Getränk scannen. Drücke danach genauso auf Trinken.

Konzept

Idee

Es soll mithilfe eines Barcode Scanners gezählt werden, wie viele Getränke man getrunken hat. So behält jeder den Überblick, wieviel er dem Verein spenden sollte und wir wissen, wann neue Getränke besorgt werden müssen.

github repository des Getränkezählers.

Anleitung

==> Hier gehts zur Getränkezähler Usage

Hacker

Zeitplan

1. Termin: 02.07.2015 18:00 Uhr
    Technologie entscheiden
    Setup Raspberry PI
    Ausgabe Barcode auf Anzeige (HDMI-Bildschirm)
2. Termin: 09.07.2015 18:00 Uhr
    Barcode-Format spezifizieren
    Hintergrundbeleuchtung, Kontrast einstellen
3. Termin: 16.07.2015 18:00 Uhr
    SQL Datenbank modellieren
4. Termin: 27.04.2016
    Case fertigbauen und im Space installieren
    RasPi bestellen
5. Termin: 28.04.2016
    Raspi anschliessen und einrichten
    Barcodes in Datenbank speichern und zählen
6. Termin 29.04.2016
    Flipdot Display ansteuern
    low-res font implementieren
    Testing (Hacked) ^^
7. Termin: 28.05.2016
     Touchscreen Interface:
     Touch-Matrix,
     homescreen mit Namensauswahl,
     login Begrüßung mit Piechart-Dummy und Scan Aufforderung
8. Termin: 29.05.2016
     Anbindung an LDAP (User-Datenbank)
9. Termin: 11.06.2016
     Kallibration der Touch-Matrix - fixed!

Details

Buchungsprozesse

Spenden per Prepaid-Karte soll ermöglicht werden, nicht erzwungen. Das analoge Spendensystem (von *hel) wird nicht abgeschafft, sondern ergänzt.

Fall 1 - member ohne Digital-Konto

1. homescreen with login

Flipdot
Getränkescanner
Wer bist du?
[a][b][c][d][e][f][g]
[h][i][j][k][l][m][n]
[o][p][q][r][s][t][u]
[v][w][x][y][z][#]
[Gast]

(Ereignis: Tastendruck z.B. wenn # dann Sonderzeichen Namen zeigen)

2. name selection

Dennis
DoB
DmB
...

(Ereignis: Namenswahl oder timeout 5s)

3. scan demand

Hallo Dennis,
Scanne ein Getränk!

(Ereignis: Scan! oder timeout 10s)

4. scan result & donate prompt

Club Mate
EAN 123456778890
Spende bitte 1,00€ in die Kasse!
Flaschenaufkleber wird gedruckt...

(Warten bis timeout 10s oder Touch! -> home)


Fall 2 - member mit Digital-Konto und Barcode membercard

(Ereignis: Scan einer membercard!)

1. scan demand & credit balance

Hallo Banana,
Kontostand: 13€
Scanne ein Getränk!

(Ereignis: timeout 10s -> home oder Scan!)

2. scan result & credit balance

Club Mate
EAN 123456778890
1,00€ von Dir wurde gespendet!
Kontostand: 12€
Flaschenaufkleber wird gedruckt...

Fall 3 - Direkter Scan einer Flasche/Objekts

(Ereignis: Scan!)

1. scan result & donation prompt

Club Mate
EAN 123456778890
1,00€ in die Kasse spenden?
[Ja] [Nein]

(Ereignis: "Nein"! oder timeout 10s -> zurück nach homescreen. "Ja"! -> Namensauswahl)

2. homescreen with login

Wer bist Du?
[a][b][c][d][e][f][g]
[h][i][j][k][l][m][n]
[o][p][q][r][s][t][u]
[v][w][x][y][z][#]
[Gast]

(Ereignis: timeout 5s -> home; Tastendruck z.B. wenn # dann Sonderzeichen Namen zeigen)

3. name selection

Dennis
DoB
DmB
...

(Ereignis: timeout 5s -> home oder Namenswahl)

4. donation prompt

Hallo DmB,
Spende bitte 1,00€ in die Kasse!
Flaschenaufkleber wird gedruckt...

(Warten bis timeout 10s oder Touch! -> home)


Spezifikation für den Barcode

23Z YYYY YYYXX C

enum Z
{
    Steuerkarte = 0,
    Guthabenkarte = 1
}

X - Steuerkarte:
        Anzahl an Elementen/Flaschen
    Guthabenkarte:
        Ursprünglicher Betrag

Y - Steuerkarte:
        0
    Guthabenkarte:
        Random

C - EAN-Checksum

Der Barcode startet mit 23, um mit dem EAN-13-Standard kompatibel zu sein (20-29 für In-Store-Functions). Vgl: http://www.barcodeisland.com/ean13.phtml

Datenbank

Feature Ideen

  • Scanpiep ersetzen durch Schraubverschluss Geräusch (Zischhhh)
  • NFC Bezahl Methode
  • Nach Scan wird ein selbstklebendes Etikett ausgedruckt zum Flasche markieren (User ID, Datum, Glückskeksspruch ...)
  • Auf Flipdot Display werden gescannte Getränke gezählt (beta: nur 3 stellig, später mehr Infos wie Getränketyp)
  • Datenbank schlägt Alarm, wenn kritische Lagerbestände unterschritten werden (-> Getränke-Einkauf)
  • Statistiken über Getränke :D
  • Zusätzlich gibt es einen Hardware Knopf mit dem ich alle Aktionen abbrechen kann und wieder zurück in den Initialzustand wechseln kann
  • Datenbank läuft mit auf dem PI, Daten bleiben im Space

Hack

Getränkezähler mit Flipdotdisplay verbunden und schöne Invaders lowres-font implementiert.

"Wir kommen doch nicht über 999 Getränke pro Tag oder?" -> Getränkezähler geDoSt: Makita, Deutschlandflagge, Krepklebeband, Bier-Etikett, Mate-Ettiket ^^