MyViewsOnTech

Esp32 Smartscan: A privacy-first elder-care camera free monitoring sensor

Picture of Kudzayi Chimbodza
Kudzayi Chimbodza
I'm a Master of Cyber-Physical Systems (IoT) student with a passion for exploring emerging technologies, 3D printing, music production, computer networks, UI/UX design, and app development. Follow along as I share my thoughts on tech—beyond the pitch deck!

As a Master’s student diving into IoT systems, I wanted to move beyond theoretical coursework and build something that actually solves a real problem. That’s how the ESP32 based SmartScan Node came about—a privacy-first environmental monitoring system that taught me more about IoT development than any textbook could.

The Learning Challenge: Privacy vs. Monitoring

The project started when I was exploring use cases for my IoT coursework. Elder care facilities caught my attention because they have this interesting technical challenge: they desperately need monitoring systems, but cameras raise huge privacy concerns. It’s the perfect IoT problem—multiple sensors, real-time data processing, edge computing, and user interfaces across different platforms.

I figured if I could build a camera-free monitoring system, I’d get hands-on experience with the entire IoT stack while actually creating something useful.

Technical Learning Objectives

Going into this, I wanted to understand:

  • Edge device programming with ESP32 microcontrollers
  • MQTT protocol implementation for IoT messaging
  • Sensor fusion and real-time data processing
  • Multi-platform development (mobile + web)
  • System architecture for scalable IoT deployments

Hardware Deep-Dive: ESP32 + Sensor Integration

For the edge device, I went with the ESP32 because it’s basically the Swiss Army knife of IoT development. Built-in WiFi, dual-core processing, and tons of GPIO pins. Perfect for learning microcontroller programming without getting stuck on connectivity issues. The sensor setup taught me a lot about I2C and SPI communication:

  • HC-SR04 ultrasonic sensor for distance measurements
  • DHT11 for temperature/humidity (simple digital protocol)
  • Servo motor for creating scanning patterns
  • LCD display for local feedback

Getting the servo motor to smoothly sweep while continuously reading sensors was my first real lesson in interrupt-driven programming. You can’t just use delay() functions when you need real-time responsiveness.

MQTT: Learning IoT Communication Protocols

This was probably the biggest learning curve. MQTT (Message Queuing Telemetry Transport) sounds simple in theory, but implementing it properly taught me about:

  1. Topic Architecture:
smartscan/node_id/motion
smartscan/node_id/environment  
smartscan/node_id/alerts
smartscan/node_id/status

Quality of Service (QoS) levels became really important when I realized some messages (like alerts) absolutely cannot be lost, while others (like routine sensor readings) can be.

I set up Mosquitto MQTT broker on my Ubuntu laptop for development, which was a great learning experience in itself. Configuring the broker, managing client connections, and debugging message flow taught me about publish-subscribe patterns and how they scale way better than request-response for IoT applications.

2. Multi-Platform Development Experience

Building apps for both mobile and web gave me exposure to different development paradigms:

  • Android App (Kotlin + Jetpack Compose): Learning Material3 design while implementing real-time MQTT clients was challenging. The biggest lesson: mobile apps need to handle network interruptions gracefully. I spent way too much time debugging why the app would crash when WiFi dropped.
  • Web Dashboard (Python): This taught me about concurrent programming for handling multiple device connections simultaneously. The radar visualization was particularly fun—learning how to create real-time graphics that don’t bog down the browser.

3. Algorithm Development: Distance-Based Motion Detection

Instead of computer vision (which would defeat the privacy purpose), I developed a distance-variation algorithm. The learning here was about signal processing and noise filtering.

The algorithm analyzes ultrasonic readings to detect:

  • Baseline room mapping during calibration
  • Motion through distance change patterns
  • Potential falls (rapid changes in floor-level readings)
  • Tampering detection (sensor obstruction)

Getting this right required understanding digital signal processing concepts I’d only seen in theory before.

Real Performance Metrics (Learning from Testing)

System Performance:

  • 18-second room sweep with 2°/100ms precision
  • ~100ms latency from sensor to dashboard
  • 99.2% uptime during my testing period
  • 94.7% motion detection accuracy

These numbers taught me about the difference between lab testing and real-world deployment. The accuracy dropped significantly when I moved from my dorm room to actual test environments with different furniture layouts.

Unexpected Learning: Deployment Challenges

The technical implementation was just half the battle. Real deployment taught me about:

  • Network Reliability: Healthcare facilities have notoriously patchy WiFi. I had to implement automatic reconnection with exponential backoff.
  • Power Management: Even though it’s USB-powered, optimizing power consumption taught me about sleep modes and interrupt wakeup on the ESP32.
  • User Interface Design: Healthcare staff don’t have time for complex interfaces. This taught me about UX design for IoT applications.

IoT Architecture Lessons Learned

Building this ESP32 based system gave me practical experience with IoT design patterns:

  1. Edge Processing: Doing motion detection on-device vs. sending raw sensor data
  2. Message Queuing: How MQTT handles unreliable connections
  3. State Management: Keeping mobile app, web dashboard, and device synchronized
  4. Scalability: Designing topic structures that work for one device or hundreds

Technical Stack Summary

Where to buy the hardware: Amazon link here

What This Project Taught Me About IoT

  1. Technical Skills: Embedded programming, protocol implementation, sensor integration, real-time systems, multi-platform development.
  2. System Thinking: How to design IoT architectures that are reliable, scalable, and maintainable.
  3. Problem-Solving: Moving from academic problems to real-world constraints and requirements. The biggest takeaway? IoT development is 20% sensors and 80% system integration. Getting individual components working is straightforward—making them work together reliably is the real challenge.

Next Steps in My IoT Learning

This project opened up several areas I want to explore further:

  • Machine learning on edge devices (TensorFlow Lite)
  • LoRaWAN for long-range, low-power applications
  • Container deployment for scalable IoT backends
  • Security protocols for IoT device authentication
______________________________________________

This project gave me hands-on experience with the entire IoT development cycle. For other students looking to learn IoT practically, I’d recommend picking a real problem and building end-to-end—you’ll learn way more than following tutorials.

Post a comment

Related Posts

Looking for more information? Here is a selection of related posts we can heartily recommend.

Kudzayi Chimbodza
Transform your home lab with the Morefine M10S - an ultra-compact mini PC packing 4 NVMe slots, ideal for virtualization, storage, and edge computing...
Kudzayi Chimbodza
Looking for a budget-friendly projector that impresses with both brightness and sound? The Yaber K3 is a solid choice!..
Kudzayi Chimbodza
Discover why the Toptro X9 projector is the best 1080p projector for home theaters in 2025—affordable, sharp, and packed with top-tier features...

Your monthly contribution supports our beautiful sangha, its in-depth dharma teachings, supports our in-depth programming and livelihoods of our teachers and supports our teachers and community, while giving assistance for those with financial difficulty.

[give_form id="1006"]