Payment Terminal with TFT screen
experimental - security/privacy & reliability is not yet quite at the level required
Current code: https://github.com/dirkx/makerspaceleiden-payment-node -- not yet versioned or tested.
Inhoud
Terminal met beeldscherm
Video: https://player.vimeo.com/video/628163050?h=e344411a85
Bij dit type terminal kun je kiezen wat je betaald met een "+" en "-" knop.
- Het display toont de text 'Swipe to Pay" met daaronder iets als "Bier" of "Koffie" en het bedrag.
- Met de + en - knop blader je door de opties. Totdat je de juiste hebt.
- Swipe je tag langs de terminal.
- Indien het bedrag groter is dan 5 euro komt de vraag "Pay <bedrag>" -- OK of Cancel. Bij cancel ga je terug naar stap 1. Bij Pay naar de volgende stap.
- Het display toont `paying' ... en tot slot 'Paid by <je eigen naam>'.
- En gaat daarna terug naar stap één.
Indien er iets fout gaat zie je op het scherm een foutmelding. Op de server wordt bijgehouden wat er fout ging. Als gebruiker kun je in dit geval niet veel meer doen dan cash betalen, het bij de mailing lijst melden, of het later weer proberen. Na een minuut geen gebruik gaat de terminal ook altijd terug naar stap 1.
Lasercut prototype
Settings for the laser cutter: Letters; 1500 at 30%; holes 1000 at 60% from 3mm plexiglass. Order: letters, small holes, big holes and then the outline.
Buttons are ~29-30 mm arcade style pushbuttons.
Bill of material
In decreasing cost
- ESP32, 38 pin version; ~7 euro (https://www.amazon.nl/gp/product/B074RG86SR)
- 1.77" 160(RGB)x128 TFT screen; ~7 euro (https://www.amazon.nl/AZDelivery-Display-128x160-compatibel-Inclusief/dp/B07TJGF8HS). Pulls 40+ mAmp; too much for GPIO direct drive.
- 1 RFID reader; ~2.50 Euro; (https://www.amazon.nl/gp/product/B074S9FZC5)
- 2 arcade buttons; ~ 2x2 Euro, donation to the space van Leon. LEDs pull about 11 milliAmps (direct GPIO drive ok). https://www.amazon.nl/EG-booglichten-ingebouwde-schakelaar-verlichte/dp/B01N11BDX9
- Stukje plexiglas uit lasercut restjes
- 3D printed spacers/pinnen van plastic voor RFID reader mount.
- 4 boutjes/moertjes 2.3mm uit space voorraad voor scherm - mag wel metaal zijn.
- Wat draadjes uit electronica voorraad.
- USB kabeltje en adaptortje (lag op tafel).
- Restje hipster hout
In versie 2
- Added capacitor across 5volt
- Added capacitor (10uF) across 3v3 to the TFT
Totaal: < 20 euro; 10 minuten 3D printen; 15 minuten lasersnijden; 15 minuten hout zagen, nachtje drogen (dank aan de Bandspanner/Belt clamp strap) en 30 minuten solderen/assemblage.
Wiring
EPS32 board
GPIO | Functie |
---|---|
Vin | to buttons LED, to power supply (5V) |
3V3 | To both boards, VCC, Both Anodes TFT (8,9) |
GND | To buttons, to both boards |
23 | LED button 1 |
22 | LED button 2 |
32 | Switch button 1; with pull-up & connect to GND for board v1; with 2k2 resistor to ground and switch wired to 5V for v2. |
33 | Switch button 2; with pull-up & connect to GND for board v1; with 2k2 resistor to ground and switch wired to 5V for v2. |
12 | TFT_MOSI |
14 | TFT_SCLK / clock |
26 | TFT_CS, SS, Select |
27 | TFT_DC, A0, data/command |
2 | TFT_RESET |
16 | RFID_SCLK |
16 | RFID_SCLK |
5 | RFID_MOSI |
13 | RFID_MISO |
25 | RFID_CS, SS, SDA |
16 | RFID_RESET |
3 | RFID_IRQ - label is RX0 |
Button 1
Wiring for board 2; were we make use of the GPIO _in_put being 5Volt tolerant. And an extra 2k2 Resistor was added to the ground on the PCB.
pin | kleur | label | functie |
---|---|---|---|
1 | geel | Switch | GPIO 32 |
2 | zwart | LED A, Switch | 5V |
3 | rood | LED K | GPIO 23 |
Button 1
Wiring for board 2; were we make use of the GPIO _in_put being 5Volt tolerant. And an extra 2k2 Resistor was added to the ground on the PCB.
pin | kleur | label | functie |
---|---|---|---|
1 | geel | Switch | GPIO 33 |
2 | zwart | LED K, Switch | GND |
3 | rood | LED A | GPIO 22 |
RFID
pin | kleur | label | functie |
---|---|---|---|
1 | zwart | SDA | RFID_CS, GPIO25 |
2 | rood | SCK | RFID_SCLK, GPIO16 |
3 | wit | MOSI | RFID_MOSI, GPIO5 |
4 | geel | MISO | RFID_MISO, GPIO13 |
5 | orange | IRQ | RFID_IRQ, GPIO3, Labeled RX0 |
6 | groen | GND | GND |
7 | blauw | RESET | RFID_RESET, GPIO 17 |
8 | paars | 3V3 | 3V3 |
Scherm
pin | kleur | label | functie |
---|---|---|---|
1 | zwart | GND | GND |
2 | rood | VCC | 3V3 |
3 | wit | SCK | TFT_SCLK, GPIO14 |
4 | geel | SDA | TFT_MOSI, GPIO12 |
5 | orange | RES | TFT_RST, GPIO2 |
6 | groen | RS | TFT_DC, GPIO27 |
7 | blauw | CS | TFT_CS, GPIO26 |
8 | paars | LED A | 3V3 with Capacitor. |