Inspiration

University registration systems are notoriously boring and inefficient. We wanted to take A BITE out of campus management by injecting whimsy interaction and gamification into the mundane act of managing events, attendance and more.

What it does

SharkByte is our gamified, extendable RFID ecosystem for universities. When a student taps their card:

  • Success: A plethora of engaging events occur: the OLED displays a personalised message and animation, a green LED flashes, the shark's fin flaps and all is accompanied by a melodious tune.
  • Error: Unregistered cards get a red LED flash and an unmistakable error message, accompanied by an appropriately obnoxious buzz.
  • The Backend: It seamlessly communicates attendance with our dedicated web dashboard and rewards students with points/XP for streaks and titles.

How we built it

  • Hardware: ESP32, PN532 NFC reader, SSD1306 OLED, a servo motor, LEDs, and a passive buzzer.
  • Software: C++ firmware using non-blocking millis() logic for simultaneous animations and hardware reactions. User interface built with React + TypeScript, powered by a Flask web server and MongoDB database.
  • Connectivity: Connects to the internet to fire JSON payloads to our custom API backend via HTTP POST requests. Deployed on the internet via CloudFlare, usable anywhere in the world.

Challenges we ran into

  • Blocking Code: Standard delay() functions froze our OLED while the buzzer played. We had to rewrite our core loop using delta-time.
  • Enterprise WiFi: Authenticating an ESP32 on a strict university eduroam network was a massive headache.
  • HTTPS Certificates: Using WebNFC requires secure websites, which was not immediately compatible with Cloudflare. We had to extensively debug the different settings on both the Cloudflare platform and our web app to fully integrate it.

Accomplishments that we're proud of

  • Maintenance Mode: Tapping a specific "Admin" card forces the ESP32 to host its own WiFi Access Point and captive web portal, letting us change API endpoints without reflashing the board.
  • Delta-Time Animations: We wrote custom rendering logic that moves the shark bitmap based on real-world time, seeing smooth animations, buzzer sounds, and motor movements simultaneously.
  • The Design and Gamification: One of the core aspects of our system from the very beginning was to ensure it was engaging, both in function and in form. We believe we succeeded in both aspects to a good extent.

What we learned

Building cohesive hardware is about orchestration. We learned how to manage multiple devices on an I2C bus, write non-blocking state machines, and collaborate strongly as a team, strictly dividing workloads for maximum efficiently, parallelisation and cooperation.

What's next for SharkByte

Designing a custom PCB to replace the breadboard wiring, 3D printing a more robust shark enclosure, getting more societies and universities on board with our system and expanding the feature set to strongly integrate inventory management, new gamification features such as prizes, and more.

Built With

Share this project:

Updates