---
title: Getränkezähler
description: 
published: 1
date: 2023-06-07T05:59:45.298Z
tags: 
editor: markdown
dateCreated: 2023-06-05T20:28:05.841Z
---

## 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](https://github.com/flipdot/drinks-scanner-display)
des Getränkezählers.

### Anleitung

==> Hier gehts zur [Getränkezähler Usage](usage/)

### Hacker

- DoB (Projektmanagement)
- Niklas (Datenbank/Modellierung, Externe Schnittstellen (später))
- Sören ([Ansteuerung
  Display](http://www.raspberrypi-spy.co.uk/wp-content/uploads/2012/07/16x2_lcd_module.jpg))
- Eike
  (http://www.raspberrypi-spy.co.uk/2012/07/16x2-lcd-module-control-using-python\|Elektronik\]\])
- Anselm (Core-Logik)
- Jonas (Core-Logik)
- kssoz (Testing, Installation, Buchungsdialoge)
- nox_x (Callibration Display)

### 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

<!-- {{http://i.imgur.com/QJvq4nW.png}} -->

#### 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 \^\^

<!-- {{attachment:IMG_20160429_190628.jpg}} -->
<!-- {{attachment:IMG_20160429_190844.jpg}} -->
<!-- {{attachment:VID_20160429_190711.mp4}} -->
<!-- {{attachment:VID_20160429_190901.mp4}} -->
<!-- {{attachment:VID_20160501_211820.mp4}} -->
<!-- <attachment:VID_20160501_211820.mp4> -->
<!-- <attachment:VID_20160429_190711.mp4> -->
<!-- <attachment:VID_20160429_190901.mp4> -->
