מה נלמד כאן
- תקשורת בלוטות'
- בלוטות' קלאסי מול BLE
- לשלוט בנורית מהטלפון
הצעד לאלחוטי

כאן מתחילים להשתמש במה שמייחד את ה-ESP32: תקשורת אלחוטית בתוך השבב.
הידע שצריך
1. בלוטות'
טכנולוגיה אלחוטית לטווח קצר, לצריכת חשמל נמוכה ועלות נמוכה.
| קלאסי | BLE | |
|---|---|---|
| מתאים ל | העברה מהירה | תקשורת קטנה ומחזורית |
| דוגמאות | אודיו, קבצים | חיישנים, שעונים |
| חשמל | גבוה יותר | נמוך מאוד |
ESP32 תומך בשניהם. הספרייה שנשתמש בה עובדת עם BLE.
2. איך זה עובד

גלי רדיו ב-2.4GHz, במבנה מאסטר-סלייב: הטלפון יוזם, ה-ESP32 משדר את עצמו וממתין.
ארבעה שלבים: שידור נוכחות → התאמה → חיבור → ניתוק.
בשיעור 16 השתמשנו בשלט אינפרה-אדום. ההבדל: אינפרה-אדום דורש קו ראייה ישיר. בלוטות' עובר דרך קירות ומגיע רחוק יותר. זה השדרוג האמיתי.
הניסוי
המטרה: להדליק ולכבות נורית מהטלפון.
רשימת רכיבים
| הרכיב | כמות |
|---|---|
| לוח ESP32 | 1 |
| לוח ניסוי 400 נקודות | 1 |
| נורית LED | 1 |
| נגד 220Ω | 1 |
אין שום מודול תקשורת — הבלוטות' כבר בשבב.
התרשים החשמלי

החיבור

באפליקציה: בערכה מצורף LightBlue.apk — אפליקציית BLE כללית לאנדרואיד.
הקוד
from libs.ACB_Blu import ACB_ESP32_BLE
from machine import Pin
import time
LED_PIN = 5
led = Pin(LED_PIN, Pin.OUT)
ble = ACB_ESP32_BLE("Bluetooth LED") # השם שיופיע בטלפון
print("The device started, now you can pair it with bluetooth!")
while True:
data = ble.handle_received_data() # האם הגיע משהו?
if data:
if data == "1":
led.value(1)
elif data == "0":
led.value(0)
time.sleep(0.1)
שתי שורות שעושות הכול:
ACB_ESP32_BLE("שם")— מפעיל את הבלוטות' ונותן לו שם. זה השם שתחפשו בטלפון.handle_received_data()— מחזירה נתונים אם הגיעו, ו-Noneאם לא.
if data:— בפייתון,Noneומחרוזת ריקה נחשבים "לא נכון". אז שורה אחת מכסה גם "הגיע משהו" וגם "זה לא ריק". ב-C היה צריך שתי בדיקות.
איך מתחברים
- העלו את התוכנית
- בטלפון: פתחו LightBlue וחפשו "Bluetooth LED"
- התחברו ושלחו
1להדלקה,0לכיבוי
נסו בעצמכם
- שנו את שם המכשיר. מופיע בטלפון?
- הוסיפו פקודות:
2להבהוב,3לכיבוי מושהה. - החליפו ב-RGB ושלחו צבעים.
- שלחו נתונים חזרה לטלפון — למשל טמפרטורה.
- לכו לחדר אחר. מאיזה מרחק החיבור נופל?


