- תחילת העבודה עם ESP32 Bluetooth
- הבנת Bluetooth נמוכה באנרגיה (BLE) ו- Bluetooth ESP32 קלאסי
- הכנת Arduino IDE ל- ESP32
- תוכנית Bluetooth טורית ל- ESP32
- בדיקת Bluetooth סידורי עם ESP32
מודולי Bluetooth כמו HC-05 ו- HC-06 קלים להתקנה ומהירים לשימוש עם Arduino IDE, אך יש להם מגבלה משלהם כמו צריכת חשמל גבוהה והם פועלים על Bluetooth V2.0 הישן. כמו כן, לאחרונה קיבלתי לעצמי ערכת ESP32 DEV חדשה, למודולים אלה יש אגרוף של תכונות כמו Wi-Fi מובנה ו- Bluetooth, פינים רבים של ADC ו- DAC, תמיכה באודיו, תמיכה בכרטיסי SD, מצב שינה עמוק וכו 'כמעט יש הכל כדי לבנות פרויקטים של IoT.
וכמו שכל תחביב יאהב את זה, ה- ESP32 נתמך כעת באופן רשמי על ידי IDE של ארדואינו. מוקדם יותר עלינו לבצע פיתרון עצום עם ספריית ניל קולבנס, אך כעת בזכות עבודתו הקשה של הבחור הזה תכנות ESP32 עם Arduino IDE הפך לטיול עוגות. לפיכך, השגרתי את ה- IDE של ארדואינו והקשרתי כמה דוגמאות לתוכניות BLE, שדרכן לא הבנתי דבר. לאחר זמן רב של גלישה ויצירת YouTube, הבנתי שיש עוד הרבה מה להבין אם אתה צריך לעבוד עם Bluetooth Low Energy (BLE) באמצעות ESP32. החלטתי לכסות את ה- BLE במאמרים נפרדים, אז כאן נשתמש ב- Bluetooth הסידורי הקלאסי של ESP32 כדי להחליף נורית באמצעות טלפון חכם. אם אתה מעוניין לבדוק כיצד להשתמש בתכונות BLE עיין במאמר זה על שרת ESP32 BLE ולקוח ESP32 BLE
תחילת העבודה עם ESP32 Bluetooth
התוכנית הראשונה שרציתי לנסות הייתה תוכנית פשוטה שבאמצעותה אני יכול להדליק או לכבות נורית מאפליקציית מסוף Bluetooth לטלפון נייד, בדיוק כמו הימים הטובים של HC-05. אבל מתברר ש- Bluetooth Low Energy (BLE) אינו מונע מכך. גיליתי גם שיש שני סוגים של Bluetooth במודול ESP32, האחד הוא Bluetooth הקלאסי והשני הוא BLE Bluetooth Low Energy. אוקיי, אבל למה?…. למה יש לנו שני סוגים של Bluetooth ובמה עלי להשתמש בפרויקט שלי?
הבנת Bluetooth נמוכה באנרגיה (BLE) ו- Bluetooth ESP32 קלאסי
ה- Bluetooth Low Energy, כשמו כן הוא, צורך פחות חשמל מ- Bluetooth קלאסי. זה מושג על ידי שליחת נתונים לפי הצורך עם עדכונים תקופתיים שהוגדרו מראש. אבל בניגוד ל- Bluetooth הקלאסי הוא לא משמש להעברת קבצים או מוזיקה. האם תהיתם פעם כיצד הטלפון שלכם מזהה אוטומטית שמכשיר ה- Bluetooth שהתאימו זה עתה הוא מכשיר שמע או מחשב נייד או טלפון, אולי גם ראיתם שרמת הסוללה בנגן השמע האלחוטי או בפס הכושר מוצגת אוטומטית בשורת המצב של הנייד שלך; כל אלה אפשריים עם המאפיינים של מכשירי BLE. מכשיר BLE עובד עם V4.0 Bluetooth והוא יכול לפעול עם צריכת חשמל נמוכה כשרת או כלקוח מה שהופךBLE בחירה אידיאלית עבור משואות, שעונים חכמים, להקות כושר וכו '.
לעומת זאת, Bluetooth קלאסי הוא פשוט ה- Bluetooth הישן והפשוט שבו אנו משתמשים להעברת קבצים ונתונים אחרים. כמעט לכל מכשירי BLE יש פונקציונליות Bluetooth קלאסית המשויכת אליו. ה- Bluetooth המשמש במודולים כמו HC-05 הוא גרסה של ה- Bluetooth הקלאסי הנקרא Bluetooth SSP (פרוטוקול יציאה טורית), כלומר ה- Bluetooth עוקב אחר הפרוטוקול הסדרתי הסטנדרטי שמקל על שליחת וקבלת נתונים ללא תקורה רבה. בסוף מדריך זה נלמד כיצד להשתמש בפונקציונליות בלוטות 'סידורי ב- ESP32.
כאן במאמר זה נשתמש בפונקציית ה- Bluetooth הסדרתית ב- ESP32 כדי להתאים אותה לסמארטפון ולהשתמש בכל אפליקציית מסוף Bluetooth קיימת מחנות Play כדי לשלוח פקודות ל- ESP32 ולהחליף את נורית ה- LED בהתאם.
במאמרים מאוחרים יותר נעסוק ב ESP32 BLE כשרת וגם כ לקוח. שרת BLE משמש בדרך כלל לשליחת נתוני BLE להתקני Bluetooth אחרים ולקוח BLE משמש לסריקת התקני BLE אחרים ובכך לשמש כמגדלור.
הכנת Arduino IDE ל- ESP32
שים לב Arduino IDE כברירת מחדל אינו תומך בלוח ESP32; עליך להוריד ולהתקין אותם באמצעות מנהל הלוח. אם זו התוכנית הראשונה שלך עם ESP32, עקוב אחר המדריך לתחילת העבודה כדי להוסיף את לוח ה- ESP32 לארדואינו שלך ולהעלות סקיצה למבחן.
יתר על כן, אתה יכול לעשות פרויקטים נוספים עם ESP32, מבלי להשתמש במיקרו-בקר איתו.
תוכנית Bluetooth טורית ל- ESP32
התוכנית המלאה להחלפת נורית באמצעות Bluetooth ESP32 ניתנת בסוף עמוד זה. תחת כותרת זו, מאפשר לפרוץ את הקוד לקטעים קטנים ולנסות להבין אותם. אם כבר השתמשת במודולי Bluetooth אחרים כמו HC-05, היית מוצא שתוכנת דוגמה זו של ה- ESP32 Bluetooth Classic דומה מאוד.
הרעיון של התוכנית הוא לאתחל חיבור Bluetooth סידורי באמצעות ESP32 ולהאזין לנתונים ממכשירים מותאמים. אם הנתונים הנכנסים הם '1', אנו מדליקים את ה- LED ואם הוא '0' עלינו לכבות את ה- LED. אנו מתחילים את התוכנית שלנו על ידי הוספת קובץ הכותרת BluetoothSerial מה שגורם ל- Bluetooth ESP32 לעבוד כ- SSP של Bluetoth.
# כלול "BluetoothSerial.h" // קובץ כותרת עבור Bluetooth סידורי, יתווסף כברירת מחדל לארדואינו
יש הרבה דברים שקורים מאחורי הספרייה הזו, אבל בחרנו לא להעמיק בה כדי לשמור על דברים פשוטים. הדבר הבא שאנחנו צריכים הוא אובייקט לפעולות הקשורות ל- Bluetooth שלנו. הנה שמתי את שלי בשם ESP_BT , אבל אתה יכול לבחור כל שם.
ESP_BT סידורי Bluetooth; // אובייקט ל- Bluetooth
לאחר מכן, בתוך פונקציית התקנת הריק () . אנו מתחילים את התקשורת הסדרתית עם קצב שידור 9600 ומאתחלים את אות ה- Bluetooth בשם. הנה כיניתי אותו בשם "ESP32_LED_Control ", זה יהיה שם שיימצא בטלפון שלנו כשמנסים להתאים. לבסוף הכרזתי על סיכת ה- LED המובנית כסיכת פלט מכיוון שאנחנו הולכים להחליף אותה על פי אות Bluetooth.
הגדרת חלל () { Serial.begin (9600); // הפעל את המסך הטורי בשנת 9600 ESP_BT.begin ("ESP32_LED_Control"); // שם אות ה- Bluetooth שלך Serial.println ("מכשיר Bluetooth מוכן להתאמה"); pinMode (LED_BUILTIN, OUTPUT); // ציין כי פין ה- LED יופלט }
בתוך פונקציית הלולאה הריקה האינסופית, אנו בודקים אם יש נתונים שמגיעים ממודול ה- Bluetooth, אם כן, הנתונים נקראים ומאוחסנים במשתנה הנכנס . אנו מדפיסים ערך זה גם על צג הסידורי רק כדי לבדוק מה מקבל את הארדואינו.
אם (ESP_BT.available ()) // בדוק אם נקבל משהו מ- Bluetooth { נכנס = ESP_BT.read (); // קרא מה אנו משחזרים Serial.print ("קיבל:"); Serial.println (נכנס);
כעת, כל הנתונים שיתקבלו נשמרים במשתנה הנכנס , כך שנוכל להשוות ישירות משתנה זה לערך הצפוי ולבצע את הפעולה הנדרשת. אך הערך שנשלח מ- Bluetooth יהיה בצורת char ו- Arduino יקרא את הערך העשרוני של ה- char שנשלח מהטלפון. במקרה שלנו עבור תו '0' הערך העשרוני יהיה 48 ועבור תו '1' הערך העשרוני יהיה 49. ניתן להפנות לתרשים ASCII כדי להבין מה יהיה הערך העשרוני עבור כל תו.
כאן השווינו את המשתנה הנכנס עם 48 ו- 49 כדי לבדוק 0 ו- 1 בהתאמה. אם מדובר ב- 1 אז נכבה את ה- LED וגם מדפיסים הודעת אישור בחזרה ל- Bluetooth שאומרת כי ה- LED כובה וההפך ל- 0.
אם (נכנס == 49) { digitalWrite (LED_BUILTIN, HIGH); ESP_BT.println ("נורית נורית מופעלת"); } אם (נכנס == 48) { digitalWrite (LED_BUILTIN, LOW); ESP_BT.println ("נורית כיבוי"); }
בדיקת Bluetooth סידורי עם ESP32
חבר את ה- ESP שלך ל- Arduino IDE ובחר את הלוח והיציאה הנכונים כפי שפורט בהדרכת התחלת העבודה. מכיוון שמדובר במועצת המנהלים של המפלגה השלישית, ייתכן שייקח זמן רב יותר עד שהקוד יורכב ויעלה. לאחר ההעלאה, הפעל את המסכים הסידוריים (רק לצורך איתור באגים) ופתח את הגדרת ה- Bluetooth בטלפון שלך. אתה אמור למצוא התקן Bluetooth בשם זוג ESP32_LED_Control .
עכשיו אתה יכול לפתוח כל אפליקציית מסוף Bluetooth בסמארטפון שלך, אני משתמש באפליקציה בשם "מסוף Bluetooth" שהורדה מחנות האפליקציות של גוגל. חבר את יישום ה- Bluetooth למכשיר שזה עתה התאמנו והקלד 1 ולחץ על שלח.
על מודול ה- ESP32 לקבל אותו ולהדליק את ה- LED לפי התוכנית שלנו וגם לתת לך הודעת אישור שאומרת שה- LED דולק כמו צילום המסך המוצג לעיל. אתה יכול גם לבדוק את הצג הסידורי שיציג את הנתונים שמתקבלים על ידי ה- Bluetooth ESP32 בפורמט עשרוני שהוא ה- Arduino שלך יקרא 48 עבור 0 ו- 49 עבור 1 כפי שהוסבר קודם. תמונת המצב של חלון המסוף שלי מוצגת למטה.
באופן דומה, אתה אמור גם להיות מסוגל לכבות את הנורית על ידי שליחת 0 מהיישום הנייד. העבודה המלאה מוצגת בסרטון להלן. מקווה שהבנת את ההדרכה ולמדת משהו שימושי. אם יש לך ספקות אתה מוזמן להשאיר אותם בסעיף ההערות למטה או להשתמש בפורומים שלנו לעזרה טכנית אחרת.