Peso
Physical coin-tracker firmware with PlatformIO and embedded data logging — ESP32 coin-slot ISR counting with session totals and on-device UI assets.
Problem
Community savings circles and sari-sari ledgers still rely on handwritten coin tallies that drift at shift changes. Peso (coin-tracker) firmware listens to coin-slot pulses, accumulates session value, and serves compressed web assets for local balance checks.
What it covers
- GPIO ISR trampoline for coin-slot pulse edges on ESP32
- Session accepted monetary value with invalid sequence tracking
- On-device gzipped HTML/JS dashboard assets
- PlatformIO workspace with deployment checklist docs
bool CoinSlot::begin() {
pinMode(COIN_SLOT_PIN, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(COIN_SLOT_PIN), coinSlotIsrTrampoline, CHANGE);
return true;
}
void IRAM_ATTR CoinSlot::coinSlotIsrTrampoline() {
if (s_instance_ptr_for_isr) {
s_instance_ptr_for_isr->handleEdge();
}
}