A small prototype for a Nano & Banano ATM. Payouts in physical euro coins, made with ESP32 and Lego bricks. Link to reddit post: https://www.reddit.com/r/nanocurrency/comments/pssu65/i_built_a_prototype_for_a_nano_banano_atm_payouts

ESP32 NANO & BANANO ATM

A small prototype for a Nano & Banano ATM. Payouts in physical euro coins, made with ESP32 and Lego bricks. Link to reddit post: https://www.reddit.com/r/nanocurrency/comments/pssu65/i_built_a_prototype_for_a_nano_banano_atm_payouts

YouTube video: https://www.youtube.com/watch?v=7HnLuUlSCQs

The ESP32 microcontroller has built-in WiFi and allows you to program and use libraries in the Arduino IDE. It can be powered from a powerbank, needs 5V on the power supply, runs on 3.3V logic. The cost of such a microcontroller is around $ 8 or less. It also has PWM pins that allow you to control the servo and allows communication via SPI, which was used to display messages on the LCD screen from Nokia 5110.

The Nokia 5110 display works on 3.3V logic and has a resolution of 84x48 pixels, the display is single-color, has LED backlight. The display matrix consumes a current of approx. 6-7mA, while the backlight diodes, when supplied with 3.3V voltage without a limiting resistor (at maximum backlight), consume approx. 100mA of current.

Micro Servo SG90 is a popular and cheap servo. The rotation angle is 180 °. Direct powering of the servo from the microcontroller could result in its damage - that's why an additional 9V battery with the MB102 power module was used, which is easy to attach to the prototype board and provides 5V voltage (which is within the required limit of the servo).

The housing is made of Lego bricks, and the servo is placed in it in such a way that the arm connected to the SG90 allows for pushing out 1 EURO coins individually. The coins are stacked on top of each other and the housing allows only the coin at the bottom to be ejected. Additionally, one button was used in the project to interact with the user.

After connecting the power supply, the device connects to the WiFi network and, via API, checks the status of the wallet to which the user will deposit the cryptocurrency. This state is saved at the beginning, so that later when it is refreshed, it can be compared with the previous state and how much was transferred by the user. After saving the account balance, the device switches to the waiting mode for pressing the button and starting the transaction.

After pressing the button, the current price of the cryptocurrency is downloaded via the API, converted into the value of 1 EURO rounded up to hundredths (in the case of Nano) and to the whole (in the case of Banano) and displays the rates on the screen. The program then updates the information on account balances and compares them with the previous ones. It does this at intervals of seconds and for 50 attempts. If during these 50 attempts (about 3 minutes) no larger wallet balance is detected, the machine will go back to the state of waiting for pressing the button and restarting the whole process.

If, however, a larger balance is detected on any of the wallets, the program checks whether the difference between these amounts corresponds to the value of at least 1 EURO in relation to the displayed exchange rate and pays the appropriate amount of EURO coins by pushing the coins with the microserve arm. After the coins have been dispensed, the machine returns to its initial state.

Similar Resources

STM32 firmware for a physical switch to set the GRUB boot selection

STM32 firmware for a physical switch to set the GRUB boot selection

Sep 22, 2022

A prototype of HCL MLIR dialect

An out-of-tree MLIR dialect This is an example of an out-of-tree MLIR dialect along with a hcl opt-like tool to operate on that dialect. Building This

Dec 11, 2021

A prototype, not playable but runnable

A prototype, not playable but runnable

Game developed by Dave Jornales, Masayuki Retuerma, Angelene Balais, Cleo Alcanzo, and Arsenic Salangsang Copyright (c) 2021 Dave Jornales (@AkagamiDe

Dec 10, 2021

Playstation Vita first_loader hack for prototype units on firmware 1.03

broombroom Playstation Vita first_loader hack for prototype units on firmware 1.03 This hack grants "bootrom"-level code execution on the PSP2 by expl

Feb 27, 2022

Breaking the physical limits of fonts

Breaking the physical limits of fonts

Breaking the physical limits of fonts The challenge: in the fewest resources possible, render meaningful text. How small can a font really go? How man

Aug 6, 2022

Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++, the architecture and usage like Cobalt Strike

Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++, the architecture and usage like Cobalt Strike

Khepri Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++ Description Khepri is a Cross-platform agent, the archi

Sep 30, 2022

Violent Fungus is a command and control (C2) software suite, providing red teams post-exploitation persistence and other juicy stuff.

Violent Fungus is a command and control (C2) software suite, providing red teams post-exploitation persistence and other juicy stuff.

Sep 7, 2022

🎮 Plants vs. Zombies multiplayer battle, developed via reverse engineering, inline hook and dynamic-link library injection. Two online players defend and attack as the plant side and zombie side respectively.

🎮 Plants vs. Zombies multiplayer battle, developed via reverse engineering, inline hook and dynamic-link library injection. Two online players defend and attack as the plant side and zombie side respectively.

Plants vs. Zombies Online Battle This project has two original repositories: https://github.com/czs108/Plants-vs.-Zombies-Online-Battle https://github

Oct 14, 2021

Firebase Arduino Client Library for ESP8266 and ESP32. The unified version of Firebase-ESP8266 and Firebase-ESP32 Realtime database libraries with Cloud Firestore, Firebase and Google Cloud Storage, Cloud messaging and Cloud Functions supports.

Firebase Arduino Client Library for ESP8266 and ESP32. The unified version of Firebase-ESP8266 and Firebase-ESP32 Realtime database libraries with Cloud Firestore, Firebase and Google Cloud Storage, Cloud messaging and Cloud Functions supports.

Firebase Arduino Client Library for ESP8266 and ESP32 Google's Firebase Arduino Client Library for ESP8266 and ESP32 v 2.0.3 This library supports ESP

Sep 23, 2022
A C program to strip comments from a c file and output the result to a new file.

Strip C-like Comments A C program to strip comments from a c file and output the result to a new file. Features Fast and Without any third-party libra

Feb 22, 2022
Archer is the codename for our EPD laptop prototype with custom-made motherboard
Archer is the codename for our EPD laptop prototype with custom-made motherboard

Archer is the codename of our 1st EPD laptop prototype with custom-designed motherboard and 3D-printed chassis. Specifications The specification liste

Sep 7, 2022
The Project name is "ATM - Automated Teller Machine" and It is for beginners level Project.

ATM - Automated Teller Machine The Project name is "ATM - Automated Teller Machine" and It is for beginners level Project. What is ATM? An automated t

Nov 7, 2021
The Project name is "ATM - Automated Teller Machine" and It is for beginners level Project.

ATM - Automated Teller Machine The Project name is "ATM - Automated Teller Machine" and It is for beginners level Project. What is ATM? An automated t

Nov 8, 2021
The Project name is "ATM - Automated Teller Machine" and It is for beginners level Project.

ATM - Automated Teller Machine The Project name is "ATM - Automated Teller Machine" and It is for beginners level Project. What is ATM? An automated t

Dec 26, 2021
MyOwnBricks - A library for building your own sensors and devices compatible with the modern LEGO PoweredUp system.
MyOwnBricks - A library for building your own sensors and devices compatible with the modern LEGO PoweredUp system.

English version (See at the end for the French version) MyOwnBricks MyOwnBricks is a library for building your own sensors and devices compatible with

Jun 27, 2022
ESP32-Skid-Steer - Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on the model.
ESP32-Skid-Steer - Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on the model.

ESP32-Skid-Steer Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on

Feb 4, 2022
(C++) Integrity dynamic link library made in C++ that you can export to C#

C-Integrity-Library ✔ (C++) Integrity dynamic link library made in C++ that can export to C# C# Exports [DllImport("Exports.dll")] public static exter

Jan 20, 2022
Memory Process File System (MemProcFS) is an easy and convenient way of viewing physical memory as files in a virtual file system
Memory Process File System (MemProcFS) is an easy and convenient way of viewing physical memory as files in a virtual file system

The Memory Process File System (MemProcFS) is an easy and convenient way of viewing physical memory as files in a virtual file system.

Sep 29, 2022
Physical Tic-Tac-Toe smart board with PvP mode and two levels of AI. Built atop a custom PCB connected to an Arduino Mega 2560.

TicTacToe_SmartBoard The files in TicTacToe_SmartBoard are based on the files in https://wiki.illinois.edu/wiki/display/ECE110HLSF15/Tic-Tac-Toe+Smart

Jul 22, 2022