אני הולך להראות לך משהו שישנה את הדרך שבה אתה חושב על הנתב (router) שיושב בסלון שלך. הוא לא רק שער לאינטרנט. הוא מערכת רדאר שיכולה לראות אותך נושם.
לא מדע בדיוני. פיזיקה. ואתה יכול לבנות אחד בעצמך בסופ"ש הזה.
רגע, מה? הנתב שלי יכול לראות אותי?
הנה מה שבאמת קורה: WiFi מודרני (802.11ac/ax) משתמש במשהו שנקרא beamforming (עיצוב קרן). לנתב שלך יש מספר אנטנות, ובמקום לשדר אות לכל הכיוונים באופן שווה, הוא מרכז את האות לעבר המכשירים שלך. תחשוב על זה כמו פנס ממוקד במקום תאורת הצפה.
כדי לעשות זאת, הנתב והמכשירים שלך מחליפים כל הזמן משוב על האות, במיוחד משהו שנקרא BFI (Beamforming Feedback Information). הנתונים האלה מתארים בדיוק איך גלי הרדיו מקפצים בחדר שלך.
והנה החלק המעניין באמת: המשוב הזה לא מוצפן. כל אחד יכול ללכוד אותו. וכשאתה, שקית גדולה של מים שמשקפת גלי רדיו, זז בחדר, נתוני ה-BFI משתנים. תלך לרוחב הסלון שלך, והמתמטיקה פשוט מראה את התנועה שלך.
המדע במילים פשוטות
הגוף שלך משקף אותות WiFi. כשאתה זז, ההשתקפויות משתנות. הנתב שלך עוקב אחרי השינויים האלה כדי לייעל את עוצמת האות. נתוני המעקב האלה משודרים בגלוי. תלכוד אותם, ויש לך חיישן תנועה שעובד דרך קירות.
חוקרים השתמשו בזה כדי לזהות דפוסי נשימה, לספור אנשים בחדר, לזהות מחוות, ואפילו לזהות אנשים ספציפיים לפי הדרך שהם הולכים. כבר קיימים מוצרים מסחריים שהופכים את ה-WiFi הקיים שלך למערכת זיהוי תנועה לכל הבית.
ההשלכות על הפרטיות (כן, זה מדאיג)
לפני שנכנסים לחלק הכיף של הפרויקט, בואו נתייחס לפיל שבחדר: זו בעיית פרטיות.
רשת ה-WiFi שלך משדרת כל הזמן מידע שיכול לחשוף:
- האם מישהו בבית
- כמה אנשים בחדר
- דפוסי תנועה כלליים ברחבי הבית שלך
- פוטנציאלית, פעילויות ספציפיות (בישול, שינה, אימון)
מישהו עם הציוד הנכון שחונה מחוץ לבית שלך יכול תיאורטית ללכוד את הנתונים האלה. הוא לא צריך להיות ברשת שלך. הוא רק צריך לקלוט את מסגרות ה-BFI שהנתב שלך משדר.
"אותה טכנולוגיה שהופכת את ה-WiFi שלך למהיר יותר גם הופכת את הבית שלך לשקוף לכל מי שיודע איך להסתכל."
זה לא היפותטי. מאמרי מחקר הוכיחו את זה. הסיבה היחידה שזה לא מנוצל יותר היא שרוב האנשים לא יודעים שזה אפשרי. וזה... לא אבטחה מצוינת.
למה לבנות את זה בעצמך?
אז למה אני מספר לך איך לעשות את זה? כמה סיבות:
1. הבנת מודל האיום. אתה לא יכול להגן על עצמך מפני משהו שאתה לא מבין. לראות את זה עובד במו עיניך הופך את זה לאמיתי באופן שקריאה על כך לא מצליחה.
2. השימושים הלגיטימיים באמת מגניבים. זיהוי תנועה לבית חכם בלי מצלמות. חישני נוכחות לאוטומציה. זיהוי נפילות לקרובים מבוגרים. חיסכון באנרגיה על ידי ידיעה אילו חדרים תפוסים. הכל בלי להתקין חיישנים בכל מקום.
3. זה באמת מרתק. אתה הופך גלי רדיו להמחשה של מרחב פיזי. זה סייברפאנק ברמה הכי גבוהה.
מה שאנחנו בונים הוא ניסוי אתי, רק ברשת שלך. אתה מנטר את ה-WiFi שלך, בבית שלך, כדי להבין טכנולוגיה שאתה כבר משתמש בה. זה לא רק חוקי, זה חכם.
שני מסלולים: בחר את ההרפתקה שלך
אני הולך לתת לך שתי אפשרויות בהתאם לרמת הנוחות שלך ולחומרה שיש לך בסביבה.
מסלול A: החוויה המלאה (Linux + Wi-BFI)
- זמן: 30-60 דקות
- קושי: בינוני (נדרשת שורת פקודה)
- חומרה: מחשב Linux + מתאם WiFi עם monitor mode
- תוצאה: המחשה חיה של נתוני BFI, ראה את התנועה שלך בגרפים בזמן אמת
מסלול B: Plug and Play (ESP32 + ESPectre)
- זמן: 15-30 דקות
- קושי: קל (web flasher, copy-paste של הגדרות)
- חומרה: לוח ESP32-S3 או ESP32-C6 (~$10)
- תוצאה: חיישן תנועה עובד ב-Home Assistant
מסלול A: הצלילה העמוקה של Wi-BFI
זו הגישה של "ראה את הנתונים האמיתיים". תלכוד מסגרות BFI אמיתיות מהנתב שלך ותמחיש אותן משתנות תוך כדי שאתה נע. זו אותה שיטה שחוקרים משתמשים בה במאמרים אקדמיים.
מה שאתה צריך
- מחשב Linux — Ubuntu 22.04/24.04, או Raspberry Pi
- מתאם WiFi עם monitor mode — רוב שבבי Intel/Broadcom/Realtek המובנים עובדים. אם לא, דונגל USB של $15 כמו TP-Link AC600 או Alfa AWUS036ACH יעשה את העבודה.
- הנתב WiFi הקיים שלך — כל נתב 802.11ac או 802.11ax (שזה בעצם כל נתב מ-5 השנים האחרונות)
שלב 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. המתמטיקה ממש עוקבת אחרי התנועה שלך במרחב.
עמוד במקום, והגרף מתייצב. תעבור ליד הטלפון שלך, ויש קפיצה. תנופף בידיים, ותראה שינויים מתאימים. אלה אותם נתונים שניתן להשתמש בהם לזיהוי תנועה, זיהוי מחוות, או... מעקב.
מסלול B: המצב הקל של ESP32
לא רוצה להתעסק עם Linux ו-monitor mode? קנה לוח ESP32 ותהיה לך חיישן תנועה עובד ב-15 דקות.
מה שאתה צריך
- לוח ESP32-S3 או ESP32-C6 — בערך $8-12 באמזון. ה-ESP32-C6 חדש יותר ועובד מצוין.
- כבל USB-C — לצריבת הלוח
- Home Assistant — אופציונלי אבל מומלץ לחוויה המלאה
פרויקט ESPectre
ESPectre הוא פרויקט קוד פתוח שתוכנן במיוחד להפוך את ה-WiFi שלך לחיישן תנועה. הוא מבריק בפשטותו.
GitHub: github.com/francescopace/espectre
שלבי הגדרה
1. צרוב את הלוח — לך ל-web flasher של ESPectre (מקושר ב-repo שלהם). חבר את ה-ESP32 שלך, לחץ על flash, סיימת.
2. הגדר WiFi — הלוח יוצר נקודה חמה. התחבר אליה, הכנס את פרטי ה-WiFi הביתי שלך.
3. הוסף ל-Home Assistant — אם אתה מריץ Home Assistant, הוא מתגלה אוטומטית כישות חיישן תנועה. אז אתה יכול להפעיל אוטומציות: אורות כשמזוהה תנועה, התראות כשאתה לא בבית, וכו'.
4. זה ממש הכל. עכשיו יש לך חיישן תנועה שעובד דרך קירות, לא דורש קו ראייה, ומשתמש בתשתית ה-WiFi הקיימת שלך.
שימושים בעולם האמיתי
- נוכחות בכל הבית: דע אילו חדרים תפוסים בלי מצלמות
- מעקב שינה: זהה מתי מישהו במיטה (בלי wearables)
- אבטחה: התראה אם מזוהה תנועה כשכולם בחוץ
- אוטומציה: מיזוג, תאורה מבוססי תפוסה אמיתית של חדרים
- טיפול בקשישים: זיהוי נפילות, ניטור פעילות
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. זיהוי שעת שינה (בלי wearables):
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 חיים בסטרימינג (ממסלול A), אתה יכול להוסיף זיהוי תנועה אמיתי עם כ-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זו גרסה בסיסית. מאמרי מחקר משתמשים בטכניקות מתוחכמות יותר: מסווגי machine learning, זרמי אנטנות מרובים, דפוסים זמניים, כדי להבחין בין סוגי תנועה, לספור אנשים, או אפילו לזהות פעילויות ספציפיות.
מה זה אומר לפרטיות
עכשיו שראית את זה עובד, בוא נדבר על מה זה אומר:
ה-WiFi שלך תמיד משדר. גם כשאתה לא משתמש בו באופן פעיל, הנתב והמכשירים שלך מחליפים נתוני BFI. כל אחד בטווח הרדיו יכול ללכוד את המסגרות האלה.
הצפנה לא עוזרת כאן. BFI הוא חלק מלחיצת היד של השכבה הפיזית. זה קורה לפני ההצפנה. WPA3, VPN, שום דבר מזה לא משנה לנתונים הספציפיים האלה.
הפחתת הסיכון האמיתית היחידה היא פיזית: כלובי פאראדיי (לא מעשי), הפחתת עוצמת השידור (שובר את ה-WiFi שלך), או קבלת העובדה שדפוס התפוסה של הבית שלך הוא למעשה מידע ציבורי בטווח הרדיו.
זה לא על יצירת פחד. זה על הסכמה מדעת. אתה משתמש בטכנולוגיה שיש לה את התכונות האלה. עכשיו אתה יודע.
לסיכום
למדת עכשיו שהנתב WiFi שלך הוא בעצם מערכת רדאר, בנית גלאי תנועה משלך באמצעות גלי רדיו, ובתקווה רכשת הבנה טובה יותר של איך האותות הבלתי נראים סביבנו נושאים מידע על העולם הפיזי שלנו.
הטכנולוגיה נייטרלית. ניתן להשתמש בה לאוטומציה ביתית נוחה או למעקב מדאיג. מה שחשוב הוא להבין אותה, כדי שתוכל לקבל החלטות מושכלות לגבי הפשרות שאתה עושה.
ואגב, יש לך גם פרויקט סופ"ש מגניב להתרברב בו. "כן, הפכתי את ה-WiFi שלי לחיישן תנועה. לא עניין גדול."
:::reminder{date="2026-03-16" label="בנה את חיישן התנועה WiFi שלך בסופ"ש הזה"}
:::tasklist{title="פרויקט סופ"ש חישת WiFi" slug="wifi-sensing-build"}
- הזמן לוח ESP32-S3 או ESP32-C6 (בערך $10 באמזון)
- צרוב את הלוח עם ESPectre באמצעות ה-web flasher
- הגדר אותו להתחבר לרשת ה-WiFi הביתית שלך
- תלך בחדרים ותוודא שזיהוי התנועה עובד
- הגדר לפחות אוטומציה אחת ב-Home Assistant (אורות או התראות)
- בדוק את טווח לכידת BFI והרגישות דרך קירות :::
זה די כיף.
משאבים
- Wi-BFI: github.com/kfoysalhaque/Wi-BFI
- ESPectre: github.com/francescopace/espectre
- מאמר מחקר על חישת WiFi: חפש "WiFi CSI human activity recognition" ב-Google Scholar לצלילה עמוקה