- במה שונה Bluetooth אנרגיה נמוכה (BLE)?
- יכולת BLE של מודול NRF24L01
- רכיבים נדרשים
- החל ממודול nRF24L01
- ארדואינו
- ממשק nRF24L01 עם Arduino לתקשורת BLE
Bluetooth Low Energy (BLE) היא גרסה של Bluetooth והיא קיימת כגרסה קטנה ומותאמת ביותר של ה- Bluetooth הקלאסי. זה ידוע גם בשם Bluetooth חכם. ה- BLE תוכנן תוך התחשבות בצריכת החשמל הנמוכה ביותר האפשרית במיוחד בעלות נמוכה, רוחב פס נמוך, הספק נמוך ומורכבות נמוכה. ל- ESP32 יכולות BLE מובנות אך עבור מיקרו-בקרים אחרים כמו Arduino ניתן להשתמש ב- nRF24L01. מודול RF זה יכול לשמש גם כמודול BLE לשליחת הנתונים למכשיר Bluetooth אחר כמו סמארטפונים, מחשב וכו '.
כאן במדריך זה נדגים כיצד לשלוח נתונים על BLE באמצעות nRF24L01. אנו נשלח קריאות טמפרטורה מ- DHT11 לסמארטפון באמצעות מודול Arduino ו- nRF מעל BLE.
במה שונה Bluetooth אנרגיה נמוכה (BLE)?
ה- BLE אומץ בשל תכונות צריכת החשמל שלו שכן הוא היה מסוגל לרוץ במשך תקופה ממושכת באמצעות תא מטבע בלבד. בהשוואה לתקנים אלחוטיים אחרים, הצמיחה המהירה של BLE הלכה רחוק יותר מהר בגלל היישומים הפנומנליים שלה בסמארטפונים, טאבלטים ומחשוב נייד.
יכולת BLE של מודול NRF24L01
BLE משתמשת באותה פס ISM של 2.4 GHz עם קצב שידור מ -250 Kbps ל -2 Mbps המותר במדינות רבות וניתן להחיל אותה על יישומים תעשייתיים ורפואיים. הלהקה מתחילה מ 2400 מגה הרץ ל 2483.5 מגה הרץ והיא מחולקת ל 40 ערוצים. שלושה מערוצים אלה מכונים 'פרסום' ומשמשים מכשירים לשליחת חבילות פרסום עם מידע עליהם, כך שהתקני BLE אחרים יכולים להתחבר. תחילה נבחרו ערוצים אלה בחלק העליון התחתון של הלהקה ובאמצע הלהקה כדי למנוע הפרעות שעלולות להפריע למספר ערוצים. למידע נוסף על BLE, עקוב אחר הדרכה זו.
מדריך זה יסביר כיצד להשתמש במודול NRF24L01 כמשדר BLE. ההדרכה בנושא NRF24L01 כמודול RF כבר הוסברה בממשק nRF24L01 עם מדריך Arduino. כיום יוסבר על פונקציונליות ה- BLE של מודול זה באמצעות שליחת נתוני חיישנים לטלפון חכם. כאן מודול ה- nRF24L01 יתממשק למיקרו-בקר Arduino ונתוני הטמפרטורה של חיישן DHT11 יישלחו ליישום הרשמי של נורדי BLE אנדרואיד.
רכיבים נדרשים
חוּמרָה:
- ארדואינו UNO
- מודול BLE nRF24L01
- חיישן טמפרטורה ולחות DHT11
- מגשרים
תוֹכנָה:
- ארדואינו IDE
- יישום אנדרואיד BLE נורדי (nRF Temp 2.0 עבור BLE או nRF Connect לנייד)
החל ממודול nRF24L01
המודולים nRF24L01 הם מודולים של מקמ"ש, כלומר כל מודול יכול גם לשלוח ולקבל נתונים, אך מכיוון שהם חצי דופלקס הם יכולים לשלוח או לקבל נתונים בכל פעם. למודול יש את ה- IC nRF24L01 הגנרי ממוליכים למחצה נורדיים שאחראי על העברת וקליטת נתונים. ה- IC מתקשר באמצעות פרוטוקול SPI ומכאן ניתן להתממשק בקלות עם כל מיקרו-בקרים. זה נהיה הרבה יותר קל עם Arduino מכיוון שהספריות זמינות. כבר השתמשנו במודול nRF24L01 עם Arduino כדי ליצור חדר צ'ט ולשלוט במנועי סרוו באופן אלחוטי.
הפינים של מודול nRF24L01 רגיל מוצגים להלן:
המודול פועל על מתח ההפעלה מ- 1.9 וולט ל -3.6 וולט (בדרך כלל 3.3 וולט) והוא צורך פחות מאוד זרם של 12mA בלבד במהלך פעולה רגילה מה שהופך אותו לחסכוני בסוללה ולכן יכול אפילו לפעול על תאי מטבע. למרות שמתח ההפעלה הוא 3.3 וולט, רוב הפינים סובלים 5 וולט ולכן ניתן להתממשק ישירות למיקרו בקרים 5V כמו ארדואינו. יתרון נוסף בשימוש במודולים אלה הוא שבכל מודול יש 6 צינורות. כלומר, כל מודול יכול לתקשר עם 6 מודולים אחרים להעברה או לקבל נתונים. זה הופך את המודול למתאים ליצירת רשתות כוכבים או רשת ביישומי IoT. כמו כן יש להם טווח כתובות רחב של 125 תעודות זהות ייחודיות, ולכן באזור סגור נוכל להשתמש ב -125 ממודולים אלה מבלי להפריע זה לזה.
ארדואינו
ממשק nRF24L01 עם Arduino לתקשורת BLE
ה- nRF24L01 עובד על SPI, ולכן הממשק ישתמש בפרוטוקול SPI. הקוד המלא ווידאו יצורף בסוף מדריך זה. מדריך אפליקציות לאנדרואיד מוסבר גם בסרטון. כאן משמש מודול ה- nRF24L01 לתקשורת עם אפליקציית הסמארטפון של Nordic.ראשית כלול בספריות הנדרשות. הספרייה כוללת RF24 לגישה לפקודות nRF24L01, ספריית DHT11 לגישה לפקודות DHT11 וספריית BTLE לשימוש בפונקציות BLE.
#לִכלוֹל
הגדר אתחל את הפינים והפונקציות עבור מודול DHT11 ו- BLE. סוג ה- DHT מאותחל כ- DHT11 מכיוון שאנו משתמשים ב- DHT11. ה- DHT מחובר לפין 4 של GPIO וסיכות ה- CE ו- CSN של מודול ה- nRF מחוברות לסיכה 9 ו -10 בהתאמה.
#define DHTPIN #define DHTTYPE DHT11 DHT22 DHT dht (DHTPIN, DHTTYPE); רדיו RF24 (9, 10); BTLE btle (& רדיו);
התחל את היציאה הטורית ב 9600, אתה יכול לבחור כל יציאה. ואז התחל את חיישן DHT וגם התחל את BTLE עם השם המקומי של Bluetooth באורך של 8 תווים לכל היותר.
Serial.begin (9600); dht.begin (); btle.begin ("CD Temp");
קראו את הטמפרטורה מעל הלולאה ולשמור אותו למשתנה לצוף זמנית . הוסף שורת איתור באגים להצגת הודעת שגיאה אם DHT מאבד מכוחו או שקורה דבר בלתי צפוי.
temp float = dht.readTemperature (); // קרא נתוני טמפרטורה אם (isnan (h) - isnan (t)) { Serial.println (F ("נכשל קריאה מחיישן DHT!"); לַחֲזוֹר; }
שמור את הערך ב- Buffer ונתח אותו במודול BLE. שלח גם את ערך הטמפרטורה למודול BLE. מודול ה- BLE יפרסם את נתוני הטמפרטורה. אפליקציית האנדרואיד יכולה לחפש במודול ה- BLE ולקבל את נתוני החיישן.
nrf_service_data buf; buf.service_uuid = NRF_TEMPERATURE_SERVICE_UUID; buf.value = BTLE:: to_nRF_Float (temp); אם (! btle.advertise (0x16, & buf, sizeof (buf))) { Serial.println ("BTLE נכשל..!"); }
בסיום, פשוט קפצו לערוץ הבא.
btle.hopChannel ();
מכיוון שתיעוד חיישני DHT ממליץ לשמור על עיכוב של שניות לפחות לאחר קריאה אחת, לכן הוסף עיכוב של 2 שניות.
עיכוב (2000);
לאחר העלאת הטלפון החכם והתאמתו עם מודול nRF, תתחיל לקבל את הערכים על nRF Temp 2.0 ליישום BLE אנדרואיד, כפי שמוצג להלן. הליך שלם של זיווג וקבלת הנתונים באפליקציית אנדרואיד מוסבר גם בסרטון:
זה מסיים את ההדרכה המלאה בנושא פרסום נתוני החיישנים לאפליקציית אנדרואיד נורדית באמצעות BLE nRF24L01. אם אתה נתקל בקושי כלשהו, אז הגיב למטה או כתוב לפורום שלנו. כדי לחקור עוד על nRF24L02, אתה יכול גם לנסות ליצור חדר צ'אט פרטי באמצעות Arduino, nRF24L01 ועיבוד.