Knitted Conductive Stretch Sensor for BPM Monitoring
Abstract
- Designed and implemented a wearable, low-cost breathing sensor system using a knitted conductive stretch sensor and an Arduino UNO microcontroller to continuously monitor respiratory patterns.
- Conducted rigorous testing and utilised Arduino IDE for programming and serial monitoring, successfully demonstrating real-time alerts for low and high BPM warnings, and precise detection of normal breathing rhythms.
- GitHub: https://github.com/lenxium/breathing-sensor
Introduction
Traditional breathing monitoring methods are often manual, which are inefficient, prone to error, and not continuously tracked, yet irregular breathing or temporary cessation of breathing can be life-threatening if not noticed. This design includes a wearable breathing sensor that alerts the caregiver, thereby enabling prompt intervention.
Working Principle
The breathing sensor is a knitted conductive stretch sensor around the chest. It is made from interwoven conductive thread whose electrical resistance changes with its geometric shape (R=ρ L/A) (Lumen Learning, 2025). As the sensor stretches during user’s inhalation, length (L) increases and its cross-sectional area (A). This increases R. After conversion of the resistance to output voltage, the Arduino’s analogue input captures the output voltage change as a waveform in order to model chest motion (i.e. breathing motion).
By applying the formula V_out = (analogRead value / 1023) * 5V; sensor’s voltage output can be derived in reference to a fixed resistor, R_ref= 108ohms. The choice of R_ref affects the overall sensitivity of the stretch sensor. An increase in the sensor’s resistance translates to a higher V_out reading, which makes the analysis of breathing frequency and depth more straightforward.
Circuit Selection and Design
Arduino cannot measure resistance directly; it can only measure voltage. So, there are two ways to covert resistance into output voltage:
- Ohm’s Law (V=I∙R): This approach is accurate but it requires additional power regulation components to make (I=constant), so it is not ideal for simple, low-cost microcontroller designs.
- Voltage Divider: It is a simple circuit on which the breathing sensor is connected in series with a fixed resistor, the output volage (i.e. the voltage measured by the Arduino) is such that: V_out=V_in×(R_sensor/(R_ref+R_sensor)) (Hamel, 2025).
This design adopts the voltage divider due to its simplicity, low cost, and compatibility with Arduino’s analogue input. The circuit diagram is shown in Figure x.1, a fixed resistor (R_ref = 108 ohms) is connected in series with the attached breathing sensor.
Technical Implementation
The breathing sensor was sewn into an elastic waistband in a zig-zag pattern to increase its sensitivity to stretch (see Figure 1). The circuit was powered by the Arduino’s 5V output, with V_out connected to analogue pin A0 (see Figure 2). For prototyping, the sensor was connected to the voltage divider on a breadboard by alligator clips.
Testing and Results Analysis (Isolated Module Testing)
Testing Environment:
- Power Supply: USB 5V regulated
- Microcontroller: Arduino UNO
- Connection Method: Breadboard with alligator clips and jump wires attached.
- Serial Monitoring: Arduino IDE Serial Monitor (9600 baud rate)
Observations:
Below are examples of the voltage waveform and analogue values captured during testing:
Test ID/Test Item | Method/Description | Expected Outcome | Pass/Fail | Evidence |
---|---|---|---|---|
1.Low BPM Warning | Simulate slow breathing to reduce BOM below threshold | LED permanently ON; Output a warning message | Pass | Fig.5 |
2.Normal Breathing LED Blink | Regular breathing at around 12 BPM; | Correct rate displayed; LED Blinks with each breath | Pass | Fig.6 |
3.High BPM Warning | Simulink high BPM beyond threshold | LED permanently ON; Output a warning message | Pass | Fig.7 |
Reference
- Autodesk (2025), DIY Breath Sensor With Arduino (Conductive Knitted Stretch Sensor). Available at: https://www.instructables.com/DIY-Breath-Sensor-with-Arduino-Conductive-Knitted-/ (Accessed: 28th February 2025)