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

Kyzd Lhgdyr Wltknt T H Esp32 Ltqsr M Sm Rtpwn Ndrw Yd B Mz Wt Bluetooth



ESP32 הוא לוח מיקרו-בקר עם מגוון רחב של יכולות. יש לו מודולי Wi-Fi ו-Bluetooth מובנים. באמצעות שני המודולים הללו, תוכל לתכנת את ESP32 באופן אלחוטי. עם זה, אתה לא צריך לדאוג לגבי חיבורי חוטים ארוכים לשליטה בציוד היקפי של ESP32.

במאמר זה, נחבר לוח ESP32 עם טלפון אנדרואיד ונתקשר נתונים באמצעות Bluetooth. יתרה מכך, נשלוט על LED המחובר לפיני ה-GPIO של ESP32 ישירות דרך סמארטפון האנדרואיד.

תוכן:







מהו ESP32 Bluetooth LE

ESP32 הוא לוח מיקרו-בקר התומך גם ב-Bluetooth Classic וגם ב-Bluetooth Low Energy הידוע גם בשם Bluetooth חכם. ה-BLE או ה-Smart Bluetooth הם ספציפיים לתקשורת חסכונית באנרגיה או מיועדת לתקשורת לטווח קצר או להעברות נתונים קטנות.



פונקציונליות ה-BLE של ה-ESP32 מאפשרת לו לפעול כשרת או כלקוח בתקשורת Bluetooth. זה יכול להתמודד עם משימות כמו שירותי קריאה וכתיבה. זה יכול גם להצפין חיבורים וליצור חיבורי פרופיל יציאה טורית (SPP) להעברת נתונים במצב מעבר UART-BLE. ה-ESP32 Bluetooth תומך בפרוטוקולי 4.2, מה שאומר שהוא תואם לשכבות שונות כמו השכבה הפיזית (PHY) ושכבת הקישור (LL). יש לו גם תמיכה עבור Host Controller Interface (HCI), בין היתר.



בדוק את טבלת ההבדלים עבור ESP32 Classic ו-BLE Bluetooth.





תכונה בלוטות' קלאסי Bluetooth באנרגיה נמוכה (BLE)
סוג תקשורת תקשורת דו כיוונית מתמשכת פרצי נתונים לסירוגין, בעיקר חד-כיווניים
טווח תפעולי יכול להגיע עד 100 מטר פועל בדרך כלל מתחת ל-100 מטר
צריכת חשמל צורכת עד 1 וואט נע בין 10 מיליוואט ל-500 מיליוואט
מהירות העברה קצבי העברת הנתונים נעים בין 1 ל-3 מגה-ביט לשנייה תומך ב-125 קילו-ביט לשנייה עד 2 מגה-ביט לשנייה
זמן תגובה חביון בסביבות 100 אלפיות השנייה תגובה מהירה עם השהייה של 6 אלפיות שניות
תמיכה קולית מצויד בשידור קולי חסר פונקציונליות של שידור קול

עיין במאמרי ESP32 Bluetooth אלה כדי לקבל יותר בתוכו.

כיצד לתכנת את ESP32 לתקשר באמצעות Bluetooth עם סמארטפון אנדרואיד

כדי לתכנת את ESP32 כך שיוכל לתקשר עם טלפון אנדרואיד באמצעות פרוטוקול Bluetooth, עליך להגדיר את הספרייה הטורית של ESP32 Bluetooth. לשם כך, עליך להיות בעל הגדרת Arduino IDE עם לוח ESP32 מותקן.



לאחר הגדרת ESP32 Bluetooth, עליך להתקין את אפליקציית ה-Android הטורי Bluetooth. זה יאפשר לך לשלוח הוראות מטלפון אנדרואיד ל-ESP32 באמצעות תקשורת טורית Bluetooth.

בואו נסתכל מקרוב על כל אחד מהשלבים הבאים:

שלבים לחיבור ESP32 Bluetooth עם טלפון אנדרואיד

כדי לתכנת את לוח ה-ESP32 לתקשורת Bluetooth, בצע את השלבים הבאים:

שלב 1: התקנת לוח ESP32 ב- Arduino IDE

כדי להתקין את ה-ESP32 על Arduino IDE, פשוט עקוב אחר המדריך המופיע במאמר זה.

התקנת לוח ESP32 ב- Arduino IDE

לאחר ההתקנה, ניתן לחבר ולתכנת את לוח ה-ESP32 באמצעות Arduino IDE.

שלב 2: העלה את קוד ESP32 Bluetooth

לאחר התקנת לוח ESP32, תראה ספריות שונות מותקנות מראש והדוגמאות שלהן ב- Arduino IDE. כל הספריות הללו קשורות ללוח ESP32. עבור תקשורת טורית Bluetooth, אנו הולכים להשתמש ב-ESP32 BluetoothSerial.h קוד לדוגמה של ספריה.

כדי לפתוח את הקוד לדוגמה, פתח את Arduino IDE ועבור אל: קובץ > דוגמאות > BluetoothSerial > SerialtoSerialBT

כדי לפתוח קוד לדוגמה זה, ודא שלוח ה-ESP32 נבחר.

לאחר פתיחת הקוד לדוגמה, תראה את הקוד הבא בחלון Arduino IDE שלך:

//ברוכים הבאים ל-Linuxhint

#include 'BluetoothSerial.h'

//#define USE_PIN // בטל הערה זו אם אתה רוצה PIN במהלך ההתאמה
const לְהַשְׁחִיר * פִּין = '1234' ; // הגדר קוד התאמה אישית של התאמה

מחרוזת device_name = 'ESP32' ;

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth אינו מופעל! הפעל את 'make menuconfig' כדי להפעיל אותו
#endif

#if !defined(CONFIG_BT_SPP_ENABLED)
#error Bluetooth טורי חסר או לא מופעל. זה זמין רק עבור שבב ESP32.
#endif

BluetoothSerial SerialBT ;

בָּטֵל להכין ( ) {
סידורי. התחל ( 115200 ) ;
SerialBT. התחל ( שם התקן ) ; //שם מכשיר ה-Bluetooth
סידורי. printf ( 'המכשיר ' % ס ' התחיל. \n התחל להתאים את המכשיר שלך! \n ' , שם התקן. c_str ( ) ) ;
//Serial.printf('המכשיר '%s' עם כתובת MAC %s מופעל.\nהתחל להתאים אותו עם Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( פִּין ) ;
סידורי. println ( 'משתמש ב-PIN' ) ;
#endif
}

בָּטֵל לוּלָאָה ( ) {
אם ( סידורי. זמין ( ) ) {
SerialBT. לִכתוֹב ( סידורי. לקרוא ( ) ) ;
}
אם ( SerialBT. זמין ( ) ) {
סידורי. לִכתוֹב ( SerialBT. לקרוא ( ) ) ;
}
לְעַכֵּב ( עשרים ) ;
}

לאחר העלאת הקוד, תראה את ההודעה הבאה על המסך. הודעה זו מתארת ​​שלוח ה-ESP32 שלך מוכן להתאמה.

שלב 3: הסבר קוד

הקוד התחיל עם הכללת הספריות הדרושות ובדיקת זמינות Bluetooth. זה גם מגדיר משתנים עבור שם מכשיר ה-Bluetooth ו-PIN.

בתוך ה להכין() פונקציה, תקשורת הבאוד הטורית מוגדרת והתקן ה-Bluetooth מאותחל עם שמו. ניתן להגדיר PIN מותאם אישית לאימות במהלך ההתאמה.

ה לוּלָאָה() הפונקציה בודקת ללא הרף את הנתונים בחיבורים הטוריים וה-Bluetooth. זה מאפשר לו ליצור תקשורת דו-כיוונית בין ה-ESP32 לבין מכשיר בלוטות' מזווג.

שלב 4: התקן את אפליקציית אנדרואיד

לאחר העלאת הקוד, השלב הבא הוא להתקין ולהגדיר את אפליקציית אנדרואיד לחיבור בלוטות'.

פתח את חנות Play והתקן את מסוף בלוטות' טורי יישום.

לאחר ההתקנה, פתח את הגדרות ה-Bluetooth של הטלפון החכם וחבר את הטלפון שלך עם ESP32 Bluetooth. אם הגדרת PIN בקוד Arduino IDE, עליך להזין את ה-PIN אחרת הוא יתחבר ישירות.

כעת פתחו את אפליקציית ה-Serial Bluetooth ובחרו את התקנים אוֹפְּצִיָה.

מהתפריט שנפתח לאחרונה, בחר במכשיר ה-ESP32. רשימה זו מציגה את כל מכשירי ה-Bluetooth הפעילים כעת.

כפי שאתה יכול לראות, ESP32 Bluetooth מחובר לסמארטפון אנדרואיד שלך.

כדי לבדוק את החיבור, אנחנו הולכים לשלוח מחרוזת. הנה שלחתי שתי מחרוזות שונות.

תבחין שאותן שתי מחרוזות יוצגו גם במסוף Arduino IDE.

עכשיו בואו נתקדם צעד אחד קדימה ונשלוט בציוד היקפי חיצוני כמו LED באמצעות ESP32 Bluetooth דרך הטלפון החכם אנדרואיד.

שלב 5: שלוט ב-LED באמצעות טלפון אנדרואיד באמצעות Bluetooth

כדי לשלוט ב-LED באמצעות ESP32 ו-Android Bluetooth, שנה תחילה את הקוד לעיל והגדר סיכת GPIO עבור LED. לאחר מכן, עליך להגדיר את הערכים להפעלה וכיבוי של הנורית.

העלה את הקוד למטה כדי להמשיך הלאה.

#include // כלול את ספריית התקשורת הטורית של Bluetooth

#define LED_PIN 15 // הגדר את פין LED

BluetoothSerial SerialBT ; // צור אובייקט BluetoothSerial
בייט BT_INP ; // משתנה לאחסון קלט Bluetooth

// בדוק אם Bluetooth ו-Bluedroid מופעלים בתצורת SDK
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth אינו מופעל. הפעל את 'make menuconfig' כדי להפעיל אותו.
#endif

בָּטֵל להכין ( ) {
pinMode ( LED_PIN , תְפוּקָה ) ; // הגדר את פין LED כפלט
סידורי. התחל ( 115200 ) ;
SerialBT. התחל ( 'ESP32' ) ; // אתחול בלוטות' בשם 'ESP32'
סידורי. println ( 'מכשיר ה-Bluetooth מוכן להתאמה.' ) ; // ציין ש-Bluetooth מוכן
}

בָּטֵל לוּלָאָה ( ) {
// בדוק אם יש נתונים זמינים לקריאה מ-Bluetooth
אם ( SerialBT. זמין ( ) ) {
BT_INP = SerialBT. לקרוא ( ) ; // קרא את הביט הנכנס מ-Bluetooth
סידורי. לִכתוֹב ( BT_INP ) ; // הדהוד את בית הקריאה למוניטור הטורי
}

// בדוק את נתוני ה-Bluetooth שהתקבלו והגדר את מצב LED
אם ( BT_INP == '1' ) {
digitalWrite ( LED_PIN , גָבוֹהַ ) ; // הפעל את הנורית אם '1' מתקבל
} אַחֵר אם ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , נָמוּך ) ; // כבה את הנורית אם '0' מתקבל
}
}

קוד זה מיועד למיקרו-בקר ESP32 לשלוט ב-LED באמצעות Bluetooth. הוא כולל ספרייה לתקשורת בלוטות'. לאחר מכן, הוא מגדיר את סיכת ה-LED ומגדיר בלוטות' עם מכשיר בשם ESP32. הלולאה הראשית קוראת נתוני בלוטות' ומפעילה או מכבה את ה-LED בהתבסס על הפקודה שהתקבלה (1 עבור ON, 0 עבור OFF).

תרשים מעגל

דיאגרמת המעגל פשוטה, עם נורית LED מחוברת בפין D15 של ה-ESP32. אתה יכול להגדיר כל GPIO אחר עבור בקרת LED.

קָשׁוּר: ESP32 Pinout Reference – מדריך אולטימטיבי

חוּמרָה

בחומרה, תזדקק ללוח לחם, לוח ESP32 ונורית LED. חבר את ה-ESP32 למערכת והעלה את התוכנית אליה.

כעת שלח 1 ו-0 מאפליקציית התקשורת הטורית של טלפון אנדרואיד.

אתה תראה את אותה קלט במסוף Arduino IDE שהתקבל מטלפון אנדרואיד.

תְפוּקָה

ברגע שתשלחו את הערך הגבוה או 1, ה-LED תידלק, ובדומה כאשר תשלחו את הערך הנמוך, ה-LED תכבה.

הגדר כפתור מותאם אישית

אתה יכול גם להגדיר כפתור מותאם אישית בתוך אפליקציית Bluetooth Serial. לדוגמה, ניתן ליצור לחצן ערכים גבוהים ונמוכים. בדרך זו, אינך צריך להקליד את הערכים באופן ידני. במקום זאת, אתה רק צריך ללחוץ על כפתור הקיצור, והוא יבצע את ההוראה שהגדרת.

הערה: כדי לפתוח את הגדרות הכפתור, לחץ לחיצה ארוכה על הכפתור.

כדי להגדיר את ערך הלחצן HIGH, הגדר את ההגדרות הבאות.

דומה לערך הלחצן LOW, עליך להגדיר את ההגדרות שלהלן.

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

קָשׁוּר: ממסר עם ESP32 באמצעות Arduino IDE

סיכום

ESP32 הוא לוח מיקרו-בקר מתקדם עם יכולות Wi-Fi ו-Bluetooth. שני המודולים המובנים הללו עוזרים לך לתכנן פרויקטים מתקדמים ולשלוט בציוד ההיקפי באופן אלחוטי. באופן דומה, אתה יכול לחבר את ESP32 לטלפון אנדרואיד ולבצע פעולות שונות. לשם כך, תצטרך להתקין את אפליקציית Bluetooth Serial Android. לאחר ההתקנה, פתח את הקוד לדוגמה עבור ESP32 Bluetooth והעלה אותו ללוח שלך. לאחר העלאת הקוד, תוכל להתאים אותו ללוח שלך דרך טלפון אנדרואיד.