DEV Community

Cover image for How I Built a WiFi Motion Detection App Using RSSI in Flutter
Md Sazzadul islam
Md Sazzadul islam

Posted on

How I Built a WiFi Motion Detection App Using RSSI in Flutter

WiFi signals are everywhere around us.

But most people only think of WiFi as internet connectivity.

What many don’t realize is that WiFi signals can also be used for experimental human sensing — including motion detection, presence estimation, breathing monitoring, and activity analysis.

Recently, I started building an experimental Flutter application called:

SenseWave: WiFi Motion Detector

The app explores how RSSI (Received Signal Strength Indicator) fluctuations can be analyzed in real time to estimate environmental changes caused by human movement.

This project combines:

  • Flutter
  • Android native WiFi scanning
  • RSSI signal analysis
  • Realtime visualization
  • Signal processing
  • Motion analytics

without using:

  • Camera
  • Microphone
  • Bluetooth
  • External sensors

What Is RSSI?

RSSI stands for:

Received Signal Strength Indicator

Every WiFi packet received by your device has a signal strength value.

Example:

-45 dBm → Strong signal
-72 dBm → Weak signal
Enter fullscreen mode Exit fullscreen mode

When humans move inside a room, they affect:

  • signal reflections
  • attenuation
  • multipath propagation
  • interference patterns

These small fluctuations can be analyzed to estimate motion and environmental activity.


What My App Can Detect

The app is experimental, but currently focuses on:

1. Presence Detection

Estimate whether someone is inside a room by analyzing RSSI variance and signal instability.

Use cases:

  • smart home occupancy
  • room activity monitoring
  • automation triggers

2. Motion Detection

Human movement causes rapid RSSI fluctuations.

The app analyzes:

  • variance
  • signal spikes
  • temporal instability

to estimate:

  • movement intensity
  • room activity level
  • motion events

3. Approximate Position Heatmap

Using RSSI changes from nearby access points, the app can generate an approximate activity heatmap.

Important:
This is NOT precise indoor positioning.

It is an experimental approximation based on signal disturbance.


4. Breathing Detection (Experimental)

Breathing creates micro signal fluctuations.

Using:

  • FFT analysis
  • low-pass filtering
  • periodicity detection

the app attempts to estimate breathing rate under controlled conditions.

Best results:

  • single person
  • short distance
  • minimal interference

5. Sleep Monitoring

The app can also analyze:

  • breathing stability
  • nighttime motion
  • movement interruptions

to create experimental sleep activity analytics.


6. Walking Pattern Recognition

Walking generates periodic RSSI peaks.

By analyzing:

  • frequency patterns
  • step periodicity
  • motion rhythm

the app estimates:

  • walking activity
  • movement intensity
  • approximate step frequency

Signal Processing

RSSI data is noisy.

To improve stability, I use:

  • moving average filters
  • FFT
  • Kalman filtering
  • variance analysis
  • peak detection

These help extract meaningful patterns from unstable WiFi signals.


Why This Technology Is Interesting

WiFi sensing could eventually enable:

  • smarter homes
  • contactless monitoring
  • occupancy automation
  • low-cost environmental sensing

without requiring cameras or wearable devices.

The combination of:

  • RF sensing
  • mobile apps
  • realtime signal processing
  • machine learning

opens many exciting possibilities.


Final Thoughts

Building SenseWave has been one of the most interesting Flutter projects I’ve worked on.

It combines:

  • mobile engineering
  • RF sensing
  • signal processing
  • realtime visualization
  • experimental AI concepts

all inside a Flutter application.

WiFi signals contain much more information than most people realize.

And we are only beginning to explore what’s possible.


Follow My Project

App:

SenseWave: WiFi Motion Detector


Exploring realtime RSSI-based human sensing using Flutter and Android.

Top comments (0)