The Breathing Shell – a Bio-Sensory Feedback Device for Regulating Smartphone Use

by roselian0320 in Circuits > Arduino

65 Views, 0 Favorites, 0 Comments

The Breathing Shell – a Bio-Sensory Feedback Device for Regulating Smartphone Use

a3.jpg

Observation:

Modern people are deeply trapped in a cycle of screen addiction, often spending large amounts of time scrolling on their phones unconsciously. This excessive dependence not only leads to digital addiction and fragmented attention, but also creates a disconnection from real-life experiences, gradually causing people to lose awareness of the present moment and control over their daily lives.

Problem Statement:

How might we design an interactive device that creates a sense of discomfort when a user uses their phone for too long, encouraging them to put the phone down and establish healthier digital boundaries?

Solution:

By using the most intuitive visual language of light— “anxiety”—the abstract concept of screen-time is transformed into a tangible experience. Putting down the phone becomes an interaction that allows the device to “calm down” and recover.

Core Functions:

  1. Grip Detection: Detects and calculates the duration of continuous phone holding.
  2. Negative Feedback: When the usage time exceeds a limit, the device triggers harsh, flashing red light, Vibrating creating visual stress that encourages the user to put down the phone.
  3. Recovery Through Rest: Only when the phone is placed down and left idle (similar to charging) will the warning light stop.
  4. Breathing Light: When recharging, the device uses brightness levels to indicate the charging status. At the same time, a calm breathing light pattern symbolizes recovery and relaxation

Supplies

  1. Arduino board
  2. TTP223 Presence Sensor
  3. SW-420 Activity Sensor
  4. 3 color LED
  5. Vibration Motor
  6. 3D printing for final look design


*All sensors and the motor module used here have built-in resistors, please check your own situation if you need additional resistors.

Hardware Wiring

To begin, establish your power rails by connecting the Arduino 5V and GND pins to the positive and negative rows of your breadboard. All components must share these common power lines to function.

Input Sensors (Detection)

These sensors provide data to the Arduino to determine if the phone is being used.

  1. TTP223 Touch Sensor: Connect the SIG pin to Digital Pin 2.
  2. SW-420 Vibration Sensor: Connect the DO (Digital Out) pin to Digital Pin 3.

Output Actuators (Feedback)

These components provide visual and physical alerts based on your remaining budget.

  1. LED : Connected to digital pin 9, 10, 11, notice that blue pin should be PWM-capable.
  2. Vibration Motor Module: Connect the IN/SIG pin to Digital Pin 6. (This triggers the haptic pulsing when the budget is critical).


* Since most library does not include specific models for the TTP223 or SW-420, I have used PIR sensors as placeholders. Because both the PIR and the original sensors operate on digital signals (HIGH/LOW), they accurately represent the circuit's logic and pin connections

Coding

The core of this project is a Balanced Feedback Loop that manages digital usage through three distinct operational states. The system tracks a "Budget" variable, which represents the user's remaining allowed screen time.

State A: Idle (Fully Charged)

  1. Condition: The phone is not being held (no touch detected) and the budget has reached 100%.
  2. Behavior: The budget remains at its maximum capacity and no further recharge occurs.
  3. Indicator: The Blue LED stays at full brightness, indicating the system is fully recovered and in a stable state.

State B: Rest (Recharging)

  1. Condition: The phone is sitting still (No touch detected and vibration levels are below the threshold).
  2. Behavior: The budget increases by a recharge rate until it reaches the maximum capacity of 100%.
  3. Indicator: The Blue LED gradually brightens and breathes as the "battery" refills.

State C: Usage (Draining)

  1. Condition: Both the TTP223 Touch Sensor is active AND the SW-420 detects movement (shaking or scrolling).
  2. Behavior: The budget decreases by a drain rate.
  3. Indicator: The Blue LED dims proportionally as the budget drops.

State D: Alarm (Warning)

  1. Condition: The budget drops below the user-defined threshold.
  2. Behavior: The system enters a "Critical" state to enforce a break.
  3. Indicator: When the remaining level falls below a threshold, the red LED begins to blink to remind users. When it drops below 10%, the vibration motor pulses together with the red light (Bzz… Bzz…), creating a stronger sense of urgency.


The code file is provided below.

Downloads

Phone Using Budget Formula

Drain Rate Formulas

The behavior of your device is governed by three variables: the Drain Rate, the Recharge Rate, and the Alarm Threshold. In our formulas:

drainMultiplier = 1.2 + (1.0 - budget / 100.0) * 2.5

The budget drains faster as it decreases. The lower the remaining budget, the higher the drain multiplier, creating an accelerating depletion effect. Moreover, different interaction states apply different drain levels based on the intensity of phone use.

Interaction States:

  1. Press only: Indicates the user has just started holding the phone → moderate drain.
  2. Press + vibration: Indicates active phone usage → high drain.
  3. Recent press + vibration: Indicates the user has just finished using the phone → low drain.


The Utility of the Threshold

The Alarm Threshold defines the "Safe Zone" versus the "Critical Zone."

  1. Safe Zone: The budget is above the threshold. The user sees a Blue LED indicating how much time is left.
  2. Critical Zone: The budget drops below the threshold. The software triggers the Alarm logic, there are 3 sub-states in the alarm:
  3. Red LED On: Remaining level at 30%.
  4. Blinking Red LED: Remaining level at 20%.
  5. Blinking Red LED + Vibration: Remaining level at 10% (strong warning).


Product Design and Final Look

a1.jpg
a2.jpg
a3.jpg
截圖 2026-03-29 17.55.09.png

Following the hardware and software integration, we utilized 3D printing technology to create a bespoke protective casing. This enclosure was specifically designed to package all sensors and wiring into a clean, functional unit. We have created two different prototypes.

Demonstration Video

Members

連音祺: instructable writing, coding, presentation

陳奕安: coding, prototyping, presentation

王中甫: coding, prototyping, designing, presentation