
ESPectre - نظام كشف الحركة يعتمد على تحليل طيف Wi-Fi (CSI)، مع تكامل Home Assistant.
نظام كشف الحركة يعتمد على تحليل طيف Wi-Fi (CSI)، مع تكامل أصلي مع Home Assistant عبر ESPHome.
[!TIP] كاشف ML جديد: كشف حركة قائم على الشبكات العصبية. لا حاجة للمعايرة، يعمل على الجهاز نفسه. هذه ميزة تجريبية، ونرحب بملاحظاتكم في مناقشة كاشف ML. يتوفر أيضًا إصدار تجريبي بأحدث التغييرات (استخدم أصول
-mlللكاشف القائم على التعلم الآلي)، أو اتبع دليل الإعداد للتخصيص.
ESP32-S3 DevKit مع هوائيات خارجية
وقت الإعداد: ~10-15 دقيقة
الصعوبة: سهلة (تكوين YAML فقط)
لوحة تحكم Home Assistant مع كشف حركة فوري، والتحكم في العتبة، ومستشعرات التصحيح
عندما يتحرك شخص ما في غرفة، فإنه "يُزعج" موجات Wi-Fi المنتقلة بين الموجه والمستشعر. الأمر أشبه بتحريك يدك أمام مصباح يدوي ورؤية الظل يتغير.
جهاز ESP32 "يستمع" إلى هذه التغييرات ويفهم ما إذا كانت هناك حركة.
هل تريد فهم التفاصيل التقنية؟ راجع ALGORITHMS.md لشرح CSI وتوثيق معالجة الإشارات.
وضع المستشعر الأمثل ضروري لكشف حركة موثوق.
النطاق الأمثل: 3-8 أمتار
افعل:
لا تفعل:
يستخدم ESPectre خط أنابيب معالجة مركز لكشف الحركة:``` ┌─────────────┐ │ CSI Data │ Raw Wi-Fi Channel State Information └──────┬──────┘ │ ▼ ┌─────────────┐ │ Gain Lock │ AGC/FFT stabilization (~3 seconds) │ │ Locks hardware gain for stable measurements └──────┬──────┘ │ ▼ ┌─────────────┐ │ Auto │ Automatic subcarrier selection (once at boot) │ Calibration │ Selects optimal 12 subcarriers (NBVI) └──────┬──────┘ │ ▼ ┌─────────────┐ │ Adaptive │ auto: P95 × 1.1 | min: P100 │ Threshold │ or fixed manual value └──────┬──────┘ │ ▼ ┌─────────────┐ │ Hampel │ Turbulence outlier removal │ Filter │ (enabled by default) └──────┬──────┘ │ ▼ ┌─────────────┐ │ Low-pass │ Noise reduction (smoothing) │ Filter │ (optional, disabled by default) └──────┬──────┘ │ ▼ ┌─────────────┐ │ Detection │ MVS or ML score │ Evaluation │ every evaluation_interval packets └──────┬──────┘ │ ▼ ┌─────────────┐ │ Hit Filter │ motion_on_hits / motion_off_hits │ │ edge-driven IDLE ↔ MOTION └──────┬──────┘ │ ▼ ┌─────────────┐ │ Home │ Edge-driven motion binary + │ Assistant │ periodic Movement Score / Threshold └─────────────┘
### مستشعر واحد أو متعدد المستشعرات```
┌─────────┐ ┌─────────┐ ┌─────────┐
│ ESP32 │ │ ESP32 │ │ ESP32 │
│ Room 1 │ │ Room 2 │ │ Room 3 │
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
└────────────┴────────────┘
│
│ ESPHome Native API
▼
┌────────────────────┐
│ Home Assistant │
│ (Auto-discovery) │
└────────────────────┘
يتم اكتشاف كل مستشعر تلقائيًا بواسطة Home Assistant مع:
ينفذ ESPectre مؤشر NBVI (مؤشر تباين النطاق المقيس) لاختيار الناقل الفرعي التلقائي، محققًا أداءً شبه مثالي (F1>96%) مع تكوين يدوي صفري. يختار الخوارزمية 12 ناقلًا فرعيًا غير متتالي بناءً على مقاييس الاستقرار والتنوع الطيفي.
⚠️ مهم (وضع MVS): حافظ على الغرفة هادئة وخالية من الحركة لمدة 10 ثوانٍ بعد تشغيل الجهاز. يتم تشغيل المعايرة التلقائية خلال هذه الفترة وسيؤثر الحركة على دقة الكشف. وضع ML يتخطى المعايرة.
لمعرفة تفاصيل الخوارزمية، انظر ALGORITHMS.md.
س: هل أحتاج إلى معرفة بالبرمجة لاستخدامه؟
ج: لا! يستخدم ESPectre ملفات تكوين YAML. فقط قم بتنزيل المثال، وحرقه، وتكوين WiFi عبر تطبيق ESPHome أو الواجهة الإلكترونية.
س: هل يعمل مع جهاز التوجيه الخاص بي؟
ج: نعم، إذا كان جهاز التوجيه الخاص بك يحتوي على Wi-Fi بتردد 2.4 جيجاهرتز (جميع أجهزة التوجيه الحديثة تقريبًا تحتوي عليه).
س: كم تكلفة الإجمالية؟
ج: الأجهزة: ~10 يورو لجهاز ESP32 (موصى به S3/C6، الإصدارات الأخرى تعمل أيضًا). البرامج: كلها مجانية ومفتوحة المصدر. ستحتاج أيضًا إلى تشغيل Home Assistant في مكان ما (Raspberry Pi ~35-50 يورو، أو أي جهاز كمبيوتر/ NAS موجود).
س: هل أحتاج إلى تعديل أي شيء في جهاز التوجيه؟
ج: لا! يعمل جهاز التوجيه بشكل طبيعي. يقوم المستشعر "بالاستماع" إلى إشارات Wi-Fi دون تعديل أي شيء.
س: هل يعمل عبر الجدران؟
ج: نعم، إشارة Wi-Fi بتردد 2.4 جيجاهرتز تخترق الحوائط الجافة. الجدران الخرسانية المسلحة تقلل الحساسية ولكن يبقى الكشف ممكنًا على مسافات أقل.
س: كم عدد المستشعرات اللازمة للمنزل؟
ج: يعتمد على الحجم. يمكن لمستشعر واحد مراقبة ~50 م². للمنازل الأكبر، استخدم عدة مستشعرات (مستشعر واحد لكل 50-70 م² لتغطية مثلى).
س: هل يمكنه التمييز بين الأشخاص والحيوانات الأليفة؟
ج: يستخدم النظام نموذج تجزئة ثنائي الحالة (IDLE/MOTION) يحدد الحركة العامة دون تمييز بين الأشخاص أو الحيوانات الأليفة أو الأشياء المتحركة الأخرى. للتصنيف الأكثر تطورًا (الأشخاص مقابل الحيوانات الأليفة، التعرف على النشاط، كشف الإيماءات)، ستكون هناك حاجة إلى نماذج AI/ML مدربة (انظر قسم التطور المستقبلي).
س: هل يعمل مع شبكات Wi-Fi الشبكية؟
ج: نعم، يعمل بشكل طبيعي. تأكد من اتصال ESP32 بنطاق 2.4 جيجاهرتز.
س: ما مدى دقة الكشف؟
ج: دقة الكشف تعتمد بشكل كبير على البيئة وتتطلب ضبطًا مناسبًا. العوامل المؤثرة في الأداء تشمل: تخطيط الغرفة، مواد الجدران، وضع الأثاث، المسافة من جهاز التوجيه (الأمثل: 3-8 م)، ومستويات التداخل. في الظروف المثلى مع الضبط المناسب، يوفر النظام كشفًا موثوقًا للحركة. اضبط معلمة segmentation_threshold لضبط الحساسية لبيئتك المحددة.
س: ما هو استهلاك الطاقة؟
ج: ~500 ميلي واط نموذجيًا أثناء التشغيل المستمر. يتضمن البرنامج الثابت دعمًا لتحسين الطاقة، ويمكن تنفيذ أوضاع النوم العميق للنشر بالبطارية، على الرغم من أن هذا يتطلب تعديلات مخصصة للكود.
س: إذا لم يعمل، هل يمكنني الحصول على المساعدة؟
ج: نعم، افتح مشكلة على GitHub أو اتصل بي عبر البريد الإلكتروني.
يجمع النظام بيانات مجهولة المصدر تتعلق بالخصائص الفيزيائية لقناة الراديو Wi-Fi:
تمثل بيانات CSI فقط خصائص وسيط الإرسال ولا تحتوي على معلومات تعريف مباشرة.
تحذير: على الرغم من عدم الكشف عن الهوية الجوهري لبيانات CSI، يمكن استخدام هذا النظام من أجل:
المستخدم وحده مسؤول عن استخدام هذا النظام ويجب عليه:
لمعرفة تفاصيل الخوارزمية (MVS، معايرة NBVI، مرشح Hampel)، انظر ALGORITHMS.md.
لمقاييس الأداء (مصفوفة الارتباك، درجة F1، المعايير)، انظر PERFORMANCE.md.
يتبع هذا المشروع نهج منصتين مزدوجتين لتحقيق التوازن بين سرعة الابتكار واستقرار الإنتاج:
الهدف: المستخدمون النهائيون، هواة المنزل الذكي، مستخدمو Home Assistant
الهدف: الباحثون، المطورون، التطبيقات الأكاديمية/الصناعية
يمنحك Micro-ESPectre الأساسيات لـ:
┌─────────────────────┐ Validated ┌──────────────────────┐ │ Micro-ESPectre │ ─────────────────► │ ESPectre │ │ (R&D Platform) │ algorithms │ (Production Platform)│ │ │ │ │ │ • Fast prototyping │ │ • ESPHome component │ │ • Algorithm testing │ │ • Home Assistant │ │ • Data analysis │ │ • End-user ready │ │ • MQTT flexibility │ │ • Native API │ └─────────────────────┘ └──────────────────────┘
**دورة الابتكار**: يتم تطوير الميزات والخوارزميات الجديدة أولاً والتحقق من صحتها في Micro-ESPectre (Python)، ثم نقلها إلى ESPectre (C++) بمجرد إثبات فعاليتها.
---
## التطور المستقبلي
بينما يركز ESPectre v2.x على **كشف الحركة** (MVS + اختيار الناقل الفرعي التلقائي)، يستكشف المشروع قدرات التعلم الآلي للتطبيقات المتقدمة:
| القدرة | الحالة | الوصف |
|------------|--------|-------------|
| **كاشف ML** | تجريبي | شبكة عصبية (MLP 9→32→16→1)|
| **التعرف على الإيماءات** | مخطط له | كشف إيماءات اليد (السحب، الدفع، الدائرة) للتحكم في المنزل الذكي |
| **التعرف على النشاط البشري** | مخطط له | تحديد الأنشطة (الجلوس، المشي، السقوط) |
| **عد الأشخاص** | مخطط له | تقدير عدد الأشخاص في الغرفة |
| **تحديد المواقع ثلاثي الأبعاد** | بحث | تحديد المواقع الداخلية (دقة 30-50 سم) عبر مصفوفة هوائيات متماسكة الطور |
يتوفر كاشف ML بالفعل مع `detection_algorithm: ml` في تكوين YAML الخاص بك. للحصول على تفاصيل الخوارزمية، راجع [ALGORITHMS.md](https://github.com/francescopace/espectre/blob/HEAD/micro-espectre/ALGORITHMS.md#ml-neural-network-detector) و`PERFORMANCE.md` للمقاييس الحالية
تم توثيق البنية التحتية لجمع البيانات وتدريب ML في [ML_DATA_COLLECTION.md](https://github.com/francescopace/espectre/blob/HEAD/micro-espectre/ML_DATA_COLLECTION.md).
انظر [ROADMAP.md](https://github.com/francescopace/espectre/blob/HEAD/ROADMAP.md) للحصول على خطط مفصلة وجداول زمنية وكيفية المساهمة.
---
## التوثيق
### ESPectre (الإنتاج)
| المستند | الوصف |
|----------|-------------|
| [مقدمة](https://github.com/francescopace/espectre/blob/HEAD/README.md) | (هذا الملف) نظرة عامة على المشروع، بداية سريعة، الأسئلة الشائعة |
| [دليل الإعداد](https://github.com/francescopace/espectre/blob/HEAD/SETUP.md) | التثبيت والتكوين مع ESPHome |
| [دليل الضبط](https://github.com/francescopace/espectre/blob/HEAD/TUNING.md) | ضبط المعاملات للكشف الأمثل |
| [الأداء](https://github.com/francescopace/espectre/blob/HEAD/PERFORMANCE.md) | المعايير، مصفوفة الارتباك، درجة F1 |
| [اللعبة](https://github.com/francescopace/espectre/blob/HEAD/docs/game/README.md) | لعبة متصفح، واجهة برمجة تطبيقات البث عبر USB، ضبط العتبة التفاعلي |
| [مجموعة الاختبار](https://github.com/francescopace/espectre/blob/HEAD/test/README.md) | توثيق اختبار PlatformIO Unity |
### Micro-ESPectre (البحث والتطوير)
| المستند | الوصف |
|----------|-------------|
| [مقدمة](https://github.com/francescopace/espectre/blob/HEAD/micro-espectre/README.md) | نظرة عامة على منصة البحث والتطوير، واجهة سطر الأوامر، MQTT، مراقب الويب |
| [الخوارزميات](https://github.com/francescopace/espectre/blob/HEAD/micro-espectre/ALGORITHMS.md) | توثيق علمي لـ MVS، معايرة NBVI، مرشح Hampel |
| [أدوات التحليل](https://github.com/francescopace/espectre/blob/HEAD/micro-espectre/tools/README.md) | نصوص تحليل CSI وتحسينها |
| [جمع بيانات ML](https://github.com/francescopace/espectre/blob/HEAD/micro-espectre/ML_DATA_COLLECTION.md) | بناء مجموعات بيانات مصنفة للتعلم الآلي |
| [المراجع](https://github.com/francescopace/espectre/blob/HEAD/micro-espectre/README.md#المراجع) | الأوراق الأكاديمية وموارد البحث |
### المشروع
| المستند | الوصف |
|----------|-------------|
| [خارطة الطريق](https://github.com/francescopace/espectre/blob/HEAD/ROADMAP.md) | رؤية المشروع وخطط ML |
| [المساهمة](https://github.com/francescopace/espectre/blob/HEAD/CONTRIBUTING.md) | كيفية المساهمة (كود، بيانات، وثائق) |
| [سجل التغييرات](https://github.com/francescopace/espectre/blob/HEAD/CHANGELOG.md) | تاريخ الإصدار وملاحظات الإصدار |
| [الأمان](https://github.com/francescopace/espectre/blob/HEAD/SECURITY.md) | سياسة الأمان والإبلاغ عن الثغرات |
| [مدونة قواعد السلوك](https://github.com/francescopace/espectre/blob/HEAD/CODE_OF_CONDUCT.md) | إرشادات المجتمع |
---
## وسائل الإعلام
| المقالات | العنوان |
|-------------|-------|
| Medium | [كيف حولت واي-فاي الخاص بي إلى حساس حركة - الجزء 1](https://medium.com/@francesco.pace/how-i-turned-my-wi-fi-into-a-motion-sensor-61a631a9b4ec?sk=c7f79130d78b0545fce4a228a6a79af3&utm_source=github&utm_medium=readme&utm_campaign=espectre) |
| Medium | [كيف حولت واي-فاي الخاص بي إلى حساس حركة - الجزء 2](https://medium.com/@francesco.pace/how-i-turned-my-wi-fi-into-a-motion-sensor-part-2-62038130e530?sk=7c8b6f11cf3fcb8d279648016ebff72a&utm_source=github&utm_medium=readme&utm_campaign=espectre) |
| IoT For All | [كيف حولت واي-فاي الخاص بي إلى حساس حركة](https://www.iotforall.com/wifi-motion-sensor-iot) |
| Hackaday | [اصنع حساس شخص خاص بك يعتمد على ESP32، لا حاجة لأجهزة خاصة](https://hackaday.com/2026/01/28/make-your-own-esp32-based-person-sensor-no-special-hardware-needed/) |
| Adafruit Learn | [كاشف البشر ESPectre لـ Feather](https://learn.adafruit.com/espectre-human-detector-for-feather) |
| Seeed Studio Wiki | [نشر Espectre على سلسلة Seeed Studio XIAO ESP32 مع ESPHome](https://wiki.seeedstudio.com/xiao-esp32--series-espresense/) |
| المدونة | المناقشة |
|----------|------------|
| Home Assistant | [ESPectre - كشف الحركة عبر واي-فاي لـ Home Assistant](https://community.home-assistant.io/t/espectre-wi-fi-motion-detection-for-home-assistant/961251) |
| الفيديوهات | الفيديو |
|---------|-------|
| @GithubAwesome | [ESPectre](https://www.youtube.com/shorts/iQ_DPHLn8ms) |
| البودكاست | الحلقة |
|-------------|---------|
| Hackaday | [حلقة البودكاست 355: كاشفات الأشخاص، أجهزة الاتصال اللاسلكي، الهواتف الذكية المفتوحة...](https://hackaday.com/2026/01/30/hackaday-podcast-episode-355-person-detectors-walkie-talkies-open-smartphones-and-a-wifi-traffic-light/) |
---
## المشاريع ذات الصلة
- [radio-presence-scanner](https://github.com/francescopace/radio-presence-scanner): مشروع مكمل لكشف الوجود يركز على ملاحظات الراديو BLE من أجهزة المضيف (Python)، مع لوحة تحكم HTTP اختيارية.
- [micropython-esp32-csi](https://github.com/francescopace/micropython-esp32-csi): فرع MicroPython مخصص يعرض واجهات برمجة تطبيقات ESP32 CSI، يُستخدم كأساس للبرامج الثابتة للنمذجة السريعة لـ CSI في سير عمل Micro-ESPectre.
---
## الشكر والتقدير
يستفيد ESPectre من قدرات CSI الأصلية للواي-فاي لرقاقات ESP32. الشكر لـ [Espressif](https://www.espressif.com/) على جعل CSI متاحًا في إطار ESP-IDF وعلى الاعتراف بـ ESPectre كمشروع [مجتمعي](https://github.com/espressif/esp-csi#6-related-resources) في مستودع [esp-csi](https://github.com/espressif/esp-csi) الخاص بهم.
---
## الترخيص
تم إصدار هذا المشروع بموجب **رخصة GNU العامة العامة الإصدار 3.0 (GPLv3)**.
تضمن GPLv3 ما يلي:
- يبقى البرنامج حرًا ومفتوح المصدر
- يمكن لأي شخص استخدامه ودراسته وتعديله وتوزيعه
- يجب مشاركة التعديلات بموجب نفس الترخيص
- يحمي حقوق المستخدم النهائي وحرية البرمجيات
انظر [LICENSE](https://github.com/francescopace/espectre/blob/HEAD/LICENSE) لنص الترخيص الكامل.
يتم تقديم المساهمات بموجب GPLv3 ويجب أن تتضمن تذييل DCO
`Signed-off-by` في كل إيداع (`git commit -s`).
## المؤلف
**Francesco Pace**
البريد الإلكتروني: [[email protected]](mailto:[email protected])
LinkedIn: [linkedin.com/in/francescopace](https://www.linkedin.com/in/francescopace/)
إذا وجدت ESPectre مفيدًا وتريد دعم تطويره، يمكنك شراء قهوة لي. إنه اختياري تمامًا.
أعمل على هذا المشروع لأنني شغوف به. تساعدني المساهمات في شراء أجهزة جديدة لتوسيع قائمة الأجهزة المختبرة والمدعومة، وتخصيص المزيد من الوقت للميزات الجديدة.
<a href="https://www.buymeacoffee.com/espectre" target="_blank"><img src="https://assets.kitploit.com/production/public/readmes/9574/a7e8174c892355a24fbaec083cbef385d097a0b488fd4823dbbb0061643bb5e2.png" alt="اشتر لي قهوة" style="height: 60px !important;width: 217px !important;" ></a>
| المسافة | الإشارة | تعدد المسارات | الحساسية | الضوضاء | التوصية |
|---|
| < 2m | قوية جدًا | ضئيل | منخفضة | منخفضة | ❌ قريب جدًا |
| 3-8m | قوية | جيد | عالية | منخفضة | ✅ أمثل |
| > 10-15m | ضعيفة | متغير | منخفضة | عالية | ❌ بعيد جدًا |