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

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

ארבעת שלבי התקשורת
1. שידור נוכחות (Advertising) — הסלייב משדר חבילות "אני כאן" באופן מחזורי. המאסטר סורק ומגלה.
2. התאמה וקישור (Pairing) — אימות והצפנה, כדי שהתקשורת תהיה מאובטחת.
3. חיבור — אחרי שנוצר הקשר, שני הצדדים מחליפים נתונים.
4. ניתוק — בסיום או בפסק זמן.
3. מנורת הבלוטות'
איך היא עובדת:
- החיבור — ה-ESP32 מפעיל בלוטות' וממתין. הטלפון מחפש, מתאים ויוצר ערוץ תקשורת.
- שליחת פקודה — המשתמש שולח פקודה מאפליקציה בטלפון, וה-ESP32 מקבל אותה.
- פענוח — התוכנית מפרשת את הפקודה.
- ביצוע — הנורית נדלקת או נכבית.
בשיעור 29 שלטנו בשלט אינפרה-אדום. ההבדל: אינפרה-אדום דורש קו ראייה ישיר וטווח של כמה מטרים. בלוטות' עובר דרך קירים ומגיע להרבה יותר רחוק. זה השדרוג האמיתי.
הניסוי
המטרה: להדליק ולכבות נורית מהטלפון.
רשימת רכיבים
| הרכיב | כמות |
|---|---|
| לוח ESP32 | 1 |
| לוח ניסוי 400 נקודות | 1 |
| נורית LED | 1 |
| נגד 220Ω | 1 |
אין שום מודול תקשורת — הבלוטות' כבר בשבב.
התרשים החשמלי

החיבור

באפליקציה: בערכה מצורף קובץ Bluetooth_light.apk להתקנה באנדרואיד.

הקוד
#include "BluetoothSerial.h"
#define LED 5
BluetoothSerial SerialBT;
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(115200);
SerialBT.begin("Bluetooth LED"); // השם שיופיע בטלפון
delay(1000);
Serial.println("The device started, now you can pair it with bluetooth!");
}
void loop() {
int message;
if (SerialBT.available()) { // האם הגיע משהו?
message = SerialBT.read(); // קוראים בייט
Serial.println(message);
if (message == '1') digitalWrite(LED, HIGH);
else if (message == '0') digitalWrite(LED, LOW);
}
}
שלוש שורות שעושות את כל העבודה:
SerialBT.begin("Bluetooth LED")— מפעיל את הבלוטות' ונותן לו שם. זה השם שתחפשו בטלפון.SerialBT.available()— בודק אם הגיעו נתוניםSerialBT.read()— קורא בייט אחד
שימו לב שזה נראה בדיוק כמו
Serial— אותן פקודות, רק שהערוץ הוא אלחוטי במקום כבל. זו לא במקרה —BluetoothSerialתוכננה בכוונה להיראות כך, כדי שכל מה שידעתם על תקשורת טורית יעבוד מיד גם כאן.

איך מתחברים
- העלו את התוכנית
- בטלפון: הגדרות ← בלוטות' ← חפשו "Bluetooth LED" ← התאימו
- פתחו את האפליקציה והתחברו
- שלחו
1להדלקה,0לכיבוי

נסו בעצמכם
- שנו את שם המכשיר ל-משהו משלכם. מופיע בטלפון?
- הוסיפו פקודות:
2להבהוב,3לכיבוי אחרי 5 שניות. - החליפו את הנורית ב-RGB ושלחו צבעים.
- שלחו נתונים חזרה:
SerialBT.println(temperature)— והטלפון יראה את הטמפרטורה. - לכו לחדר אחר עם הטלפון. מאיזה מרחק החיבור נופל?


