- דרישות:
- תכנות מיקרו-בקר PIC לתקשורת Bluetooth:
- דיאגרמת מעגלים והתקנת חומרה:
- בקרת נורית באמצעות יישום Bluetooth לנייד:
במדריך זה נלמד כיצד להבחין בפרויקטים PIC אלחוטיים באמצעות ממשק מודול Bluetooth (HC-06). במדריך הקודם שלנו כבר למדנו כיצד להשתמש במודול USART במיקרו-בקר PIC שלנו ותקשורת מבוססת בין PIC למחשב. אם אתה מתחיל מוחלט, בדוק כאן את כל מדריכי PIC שלנו, שם התחלנו מההתחלה, כמו ללמוד MPLAB ו- XC8, להתממשק LED, LCD, באמצעות טיימרים, ADC, PWM וכו '.
הנה, השתמשנו במודול Bluetooth הפופולרי HC-06. באמצעות מודול זה אנו יכולים לקבל ולשלוח מידע באופן אלחוטי מה- PIC MCU שלנו ליישום נייד או למחשב. התקשורת בין PIC ל- HC-06 מתבצעת באמצעות מודול ה- USART הקיים במיקרו-בקר PIC. אתה יכול גם להשתמש ב- HC-05. אנו שוב פועלים באותו מצב אסינכרוני של 8 סיביות, אך הפעם נשנה את הקוד שלנו מעט כך שהוא יעבוד עם מודול ה- Bluetooth. מכאן שלימוד הדרכה ב- UART מראש מהווה יתרון נוסף לפרויקט זה.
במדריך זה נעבור נורית על ידי שליחת הפעלה או כיבוי מהטלפון החכם שלנו. נשתמש ביישום אנדרואיד בשם Bluetooth Terminal שיכול לשלוח ולקבל נתונים באמצעות Bluetooth. אם אנו שולחים אות '1' מהאפליקציה הנורית תידלק בלוח ה- PIC ונקבל בחזרה אישור לטלפון שהנור נדלק. באופן דומה אנו יכולים לשלוח '0' מהטלפון כדי לכבות אותו. בדרך זו אנו יכולים לשלוט על נורת ה- LED בלוח ה- PIC שלנו, בדומה להדרכת UART אך כעת באופן אלחוטי. התוכנית המלאה והסרטון המפורט ניתן בסוף הדרכה זו.
תרשים הבלוקים הבסיסי עבור ההתקנה מוצג להלן.
דרישות:
חוּמרָה:
- לוח Perf. PIC16F877A
- מודול Bluetooth HC-05 או HC-06
- מחשב (לתכנות)
- טלפון נייד
- מתכנת PICkit 3
תוֹכנָה:
- MPLABX
- מסוף Bluetooth (יישום נייד)
מודול Bluetooth HC-06:
Bluetooth יכול לפעול בשני המצבים הבאים:
- מצב פיקוד
- מצב הפעלה
במצב פיקוד נוכל להגדיר את מאפייני ה- Bluetooth כמו שם אות ה- Bluetooth, הסיסמה שלו, קצב שידור ההפעלה וכו '. מצב ההפעלה הוא זה בו נוכל לשלוח ולקבל נתונים בין מיקרו-בקר PIC ומודול ה- Bluetooth. מכאן שבמדריך זה נשחק רק עם מצב ההפעלה. מצב הפקודה יישאר להגדרות ברירת המחדל. שם ההתקן יהיה HC-05 (אני משתמש ב- HC-06) והסיסמה תהיה 0000 או 1234 והכי חשוב קצב השידור המוגדר כברירת מחדל עבור כל מודולי ה- Bluetooth יהיה 9600.
המודול עובד על אספקת 5 וולט וסיכות האות פועלות על 3.3 וולט, ולכן קיים רגולטור 3.3 וולט במודול עצמו. מכאן שאנחנו לא צריכים לדאוג בקשר לזה. מתוך שישה הפינים רק ארבעה ישמשו במצב ההפעלה. טבלת חיבור הסיכות מוצגת למטה
S.No |
להצמיד את HC-05 / HC-06 |
שם סיכה ב- MCU |
מספר סיכה ב- PIC |
1 |
Vcc |
Vdd |
31 st סיכה |
2 |
Vcc |
Gnd |
32 nd סיכה |
3 |
טקס |
RC6 / Tx / CK |
25 th סיכה |
4 |
Rx |
RC7 / Rx / DT |
26 th סיכה |
5 |
מדינה |
NC |
NC |
6 |
EN (הפעל) |
NC |
NC |
בדוק את הפרויקטים האחרים שלנו למידע נוסף על מודול Bluetooth HC-05 עם מיקרו-בקרים אחרים:
- מכונית צעצוע נשלטת באמצעות Bluetooth באמצעות Arduino
- מערכת אוטומציה ביתית מבוקרת באמצעות Bluetooth באמצעות 8051
- אורות נשלטים קוליים באמצעות פטל פטל
- רדיו FM מבוקר בטלפון חכם באמצעות Arduino ועיבוד
- מכונית רובוט נשלטת בטלפון נייד באמצעות חיישן G ו- Arduino
תכנות מיקרו-בקר PIC לתקשורת Bluetooth:
כמו כל המודולים (ADC, טיימר, PWM) עלינו לאתחל גם את מודול ה- Bluetooth שלנו. האתחול יהיה דומה לאתחול של UART אך עלינו לבצע כמה שינויים כדי ש- Bluetooth יעבוד ללא דופי עם ה- PIC16F877A MCU שלנו. בואו נגדיר את סיביות התצורה ונתחיל בפונקציית אתחול ה- Bluetooth.
אתחול Bluetooth:
כמעט כל מודולי ה- Bluetooth בשוק עובדים בקצב שידור של 9600, חשוב מאוד להגדיר את קצב השידור שלך זהה לזה של מודולי Bluetooth המפעילים קצב שידור, כאן הגדרנו SPBRG = 129 מכיוון שאנו פועלים בתדר שעון של 20Mhz עם 9600 בקצב שידור. מכאן שהאתחול שלעיל יעבוד רק עבור מודולי Bluetooth הפועלים בקצב שידור של 9600. כמו כן חובה לאפשר את קצב השידור המהיר במהירות BRGH. זה יעזור בקביעת קצב שידור מדויק.
// ****** אתחל את Bluetooth באמצעות USART ******** // void Initialize_Bluetooth () {// הגדר את הסיכות של RX ו- TX // TRISC6 = 1; TRISC7 = 1; // הגדר את קצב השידור באמצעות טבלת החיפוש בגליון הנתונים (pg114) // BRGH = 1; // השתמש תמיד בקצב שידור מהיר עם Bluetooth אחרת זה לא יעבוד SPBRG = 129; // הפעל את Asyc. יציאה טורית // SYNC = 0; SPEN = 1; // הגדר קליטת 8 סיביות ושידור RX9 = 0; TX9 = 0; // אפשר שידור וקליטה // TXEN = 1; CREN = 1; // אפשר גלובלי ו- ph. מפריע // GIE = 1; פאי = 1; // אפשר הפרעות עבור Tx. ו- Rx.// RCIE = 1; TXIE = 1; } // ___________ אתחול BT _____________ //
אם יש לך מודול BT שפועל בקצב שידור שונה, אתה יכול לעיין בטבלת החיפוש למעלה כדי לברר את הערך שלך עבור SPBRG.
טעינת נתונים ל- Bluetooth:
לאחר האתחול של הפונקציה יש לנו שלוש פונקציות בתוכנית שלנו לשליחה וקבלה של נתונים מ- Bluetooth. בניגוד ל- UART יש לנו כמה דברים שיש לקחת בחשבון לפני שנוכל להעביר או לקבל נתונים. במודול ה- Bluetooth יש מאגר שידור וקבלה, הנתונים הנשלחים אליו יאוחסנו במאגר ה- Tx. נתונים אלה לא ישודרו (יישלחו בשידור) אלא אם כן תישלח החזרת כרכרה למודול. מכאן שכדי להעביר נתונים עלינו לטעון את מאגר ה- Rx של BT ואז לשדר אותו באמצעות החזרת כרכרה.
ניתן להשיג את העבודה הנ"ל באמצעות הפונקציות הבאות. ניתן להשתמש בפונקציה שלמטה כאשר עלינו לטעון תו אחד בלבד למאגר ה- Rx. אנו מעמיסים את הנתונים לרישום TXREG ומחכים עד לעיבודם באמצעות סימון הדגל TXIF ו- TRMT באמצעות לולאות תוך כדי.
// פונקציה לטעינת ה- Bluetooth Rx. חיץ עם תו אחד.// חלל BT_load_char (בתים char) {TXREG = בתים; בעוד (! TXIF); בעוד (! TRMT); } // סוף הפונקציה //
הפונקציה למטה משמשת לטעינת מחרוזת במאגר ה- Rx של מודול ה- Bluetooth. המחרוזת מחולקת לתווים וכל תו נשלח לפונקציה BT_load_char () .
// פונקציה לטעינת Bluetooth Rx. חוצץ עם מחרוזת // בטל BT_load_string (מחרוזת * char) {תוך (* מחרוזת) BT_load_char (* מחרוזת ++); } // סוף הפונקציה /
שידור נתונים באמצעות Bluetooth:
עד עכשיו רק העברנו מידע למאגר ה- Rx של מודול HC-05. כעת עלינו להורות לו לשדר את הנתונים באמצעות אוויר באמצעות פונקציה זו.
// פונקציה לשידור נתונים מ- RX. חיץ // חלל שידור_בט () {TXREG = 13; __השהיית_מס (500); } // סוף הפונקציה //
בפונקציה זו אנו שולחים ערך 13 לרשומת TXREG. ערך זה 13 אינו אלא המקבילה העשרונית להובלה (עיין בתרשים ASCII). ואז נוצר עיכוב קטן להפעלת השדרן.
קריאת נתונים מ- Bluetooth:
בדומה ל- UART, הפונקציה שלהלן משמשת לקריאת נתונים מ- Bluetooth
// פונקציה לקבלת תו מ- Rx.buffer של BT // char BT_get_char (void) {if (OERR) // לבדוק שגיאת הריצה {CREN = 0; CREN = 1; // אפס את CREN} אם (RCIF == 1) // אם המשתמש שלח תו להחזיר את התו (ערך ASCII) {תוך (! RCIF); החזר RCREG; } אחר // אם המשתמש לא שלח שום הודעה החזיר 0 החזר 0; } // סוף הפונקציה /
אם המשתמש שלח נתונים, פונקציה זו תחזיר את הנתונים הספציפיים שניתן לשמור במשתנה ולעבד אותם. אם המשתמש לא שלח דבר הפונקציה תחזיר אפס.
פונקציה עיקרית:
השתמשנו בכל הפונקציות שהוסברו לעיל בתוך הפונקציה או הפונקציה העיקרית. אנו שולחים הודעת היכרות כלשהי ואז ממתינים למשתמש שישלח כמה ערכים על בסיסם אנו מחליפים את נורת ה- LED האדומה המחוברת לסיכת RB3 בלוח ה- Perf שלנו.
void main (void) {// הצהרות משתנות היקף // int get_value; // סוף הצהרת משתנה // // הצהרות קלט / פלט // TRISB3 = 0; // סוף הכרזת קלט / פלט // Initialize_Bluetooth (); // מאפשרים להכין את ה- Bluetooth שלנו לפעולה // להראות הודעת היכרות כלשהי בהפעלה // BT_load_string ("אתחול Bluetooth ומוכן"); שידור_בט (); BT_load_string ("לחץ על 1 כדי להדליק את נורית ההדלקה"); שידור_בט (); BT_load_string ("לחץ על 0 כדי לכבות את הנורית"); שידור_בט (); // סוף ההודעה // בעוד (1) // הלהקה האינסופית {get_value = BT_get_char (); // קרא את הצ'ר. התקבל באמצעות BT // אם נקבל '0' // if (get_value == '0') {RB3 = 0; BT_load_string ("נורית כבויה"); שידור_בט (); } // אם נקבל '1' // if (get_value == '1') {RB3 = 1; BT_load_string ("נורית נורית דולקת"); שידור_בט ();}}}
בדוק את התוכנית המלאה בסעיף הקוד שלמטה.
דיאגרמת מעגלים והתקנת חומרה:
מעגל הקשרים עבור הפרויקט הזה הוא מאוד פשוט, אנחנו פשוט צריכים כוח במעלה מודול Bluetooth ולחבר את Tx אל 26 th סיכה של PIC ו Rx אל 25 th סיכה של PIC כפי שמוצג בתרשים המעגל להלן:
עכשיו בואו נמשיך לחומרה. ברגע שהחיבור נעשה הוא אמור להיראות בערך ככה.
בקרת נורית באמצעות יישום Bluetooth לנייד:
עכשיו תן לנו להכין את יישום Android שלנו. הורד את היישום שנקרא Bluetooth Terminal מחנות האפליקציות או השתמש בקישור זה. לאחר הורדת היישום והתקנתו, הפעל את לוח ה- PIC perf שלך בו אנו משתמשים מאז תחילתו. נורת ה- LED הקטנה במודול ה- Bluetooth שלך אמורה להבהב כדי לציין שהוא מופעל ומחפש פעיל טלפון כדי ליצור חיבור.
עכשיו היכנס להגדרות Bluetooth בטלפון שלך וחפש מכשיר Bluetooth חדש, אתה אמור להיות מסוגל לראות את השם HC-05 או HC-06 בהתבסס על המודול שלך. אני משתמש ב- HC-06 ולכן הטלפון שלי מציג את התצוגה הבאה. ואז נסה להזדווג איתו וזה יבקש סיסמה. הזן את הסיסמה כ- 1234 (עבור חלקם זה עשוי להיות 0000) ולחץ על אישור כפי שמוצג להלן.
לאחר הצלחת הזיווג, פתח את אפליקציית מסוף ה- Bluetooth שהתקנו זה עתה. היכנס לאפשרות ההגדרות ובחר "חבר מכשיר - מאובטח" כמוצג להלן. פעולה זו תפתח תיבת פופ בה כל המכשירים המותאמים שלנו יופיעו כמוצג להלן. בחר במודול HC-05 או HC-06.
לאחר חיבור, האור על מודול ה- Bluetooth שהבהב עד כה חייב להיות קבוע כדי לציין שהוא התחבר בהצלחה לנייד שלך. ועלינו לקבל את הודעת ההיכרות מהתוכנית שלנו כמו להלן.
כעת לחץ על '1' כדי להדליק את נורת ה- LED ולחץ על '0' כדי לכבות את האור. העבודה המלאה תוצג בסרטון. המסך הנייד שלך ייראה בערך כך המוצג למטה.
אז זהו זה, למדנו כיצד לממש את מודול Bluetooth למיקרו-בקר PIC שלנו, כעת בעזרת זה נוכל לנסות פרויקטים אלחוטיים. יש הרבה פרויקטים המשתמשים ב- Bluetooth, אתה יכול לנסות אותם או להמציא רעיון משלך ולשתף אותם בקטע ההערות. בדוק גם את הפרויקט הקודם שלנו עם אפליקציית מסוף Bluetooth ו- HC-05 כמו אוטומציה ביתית מבוקרת באמצעות טלפון חכם באמצעות ארדואינו ומנעול קוד דיגיטלי מבוקר באמצעות ארדואינו.
מקווה, הדרכה זו עזרה לך! אם נתקעת איפשהו, אנא השתמש בקטע ההערות.