سأريك شيئاً سيغير طريقة تفكيرك حول جهاز الراوتر الموجود في غرفة معيشتك. إنه ليس مجرد بوابة للإنترنت. إنه نظام رادار يمكنه رؤيتك وأنت تتنفس.
ليس خيالاً علمياً. إنها فيزياء. ويمكنك بناء واحد بنفسك في نهاية هذا الأسبوع.
انتظر، ماذا؟ جهاز الراوتر يمكنه رؤيتي؟
إليك ما يحدث فعلاً: تستخدم شبكات WiFi الحديثة (802.11ac/ax) تقنية تُسمى تشكيل الحزمة (beamforming). يحتوي الراوتر على عدة هوائيات، وبدلاً من بث الإشارة بالتساوي في جميع الاتجاهات، يركز الإشارة نحو أجهزتك. فكر فيه كالكشاف المركّز بدلاً من الضوء المنتشر.
للقيام بذلك، يتبادل الراوتر وأجهزتك باستمرار تغذية راجعة عن الإشارة، وتحديداً شيء يُسمى BFI (معلومات التغذية الراجعة لتشكيل الحزمة). تصف هذه البيانات بدقة كيف تنعكس موجات الراديو في غرفتك.
وهنا المفاجأة: هذه التغذية الراجعة غير مشفرة. يمكن لأي شخص التقاطها. وعندما تتحرك أنت، ذلك الكيس الكبير من الماء الذي يعكس موجات الراديو، في الغرفة، تتغير بيانات BFI. امشِ عبر غرفة معيشتك، وستُظهر الرياضيات حركتك حرفياً.
العلم بلغة بسيطة
جسمك يعكس إشارات WiFi. عندما تتحرك، تتغير الانعكاسات. يتتبع الراوتر هذه التغييرات لتحسين قوة الإشارة. بيانات التتبع هذه تُبث علنياً. التقطها، وسيكون لديك مستشعر حركة يعمل عبر الجدران.
استخدم الباحثون هذه التقنية لاكتشاف أنماط التنفس، وعدّ الأشخاص في الغرفة، والتعرف على الإيماءات، وحتى تحديد أفراد بعينهم من خلال طريقة مشيهم. توجد بالفعل منتجات تجارية تحول شبكة WiFi الموجودة لديك إلى نظام كشف حركة لكامل المنزل.
التأثير على الخصوصية (نعم، هذا مقلق)
قبل أن ندخل في الجزء الممتع من المشروع، لنتحدث عن القضية الأساسية: هذه مشكلة خصوصية.
شبكة WiFi الخاصة بك تبث باستمرار معلومات يمكنها الكشف عن:
- ما إذا كان هناك أحد في المنزل
- عدد الأشخاص في الغرفة
- أنماط الحركة العامة في أنحاء منزلك
- من المحتمل، أنشطة محددة (الطبخ، النوم، التمارين الرياضية)
شخص لديه المعدات المناسبة ومتوقف أمام منزلك يمكنه نظرياً التقاط هذه البيانات. لا يحتاج أن يكون على شبكتك. يكفي أن يستقبل إطارات BFI التي يبثها الراوتر.
"نفس التقنية التي تجعل WiFi أسرع تجعل منزلك شفافاً لأي شخص يعرف كيف ينظر."
هذا ليس افتراضياً. أثبتته الأوراق البحثية. السبب الوحيد لعدم استغلاله على نطاق واسع هو أن معظم الناس لا يعرفون أنه ممكن. وهذا... ليس أماناً جيداً.
لماذا تبني هذا بنفسك؟
فلماذا أخبرك بكيفية فعل ذلك؟ عدة أسباب:
1. فهم نموذج التهديد. لا يمكنك الحماية من شيء لا تفهمه. رؤية هذا يعمل بأم عينيك يجعله حقيقياً بطريقة لا تستطيع القراءة وحدها تحقيقها.
2. الاستخدامات المشروعة رائعة حقاً. كشف الحركة في المنزل الذكي بدون كاميرات. استشعار التواجد للأتمتة. كشف السقوط لكبار السن. توفير الطاقة بمعرفة الغرف المشغولة. كل ذلك دون تركيب مستشعرات في كل مكان.
3. إنه مذهل حقاً. أنت تحول موجات الراديو إلى تصور مرئي للمساحة الفيزيائية. هذا أمر خيالي تماماً.
ما نبنيه هو تجربة أخلاقية على شبكتك الخاصة فقط. أنت تراقب WiFi الخاص بك، في منزلك الخاص، لفهم تقنية تستخدمها بالفعل. هذا ليس قانونياً فحسب، بل ذكي أيضاً.
مساران: اختر مغامرتك
سأعطيك خيارين حسب مستوى راحتك والأجهزة المتوفرة لديك.
المسار أ: التجربة الكاملة (Linux + Wi-BFI)
- الوقت: 30-60 دقيقة
- الصعوبة: متوسطة (سطر الأوامر مطلوب)
- الأجهزة: جهاز Linux + محول WiFi مع وضع المراقبة
- النتيجة: عرض مباشر لبيانات BFI، شاهد حركتك في رسوم بيانية فورية
المسار ب: جاهز للاستخدام (ESP32 + ESPectre)
- الوقت: 15-30 دقيقة
- الصعوبة: سهل (أداة فلاش عبر الويب، نسخ ولصق الإعدادات)
- الأجهزة: لوحة ESP32-S3 أو ESP32-C6 (حوالي $10)
- النتيجة: مستشعر حركة يعمل في Home Assistant
المسار أ: الغوص العميق في Wi-BFI
هذا هو نهج "شاهد البيانات الفعلية". ستلتقط إطارات BFI حقيقية من الراوتر وتشاهدها تتغير أثناء تحركك. إنها نفس الطريقة التي يستخدمها الباحثون في الأوراق الأكاديمية.
ما تحتاجه
- جهاز Linux — Ubuntu 22.04/24.04، أو Raspberry Pi
- محول WiFi مع وضع المراقبة — معظم شرائح Intel/Broadcom/Realtek المدمجة تعمل. إن لم تكن كذلك، فإن دونغل USB بقيمة $15 مثل TP-Link AC600 أو Alfa AWUS036ACH سيحل المشكلة.
- الراوتر الحالي — أي راوتر 802.11ac أو 802.11ax (وهو تقريباً أي راوتر من السنوات الخمس الأخيرة)
الخطوة 1: تثبيت الأدوات
افتح الطرفية ونفّذ:
# Install system dependencies
sudo apt update
sudo apt install tshark wireshark aircrack-ng git -y
# Install Miniconda (skip if you already have conda)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b
~/miniconda3/bin/conda init
# Close and reopen terminal after thisالخطوة 2: استنساخ Wi-BFI
# Get the tool
git clone https://github.com/kfoysalhaque/Wi-BFI.git
cd Wi-BFI
# Create the environment
conda env create -f wi-bfi.yml
conda activate wi-bfiالخطوة 3: اعثر على معلومات شبكتك
تحتاج لمعرفة قناة الراوتر وعرض النطاق الترددي. نفّذ:
# See your wireless interface name
iw dev
# Or open Wireshark and scan for networksسجّل اسم الواجهة (عادةً wlan0 أو wlp2s0)، والقناة (مثل 36 أو 149)، وعرض النطاق (80MHz شائع لنطاق 5GHz).
الخطوة 4: ابدأ الالتقاط
افتح طرفيتين. في الأولى، ابدأ الالتقاط:
cd ~/Wi-BFI/Demo
# Replace values with your actual settings
./angle_collection.sh my_capture wlan0 36 80MHz 1في الطرفية الثانية، ابدأ العرض المباشر:
cd ~/Wi-BFI
# Replace YOUR_PHONE_MAC with your phone's MAC address
# (find it in your router's admin page or phone settings)
python main_live_plot.py AX SU 4x2 80 YOUR_PHONE_MAC my_capture 1الخطوة 5: شاهد السحر
الآن تجول في الغرفة. راقب الرسوم البيانية. هل ترى تلك الزوايا والسعات تتذبذب؟ هذا جسمك يعكس موجات WiFi. الرياضيات تتتبع حركتك في الفضاء حرفياً.
قف ساكناً، وسيستقر الرسم البياني. امشِ أمام هاتفك، وسيقفز. لوّح بيديك، وسترى تغييرات مقابلة. هذه نفس البيانات التي يمكن استخدامها لكشف الحركة، والتعرف على الإيماءات، أو... المراقبة.
المسار ب: الوضع السهل مع ESP32
لا تريد التعامل مع Linux ووضع المراقبة؟ احصل على لوحة ESP32 واحصل على مستشعر حركة يعمل في 15 دقيقة.
ما تحتاجه
- لوحة ESP32-S3 أو ESP32-C6 — حوالي $8-12 على Amazon. ESP32-C6 أحدث ويعمل بشكل ممتاز.
- كابل USB-C — لبرمجة اللوحة
- Home Assistant — اختياري لكن موصى به للتجربة الكاملة
مشروع ESPectre
ESPectre هو مشروع مفتوح المصدر مصمم خصيصاً لتحويل WiFi إلى مستشعر حركة. إنه رائع في بساطته.
GitHub: github.com/francescopace/espectre
خطوات الإعداد
1. برمجة اللوحة — اذهب إلى أداة الفلاش عبر الويب الخاصة بـ ESPectre (الرابط في المستودع). وصّل ESP32، اضغط فلاش، انتهى.
2. إعداد WiFi — تنشئ اللوحة نقطة اتصال. اتصل بها، أدخل بيانات اعتماد WiFi المنزلية.
3. أضفه إلى Home Assistant — إذا كنت تشغل Home Assistant، فسيكتشفه تلقائياً ككيان مستشعر حركة. يمكنك بعدها إنشاء أتمتة: إضاءة عند اكتشاف حركة، تنبيهات عندما تكون بعيداً، إلخ.
4. هذا كل شيء حرفياً. لديك الآن مستشعر حركة يعمل عبر الجدران، لا يتطلب خط رؤية مباشر، ويستخدم بنية WiFi الموجودة لديك.
استخدامات في العالم الحقيقي
- تواجد في كامل المنزل: اعرف أي الغرف مشغولة بدون كاميرات
- تتبع النوم: اكتشف متى يكون شخص ما في السرير (بدون أجهزة قابلة للارتداء)
- الأمان: تنبيه عند اكتشاف حركة وجميع أفراد المنزل بالخارج
- الأتمتة: التكييف والإضاءة بناءً على الإشغال الفعلي للغرف
- رعاية كبار السن: كشف السقوط، مراقبة النشاط
Home Assistant: هنا تصبح الأمور ممتعة حقاً
هنا نحول مشروعاً علمياً رائعاً إلى أتمتة منزلية مفيدة فعلاً. بمجرد أن يتواصل مستشعر حركة WiFi مع Home Assistant، يمكنك بناء أتمتة كانت ستتطلب عادةً عشرات مستشعرات PIR، أو كاميرات، أو أنظمة تجارية مكلفة.
جمال استشعار WiFi هو أنه يعمل عبر الجدران. ESP32 واحد في الممر يمكنه اكتشاف الحركة في غرف متعددة. لا حاجة لخط رؤية مباشر. لا مناطق ميتة. لا بطاريات تحتاج استبدال.
أمثلة على الأتمتة (YAML جاهز للنسخ واللصق)
1. الأضواء تعمل عند دخولك الغرفة:
automation:
- alias: "Living Room Motion Lights"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_living_room
to: "on"
condition:
- condition: sun
after: sunset
action:
- service: light.turn_on
target:
entity_id: light.living_room
data:
brightness_pct: 80
transition: 22. تنبيهات أمنية في وضع الغياب:
automation:
- alias: "Motion Alert When Away"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_main_floor
to: "on"
condition:
- condition: state
entity_id: input_boolean.away_mode
state: "on"
action:
- service: notify.mobile_app
data:
title: "Motion Detected!"
message: "Movement in the house while you're away."
data:
priority: high
ttl: 03. تكييف ذكي بناءً على إشغال الغرفة:
automation:
- alias: "Office HVAC When Occupied"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_office
to: "on"
for:
minutes: 2
action:
- service: climate.set_temperature
target:
entity_id: climate.office
data:
temperature: 72
hvac_mode: heat_cool
- alias: "Office HVAC Standby When Empty"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_office
to: "off"
for:
minutes: 15
action:
- service: climate.set_temperature
target:
entity_id: climate.office
data:
temperature: 65
hvac_mode: auto4. اكتشاف وقت النوم (بدون أجهزة قابلة للارتداء):
automation:
- alias: "Detect Bedtime"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_bedroom
to: "on"
condition:
- condition: time
after: "22:00:00"
before: "02:00:00"
- condition: state
entity_id: binary_sensor.wifi_motion_living_room
state: "off"
for:
minutes: 10
action:
- service: scene.turn_on
target:
entity_id: scene.goodnight
- service: lock.lock
target:
entity_id: lock.front_door
- service: alarm_control_panel.arm_night
target:
entity_id: alarm_control_panel.home5. رعاية كبار السن / تنبيه انعدام الحركة:
automation:
- alias: "No Motion Alert - Elder Care"
trigger:
- platform: state
entity_id: binary_sensor.wifi_motion_parents_house
to: "off"
for:
hours: 4
condition:
- condition: time
after: "08:00:00"
before: "22:00:00"
action:
- service: notify.mobile_app
data:
title: "Check on Mom"
message: "No motion detected for 4 hours during daytime."
data:
priority: highنصائح احترافية لتكامل Home Assistant
- مستشعرات متعددة: انشر 2-3 ESP32 لتغطية المنزل بالكامل. واحد لكل طابق يعمل بشكل جيد.
- اضبط الحساسية: عدّل عتبة الكشف في إعدادات ESPectre لتجنب الإنذارات الكاذبة من الحيوانات الأليفة.
- ادمج مع مستشعرات أخرى: استخدم حركة WiFi ككاشف "نطاق واسع"، ثم حسّن بمستشعرات الأبواب/النوافذ للتفاصيل.
- مستشعرات القوالب: أنشئ مستشعرات ثنائية تجمع عدة غرف في مناطق (الطابق العلوي، السفلي، إلخ.)
- تتبع السجل: استخدم مكون Recorder لتسجيل أنماط الحركة عبر الوقت. مفيد لتحليل الأمان.
الاستخدام القاتل: التواجد في كامل المنزل
مستشعرات الحركة التقليدية (PIR) تكتشف الحرارة والحركة فقط. لا يمكنها معرفة ما إذا كان شخص ما جالساً بلا حراك. استشعار WiFi يستطيع ذلك. يكتشف الحركات الدقيقة للتنفس، والكتابة، أو مجرد الوجود في مكان ما.
هذا يعني أنك تستطيع بناء أتمتة تعرف أنك في الغرفة حتى عندما تعمل بهدوء على مكتبك. لن تنطفئ الأضواء لأنك توقفت عن الحركة. لن ينخفض التكييف لأنك تقرأ كتاباً.
هذا كشف تواجد، وليس مجرد كشف حركة. وقد بنيته بـ $10.
المضي أبعد: أضف كشف الحركة
بمجرد أن تحصل على بيانات BFI مباشرة (من المسار أ)، يمكنك إضافة كشف حركة فعلي بحوالي 10 أسطر من Python. المفهوم بسيط: إذا تجاوز تباين الزوايا حداً معيناً، فهذا يعني أن شيئاً ما تحرك.
import numpy as np
# Assuming you have a stream of angle data
def detect_motion(angle_buffer, threshold=0.5):
"""Returns True if motion detected in recent samples"""
if len(angle_buffer) < 10:
return False
variance = np.var(angle_buffer[-10:])
return variance > threshold
# In your main loop:
if detect_motion(recent_angles):
print("Motion detected!")
# Trigger alert, log event, whatever you wantهذه نسخة أساسية. تستخدم الأوراق البحثية تقنيات أكثر تطوراً: مصنفات تعلم الآلة، وتدفقات هوائيات متعددة، وأنماط زمنية، للتمييز بين أنواع الحركة، وعدّ الأشخاص، أو حتى التعرف على أنشطة محددة.
ماذا يعني هذا للخصوصية
الآن بعد أن رأيت كيف يعمل، لنتحدث عما يعنيه:
شبكة WiFi تبث دائماً. حتى عندما لا تستخدمها بنشاط، الراوتر والأجهزة يتبادلون بيانات BFI. أي شخص ضمن نطاق الراديو يمكنه التقاط هذه الإطارات.
التشفير لا يساعد هنا. BFI جزء من مصافحة الطبقة الفيزيائية. يحدث قبل التشفير. WPA3 وVPN، لا شيء من ذلك يهم لهذه البيانات تحديداً.
الحل الوحيد الحقيقي مادي: أقفاص فاراداي (غير عملية)، أو تقليل قوة الإرسال (يُفسد WiFi)، أو القبول بأن نمط إشغال منزلك هو فعلياً معلومات عامة ضمن نطاق الراديو.
هذا ليس تخويفاً. إنه عن الموافقة المستنيرة. أنت تستخدم تقنية لها هذه الخصائص. الآن أنت تعرف.
الخلاصة
لقد تعلمت للتو أن راوتر WiFi هو في الأساس نظام رادار، وبنيت كاشف حركة خاص بك باستخدام موجات الراديو، ونأمل أنك اكتسبت فهماً أفضل لكيفية حمل الإشارات غير المرئية من حولنا لمعلومات عن عالمنا المادي.
التقنية محايدة. يمكن استخدامها لأتمتة منزلية مريحة أو مراقبة مقلقة. المهم هو فهمها، حتى تتمكن من اتخاذ قرارات مدروسة حول التنازلات التي تقدمها.
وبالمناسبة، لديك أيضاً مشروع عطلة نهاية أسبوع رائع لتتباهى به. "أجل، حولت WiFi إلى مستشعر حركة. لا شيء مميز."
ممتع جداً، أليس كذلك؟
مصادر
- Wi-BFI: github.com/kfoysalhaque/Wi-BFI
- ESPectre: github.com/francescopace/espectre
- ورقة بحثية عن استشعار WiFi: ابحث عن "WiFi CSI human activity recognition" في Google Scholar للتعمق أكثر