- רכיבים נדרשים
- ESP8266 HC-05 Bluetooth תרשים מעגל
- מודול Bluetooth HC-05
- שימוש במסוף Bluetooth סידורי (אפליקציית Android)
- תכנות NodeMCU ESP8266 לממשק Bluetooth
בימים אלה Bluetooth הפך לחלק בלתי נפרד מהתקנים דיגיטליים והוא מובנה ברוב המכשירים כגון סמארטפון, מחשב נייד, מחשב, מצלמה, שעונים, להקות כושר ועוד רבים וטובים. Bluetooth תמיד שולט בפרוטוקול בתקשורת האלחוטית מאז שהתגלה. אמנם טכנולוגיית Bluetooth היא ביסודה מערכת החלפת כבלים אך היא גם ממנפת גשר אוניברסלי לרשתות נתונים קיימות ומנגנון חיבור אד-הוק למספר מכשירים בתצורות שונות. השתמשנו במודול Bluetooth HC05 ו- HC06 עם מיקרו-בקרים רבים אחרים כדי לגרום להם לתקשר באופן אלחוטי:
- ממשק Bluetooth HC-05 עם STM32F103C8 גלולה כחולה: נורית שליטה
- ממשק HC-05 Bluetooth מודול עם מיקרו בקר AVR
- רובוט מבוקר אנדרואיד באמצעות מיקרו-בקר 8051
- שליטה על Raspberry Pi GPIO באמצעות אפליקציית Android דרך Bluetooth
- מכונית צעצוע נשלטת באמצעות Bluetooth באמצעות Arduino
היום אנו נתממשק את HC-05 Bluetooth מודול עם מודול ה- Wi-Fi הפופולרי ESP8266 ונשלוט על LED באופן אלחוטי באמצעות שליחת פקודות באמצעות Bluetooth. ניתן להחליף נורית זו על ידי ממסר ומכשיר AC לבניית יישום אוטומציה ביתית.
רכיבים נדרשים
חוּמרָה:
- NodeMCU ESP8266
- מודול Bluetooth HC-05
תוֹכנָה:
- ארדואינו IDE
- מסוף Bluetooth סידורי (אפליקציית Android): לניטור נתוני Bluetooth בטלפון חכם.
ESP8266 HC-05 Bluetooth תרשים מעגל
תרשים מעגלים לחיבור מודול Bluetooth HC-05 עם NodeMCU ESP8266 הוא פשוט מאוד ומוצג להלן:
יש צורך במודול Bluetooth חיצוני עם ESP8266 מכיוון שאין לו Bluetooth מובנה כמו ESP32. ל- ESP32 יש Bluetooth נמוכה אנרגיה נמוכה (BLE) ו- Bluetooth קלאסי, עליהם סקרנו בעבר מעט מדריכים:
- שרת ESP32 BLE - שירות GATT לציון רמת הסוללה
- לקוח ESP32 BLE - חיבור ללהקת כושר להפעלת נורה
- כיצד להשתמש ב- Bluetooth סידורי ב- ESP32
מודול Bluetooth HC-05
HC-05 הוא מודול בלוטות 'סדרתי. ניתן להגדיר אותו באמצעות פקודות AT. זה יכול לעבוד בשלוש תצורות שונות (Master, Slave, Loop back). בפרויקט שלנו נשתמש בו כעבד. התכונות של מודול HC-05 כוללות,
- רגישות אופיינית ל -80 dBm.
- קצב שידור ברירת מחדל: 9600bps, 8 סיביות נתונים, סיבית עצירה אחת, ללא זוגיות.
- זיווג אוטומטי של קוד PIN: קוד PIN המוגדר כברירת מחדל "1234" או "0000".
- יש לו 6 סיכות.
- סיכות Vcc ו- Gnd משמשות להפעלת HC-05.
- סיכות Tx ו- Rx משמשות לתקשורת עם המיקרו-בקר.
- אפשר סיכה להפעלת מודול HC-05. כאשר הוא נמוך, המודול מושבת
- מחוון מצב של מעשי סיכה. כאשר הוא אינו משויך / מחובר לשום מכשיר Bluetooth אחר, נורית LED מהבהבת ברציפות. כאשר הוא מחובר / מזווג עם כל מכשיר Bluetooth אחר, הנורית מהבהבת עם השהיה קבועה של 2 שניות.
למידע נוסף על מודול Bluetooth עברו על הפרויקטים האחרים שלנו הקשורים ל- Bluetooth.
שימוש במסוף Bluetooth סידורי (אפליקציית Android)
השימוש באפליקציה זו קל מאוד ודורש מספר צעדים. צילומי המסך מובאים להלן עם שלבים. פשוט התאם את ה- HC-05 לסמארטפון. קוד ברירת המחדל הוא '0000' או '1234' אך בעיקר '1234' עובד.
- ראשית הורד והתקן את האפליקציה ואז עבור למכשירים כדי למצוא את מודול HC-05. בחר HC-05 Module חיפש באפליקציה. אם לא נמצא, בדוק אם HC-05 מופעל כהלכה.
- לאחר לחיצה על HC-05 הוא יתחבר. כעת הקלד כל הודעה בתיבת ההודעות ושלח אותה. זה יודפס על צג הסידורי של Arduino.
תכנות NodeMCU ESP8266 לממשק Bluetooth
לתכנות ה- NodeMCU ESP8266 באמצעות ArduinoIDE, פשוט חבר אותו מהמחשב הנייד או מהמחשב באמצעות כבל מיקרו USB ופתח את Arduino IDE. לצורך הדרכה זו ישתמש בסידורי החומרה ובסדרת התוכנה. סדרת החומרה תשמש לקריאה וכתיבה של נתונים לצג הסידורי של Arduino ובשימוש ב- Serial Sofware ישמש לתקשר עם HC-05. כמו תמיד קוד שלם וסרטון הדגמה ניתן בסוף ההדרכה.
בתחילה, כלול את ספריית התוכנה הסדרתית מכיוון שהיא תשמש בהדרכה זו.
#לִכלוֹל
הגדר את סיכת ה- RX וה- TX לתקשורת טורית של התוכנה, הגדר גם את סיכת ה- led המחוברת ל- NodeMCU. אנו משתמשים ב- LED פנימי של NodeMCU שנמצא בפין D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
הפעל את סדרת התוכנה והחומרה בקצב שידור של 9600. הגדר פין לד כפלט. הדפס הודעת קבלת פנים וניקוי באגים.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, OUTPUT); Serial.println ("התחיל…");
ראשית, קרא ממודול ה- Bluetooth והגדר מקרה שאם מודול Bluetooth מקבל "B" מהטלפון ואז התחל להבהב נורית מחובר ל- D4 של NodeMCU אחרת אם הוא מקבל "S" אז הפסק מהבהב מהבהב. איננו משתמשים בהשהיה () כאן. אך ארדינו 'מיליס' ישמש לא כדי לעכב את ביצועיו של ארדואינו.
אם (btSerial.available ()> 0) { char data = btSerial.read (); מתג (נתונים) { מקרה 'B': ledB = "מצמוץ"; לשבור; מקרה 'S': ledB = "עצור"; לשבור; ברירת מחדל: הפסקה; } }
המיליונים מוגדרים ומגדירים את העיכוב על 500ms כלומר הנורית תמצמץ אחרי כל 500ms. ניתן גם להגדיר את עיכוב הוביל על ידי שינוי הערך של 'מרווח'. המדינה המובילה תתחלף.
זרם ארוך לא חתום Millis = מילי ();
אם (ledB == "מצמוץ") { Serial.println ("מהבהב התחיל"); אם (currentMillis - previousMillis> = מרווח) { previousMillis = currentMillis; אם (ledState == LOW) { ledState = HIGH; } אחר { ledState = LOW; } digitalWrite (led, ledState); } }
וזה יסיים את תכנות NodeMCU להבהב נורית באמצעות Bluetooth. אתה יכול גם לשנות את התוכנית לביצוע משימות שונות עם LED כמו שניתן להחליף את ה- LED על ידי ממסר עם מכשיר AC כדי לבצע פרויקט אוטומציה ביתית של Bluetooth. במקרה של ספק או הצעה, אנא היגש לפורום או לתגובה למטה.