در تاریخ ۲۶ سپتامبر ۲۰۲۵، استاندارد IEEE 802.11bf منتشر شد؛ استانداردی که به Wi-Fi اجازه میدهد بهصورت بومی حرکت را تشخیص دهد.
اما من نمیخواستم منتظر بمانم.
اولین دستگاههای سازگار شاید چند ماه دیگر وارد بازار شوند (اگر بشوند)، اما من بهعنوان یک علاقهمند جدی به اتوماسیون خانگی (Home Automation)، یک مشکل دارم: منتظر ماندن.
پس تصمیم گرفتم خودم دستبهکار شوم.
نتیجه؟ یک سیستم تشخیص حرکت مبتنی بر Wi-Fi
من یک سیستم تشخیص حرکت مبتنی بر تحلیل طیف Wi-Fi توسعه دادم که ویژگیهای زیر را دارد:
- استفاده از هر مدل ESP32 (S3، C6، C3 و …) با هزینه حدود ۱۰ دلار
- یکپارچگی کامل و بومی با Home Assistant از طریق ESPHome
- قابلیت تشخیص حرکت حتی از پشت دیوار
- استفاده صرفاً از ریاضیات و پردازش سیگنال (بدون هوش مصنوعی)
- کارکرد آمادهبهکار (Out-of-the-Box) بدون نیاز به تنظیمات دستی
این پروژه با نام ESPectre بهصورت متنباز (Open Source) منتشر شده و تاکنون بیش از ۴۰۰۰ ستاره در GitHub دریافت کرده است.
احتمالاً تنها کسی نبودم که حوصله صبر کردن نداشت!
من کی هستم و چرا این کار را انجام دادم؟
نام من Francesco Pace است.
مدرک دانشگاهی من در ریاضیات است و بیش از ۲۰ سال در حوزه فناوری اطلاعات (IT) فعالیت داشتهام. اتوماسیون خانگی یکی از علاقهمندیهای اصلی من است و اخیراً با دنیای Wi-Fi Sensing آشنا شدم.
اگرچه استاندارد 802.11bf تازه منتشر شده، اما فناوری زیربنایی آن جدید نیست. این فناوری Channel State Information (CSI) نام دارد و شامل پردازش اطلاعات فیزیکی سابکریرهای سیگنال Wi-Fi است.
مشکل اصلی CSI چیست؟
مشکل اینجاست که سیگنال بسیار نویزی است.
لوازم خانگی، تلویزیونها، تلفنهای همراه و حتی خود انسانها دائماً نویز و تداخل ایجاد میکنند. به همین دلیل، اغلب راهکارهای موجود از Machine Learning برای پاکسازی داده و شناسایی الگوهای حرکتی انسان استفاده میکنند.
اما در دنیایی که همهچیز تحت سلطه AI است، من میخواستم نشان بدهم که هنوز هم میتوان با سختافزار ارزانقیمت و تنها با ریاضیات کلاسیک و پردازش سیگنال دیجیتال به نتایج عالی رسید.
بدون شبکه عصبی
بدون آموزش مدل
بدون دیتاستهای چند گیگابایتی
فقط الگوریتمهای ریاضی، فیلترهای دیجیتال و تحلیل سیگنال کلاسیک.
H2: چرا Wi-Fi و نه سنسورهای سنتی؟
قبل از اینکه وارد جزئیات فنی شویم، بیایید به سؤال واضح پاسخ دهیم:
PIR (سنسور مادون قرمز)
- ارزان و ساده
- نیازمند خط دید مستقیم
- عدم تشخیص پشت دیوار یا اجسام ثابت
mmWave Radar
- بسیار دقیق
- تشخیص حضور ثابت
- پوشش محدود (معمولاً یک اتاق)
- تضعیف شدید سیگنال 24GHz توسط دیوارها
دوربینها
- داده غنی و تشخیص فعالیت
- کابوس حریم خصوصی
- مصرف پردازشی بالا
Wi-Fi Sensing (برنده واقعی)
- تشخیص حرکت از پشت دیوار
- یک ESP32 در سالن میتواند حرکت را در اتاقهای مجاور تشخیص دهد
- امواج رادیویی از دیوار، مبلمان و در عبور میکنند
- بدون نقاط کور
- بدون نیاز به جانمایی حساس
این سیستم چگونه کار میکند؟
تشبیه چراغقوه
فرض کنید در یک اتاق تاریک یک چراغقوه روشن دارید.
اگر دستتان را جلوی نور حرکت دهید، سایه تغییر میکند.
اگر کسی وارد اتاق شود، الگوی سایهها متفاوت میشود.
Wi-Fi دقیقاً همینطور عمل میکند، با این تفاوت که بهجای نور، از امواج الکترومغناطیسی نامرئی استفاده میکند.
وقتی کسی حرکت میکند، امواج Wi-Fi بین روتر و سنسور مختل میشوند و سنسور این تغییرات را دریافت و تحلیل میکند.
داده CSI چیست؟
از نظر فنی، دادهای که تحلیل میکنیم CSI (Channel State Information) نام دارد؛ یعنی اطلاعات وضعیت کانال رادیویی.
در Wi-Fi مدرن (OFDM)، سیگنال روی دهها سابکریر با فرکانسهای مختلف ارسال میشود. برای هر سابکریر، گیرنده این موارد را محاسبه میکند:
- Amplitude (دامنه): قدرت سیگنال
- Phase (فاز): میزان شیفت نسبت به سیگنال اصلی
هر سابکریر بهصورت یک عدد مختلط با دو مؤلفه نمایش داده میشود:
- I (In-phase)
- Q (Quadrature)
فرمول دامنه:
Amplitude = √(I² + Q²)
حرکت انسان باعث تغییر همزمان دامنه و فاز میشود؛ تغییراتی که حتی از پشت دیوار نیز قابل تشخیص هستند.
الگوریتم اصلی سیستم
انتخاب خودکار سابکریر
ESP32 تعداد ۶۴ سابکریر ارائه میدهد، اما همه آنها مفید نیستند.
سیستم هنگام بوت، در یک بازه ۱۰ ثانیهای، نویز هر سابکریر را بررسی کرده و بهترینها را بهصورت خودکار انتخاب میکند.
Moving Variance Segmentation (MVS)
قلب سیستم الگوریتم MVS است:
- Spatial Turbulence: محاسبه انحراف معیار دامنهها
- Moving Variance: تشخیص نوسان، نه فقط تغییر سطح
- Adaptive Threshold: آستانه تطبیقی مبتنی بر نویز محیط
- State Machine:
- IDLE → بدون حرکت
- MOTION → حرکت تشخیص داده شده
پاکسازی سیگنال
- Hampel Filter برای حذف دادههای پرت
- Baseline Normalization برای رفتار پایدار در محیطهای مختلف
نتایج واقعی
پس از تست گسترده با دادههای واقعی:
- Recall: 98٪
- Precision: 100٪
- F1-Score: 99٪
- Latency: کمتر از 10ms
سختافزارهای پشتیبانیشده
- ESP32-S3 (بهترین عملکرد)
- ESP32-C6 (Wi-Fi 6 + قیمت مناسب)
- ESP32-C3 (اقتصادی)
- ESP32 کلاسیک (قابل استفاده ولی بهینه نیست)
کاربردهای واقعی
- امنیت خانه
- روشنایی هوشمند
- صرفهجویی انرژی
- پایش سالمندان
- مدیریت حضور در دفتر کار
یکپارچگی با Home Assistant
از طریق ESPHome، دستگاه بهعنوان یک Binary Motion Sensor در Home Assistant ظاهر میشود.
کالیبراسیون بهشکل بازی!
یک بازی تحت مرورگر ساخته شده که بدن شما کنترلر آن است. در حین بازی، سیستم بهصورت خودکار کالیبره میشود.
چرا ریاضیات و نه AI؟
- بدون تنظیمات
- سبک و سریع
- کاملاً قابل پیشبینی
- بدون دیتاست آموزشی
محدودیتها
- تشخیص انسان از حیوان ممکن نیست
- تعداد افراد مشخص نمیشود
- فعالیت خاص تشخیص داده نمیشود
حریم خصوصی
مسئولیت رعایت قوانین حریم خصوصی (GDPR, CCPA) بر عهده کاربر است.
جمعبندی
این پروژه نشان میدهد که با سختافزار ارزان و ریاضیات کلاسیک میتوان سیستمهای پیشرفته ساخت.
پروژه ESPectre کاملاً متنباز (GPLv3) و در GitHub در دسترس است.
منبع: iotforall
