HC-05 מודולי Bluetooth הם מודולי Bluetooth עבור כל פרויקט Arduino! קל להתחבר ולקודד ב- IDE של ארדואינו. ברוב הפרויקטים בדרך כלל אנו מתחברים ל- HC05 לארדואינו ומשתמשים בו כדי לתקשר באופן אלחוטי עם מכשיר חכם אחר כמו טלפון נייד. זה די פשוט ובנינו איתו פרויקטים רבים ומעניינים כמו רובוט מבוקר Bluetooth, בקרת קול Bluetooth, אוטומציה ביתית וכו '. עם זאת, האם היית צריך לחבר שני HC-05 יחד? זה לא כל כך פשוט לחבר HC05 לסמארטפון, יש כמה צעדים נוספים. מדריך זה ידריך אותך בתהליך זה. בוא נקפוץ ישר פנימה!
חומרים נדרשים
- 2x Arduino (כל דגם יעשה; אני משתמש ב- Arduino Uno R3 וב- Arduino Nano)
- 2x מודולי Bluetooth HC05
- קרש לחם
- חוטי מגשר
- נגד 2x 1kΩ
- נגד 2x 2.2kΩ
תרשים מעגל
זוהי תרשים המעגל הבסיסי. חיבר 2 מהמעגלים האלה, אחד לאדון ואחד לעבד. עבור החיבורים, כל מה שאנחנו עושים כאן זה לחבר את ה- HC05 לארדואינו. סיכת המקלט (Rx) של ה- HC05 פועלת בטווח 0V עד 3.3V והארדואינו פועלת בטווח 0V עד 5V. לכן, נשתמש בנגדים (R1 ו- R2) כדי ליצור מחלק מתח להפחתת תפוקת 5 וולט של הארדואינו ל -3.3 וולט, כדי לא לפגוע במודול HC05.
אני משתמש ב- 1kΩ עבור R1 ו- 2.2KΩ עבור R2, אך אתה יכול להשתמש בכל ערך נגד כל עוד R2 הוא כפול בערך של R1 (R2 ≈ 2R1). באופן דומה, לחזור על המעגל הוא אדון ועבד, את מעגל Bluetooth Arduino מאסטר ו Arduino Slave Bluetooth Circuit מוצגים להלן.
תצורה ראשונית של מודולי HC05
זהו השלב הנוסף הנדרש לחיבור שני מודולי HC05 יחד. עלינו לשנות כמה הגדרות בתוך מודול בלוטות 'HC05, לשם כך, עלינו להיכנס למצב הפקודה AT של מודול HC05 ולשלוח אליו פקודות דרך המסך הסידורי של ה- Arduino IDE. לשם כך עלינו לכתוב קוד ארדואינו כדי לשלוח פקודות דרך המסך הטורי ל- HC05.
הקוד להגדיר את המודול HC05 ניתן למצוא בתחתית הדף הזה, ההסבר של הקוד הוא כדלקמן
הוסף את ספריית SoftwareSerial לקוד זה.
# כלול < SoftwareSerial.h>
הגדר את מספרי הסיכה המשדרים (Tx) וקבל (Rx). אני משתמש בסיכה 2 עבור Tx ובסיכה 3 עבור Rx.
#define tx 2 #define rx 3
תן לחיבור Bluetooth שם כלשהו (כאן אני משתמש ב- configBt) ואז אמור לספריית SoftwareSerial איזה סיכה היא Tx ואיזה סיכה היא Rx. התחביר הוא bluetoothName (Rx, Tx);
תוכנת configBt סידורי (rx, tx); // RX, TX
על מנת להגדיר את תצורת מודול ה- Bluetooth, הארדואינו צריך לשלוח אליו פקודות בקצב שידור של 38400 באוד. באופן דומה, הגדרנו את קצב השידור של חיבור ה- Bluetooth גם ל- 38400 baud. הגדר את השידור (Tx) לסיכת הפלט וקבל (Rx) לסיכת הקלט
הגדרת חלל () { סדרתי.התחיל (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
בתוך הלולאה לנצח, יש לנו את החלק העיקרי של הקוד. הרעיון כאן הוא לשלוח את כל מה שמוקלד בתיבת הטקסט בצג הסדרתי ל- HC05 דרך סיכת ה- Tx של הארדואינו. ואז הציג את כל מה שמוצג על ידי HC05 בצג הטורי.
loop loop () {if (configBt.available ()) // אם HC05 שולח משהו… { Serial.print (configBt.readString ()); // הדפס בצג סדרתי} אם (סידורי. זמין ()) // אם צג טורי מוציא משהו… {configBt.write (סידורי. קריאה ()); // כתוב לסיכת ה- Tx של Arduino}}
העלה קוד זה לארדואינו המחובר למודול הראשי HC05. לאחר העלאת הקוד, חבר את כבל החשמל של Arduino. לחץ והחזק את הכפתור ב- HC05. כעת חבר את כבל החשמל של Arduino תוך כדי החזקת כפתור ה- HC05. בסדר, עכשיו אתה יכול לשחרר את הכפתור ב- HC05. כך נכנסים למצב AT של ה- HC05. כדי לבדוק אם עשית זאת נכון, ודא שהנורה האדומה ב- HC05 מהבהבת בערך כל שנייה (מהבהבת איטית!). בדרך כלל לפני שמחברים את ה- HC05 למכשיר Bluetooth כלשהו, האור האדום שלו מהבהב בתדירות גבוהה מאוד (מהבהב במהירות!).
לאחר מכן, פתח את המסך הטורי (כפתור המסך הסדרתי נמצא בפינה השמאלית העליונה של ה- Arduino IDE). בפינה השמאלית התחתונה של חלון המסך הסידורי, אם עדיין לא עשית זאת, וודא שאתה מגדיר את הגדרת סיום הקו ל"גם NL וגם CL " וקצב שידור ל 38400. כעת הקלד AT בצג הסדרתי, אם הכל ילך כשורה, תקבל "אישור" מה- HC05 המוצג בחלון המסך הטורי. מזל טוב! נכנסת בהצלחה למצב הפקודה AT של מודול HC05.
כעת, הזן את הפקודות הבאות בטבלה שלמטה כדי להגדיר את מודול ה- HC05 הראשי:
COMMAND (הזן זאת בצג הטורי ולחץ על Enter) |
תגובה (תשובה מ- HC05, מוצגת בצג הטורי) |
פונקציה (מה עושה פקודה זו?) |
בְּ |
בסדר |
מִבְחָן |
ב- + CMODE? |
בסדר |
בדוק את מצב ה- CMODE או חיבור ----------------------------- CMODE: 0 הוא העבד 1 הוא אדון |
AT + CMODE = 1 |
בסדר |
הגדר את ה- CMODE ל- 1 כשאנו מגדירים את המאסטר HC05 |
AT + ADDR? |
+ ADDR: FCA8: 9A: 58D5 בסדר * זו הכתובת של המאסטר שלי HC05. הכתובת שלך תהיה שונה! |
מחזירה את כתובת ה- HC05, שים לב לכך שכן נצטרך אותה בהמשך! |
לאחר מכן חבר את המחשב שלך ל- HC05 האחר שלך, העבד:
COMMAND (הזן זאת בצג הטורי ולחץ על Enter) |
תגובה (תשובה מ- HC05, מוצגת בצג הטורי) |
פונקציה (מה עושה פקודה זו?) |
בְּ |
בסדר |
מִבְחָן |
ב- + CMODE? |
בסדר |
בדוק את מצב ה- CMODE או חיבור ----------------------------- CMODE: 0 הוא עבד 1 הוא אדון |
AT + CMODE = 0 |
בסדר |
הגדר את ה- CMODE ל- 0 כאשר אנו מגדירים את העבד HC05 |
AT + BIND = FCA8,9A, 58D5 * החלף את ":" בכתובת ה- HC05 הראשית ב- "," * כאן אני משתמש בכתובת המאסטר HC05 שציינתי מהטבלה הקודמת. עליך להשתמש בכתובת של מאסטר HC05 שלך! |
בסדר |
הגדרת כתובת המאסטר HC05 שאליו יתחבר עבד HC05 באופן אוטומטי בעת האתחול |
AT + BIND? |
+ BIND: FCA8: 9A: 58D5 בסדר * זו הכתובת של המאסטר שלי HC05. הכתובת שלך תהיה שונה! |
בדוק את כתובת הכריכה של העבד שלך. אם זה תואם את הכתובת של המאסטר שלך HC05, אתה יכול ללכת! |
בדיקת תקשורת Bluetooth דרך Arduino ל- Arduino
ראשית, הפעל הן את מודול ה- Master והן את ה- HC05. לאחר שההפעלה וכמה שניות חלפו הביטו באור האדום במודולי HC05.
מהירות מהבהבת של האור האדום |
מה זה אומר |
מהבהב בתדירות גבוהה מאוד (מהבהב במהירות!) |
לא טוב! זה אומר שמודולי HC05 שלך אינם מתחברים זה לזה! הגיע הזמן לפתור בעיות! |
מהבהב בתדירות נמוכה (מהבהב לאט!) |
נֶחְמָד! עשית את זה! אבל עדיין עלינו לעשות בדיקה אחת נוספת רק כדי להיות בטוחים שההתקנה הזו עובדת! ממשיכים הלאה! |
ברגע שהנורות האדומות שלך מהבהבות בתדר נמוך (מהבהב לאט!), אתה יכול להיות בטוח ששני ה- HC05 שלך מחוברים זה לזה, אך לא בדקנו אם ניתן לשלוח נתונים הלוך ושוב בין המאסטר לעבד. אחרי הכל, זו המטרה העיקרית כאן.
העלה את הקוד שלמטה לאחד הארדואינו, זהו הקוד לבדיקת משדר (Tx), שוב ניתן למצוא את הקוד המלא הן למשדר והן למקלט בתחתית עמוד זה.
בעקבות הקוד הקודם, אנו מוסיפים את ספריית SoftwareSerial לקוד זה ומגדירים את מספרי הסיכה (Tx) והקבלה (Rx). לאחר מכן אנו קוראים לחיבור Bluetooth ומעבירים את מספרי הסיכות Tx ו- Rx לספריה.
# כלול < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
בפונקציית ההתקנה, אנו מגדירים שוב את קצב השידור עבור צג הסידורי Arduino ו- Bluetooth. האם אתה רואה את ההבדל כאן בהשוואה לקוד הקודם? אנו משתמשים בקצב baud של 9600 baud. זהו קצב שידור התקשורת המוגדר כברירת מחדל ברירת המחדל של מודול Bluetooth Bluetooth בעת תקשורת עם התקני Bluetooth אחרים. לכן, שים לב כי 38400 baud מיועד לתצורה של HC05 עם פקודות AT ו- 9600 baud הוא קצב השידור המוגדר כברירת מחדל של מודול HC05. לבסוף, בדיוק כמו קודם אנו מגדירים את סיכת ה- Tx כפלט ואת ה- PIN של ה- RX כקלט.
הגדרת חלל () { סדרתי.התחיל (9600); תחילת בית (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
בתוך הלולאה לנצח, כל מה שאנחנו עושים זה להעביר ערך אקראי של "123" דרך ה- HC05.
לולאה בטלה () {bt.write (123); }
העלה קוד זה לארדואינו האחר, זהו הקוד לבדיקה לקבל (Rx):
בדיוק כמו הקודים הקודמים, אנו מגדירים את ספריית SoftwareSerial.
# כלול < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
הקוד בפונקציית ההתקנה זהה לחלוטין לקוד שיש לשדר (Tx).
הגדרת חלל () { סדרתי.התחיל (9600); תחילת בית (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
בלולאה לנצח, אנחנו רק צריכים לקבל את מה שאנחנו שולחים מהארדואינו המשדר. אם חוצץ הקבלה קיבל נתונים מה- HC05, הציג את כל מה שמתקבל בצג הסדרתי.
loop loop () {if (bt.available ()> 0) { Serial.println (bt.read ()); }}
לאחר שהעלית את הקודים המתאימים לכל ארדואינו, פתח את המסך הסידורי לארדואינו המקבל. הקפד לבחור את קצב השידור כ- 9600 ואת הקו שמסתיים כ- Newline בצג הטורי. אם הכל עובד בסדר, אתה אמור לראות 123.
הערה: אם חיברתם את הארדואינו המשדר וגם את הקבלה לאותו מחשב נייד, וודאו כי אתם בוחרים את יציאת ה- COM הנכונה תחת TOOLS> PORT. עליך להיות מחובר ליציאת ה- COM המקבלת של Arduino.
</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>אם הכל מסתדר כשורה, החלף את מודולי HC05 כדי לוודא שתקשורת יכולה לקרות בשני הכיוונים ואנחנו סיימנו!