- רכיבים נדרשים
- מבוא קצר ל- Li-Fi
- קטע משדר Li-Fi באמצעות Arduino
- מדור מקלט Li-Fi באמצעות Arduino
- קידוד ארדואינו ללי-פיי
Li-Fi (Light Fidelity) היא טכנולוגיה מתקדמת המאפשרת העברת נתונים באמצעות תקשורת אופטית כמו אור גלוי. נתוני Li-Fi יכולים לנוע דרך האור ואז לפרש אותם בצד המקלט באמצעות כל מכשיר רגיש לאור כמו LDR או פוטודיודה. תקשורת Li-Fi יכולה להיות מהירה פי 100 מ- Wi-Fi.
כאן בפרויקט זה נדגים תקשורת Li-Fi באמצעות שני ארדואינו. כאן מועברים נתוני הטקסט באמצעות לוח המקשים LED ו- 4x4. וזה מפוענח בצד המקלט באמצעות LDR. בעבר הסברנו בפירוט על Li-Fi והשתמשנו ב- Li-Fi להעברת אותות שמע.
רכיבים נדרשים
- ארדואינו UNO
- חיישן LDR
- לוח מקשים 4 * 4
- 16 * 2 LCD אלפאנומרי
- מודול ממשק I2C ל LCD
- קרש לחם
- מחברים מגשרים
- LED 5 מ"מ
מבוא קצר ל- Li-Fi
כפי שפורט לעיל, Li-Fi היא טכנולוגיית תקשורת מתקדמת שיכולה להיות מהירה פי 100 מתקשורת Wi-Fi. באמצעות טכנולוגיה זו ניתן להעביר את הנתונים באמצעות מקורות אור גלויים. תאר לעצמך, אם אתה יכול לגשת לאינטרנט מהיר פשוט באמצעות מקור האור שלך. זה לא נראה מאוד מעניין?
Li-Fi משתמש באור גלוי כמדיום תקשורת להעברת נתונים. נורית LED יכולה לשמש כמקור אור והפוטודיודה פועלת כמשדר המקבל אותות אור ומשדר אותם חזרה. על ידי שליטה בדופק האור בצד המשדר, אנו יכולים לשלוח דפוסי נתונים ייחודיים. תופעה זו מתרחשת במהירות גבוהה במיוחד ולא ניתן לראות אותה דרך העין האנושית. ואז בצד המקלט, הפוטודיודה או הנגד התלוי באור (LDR) ממירים את הנתונים למידע שימושי.
קטע משדר Li-Fi באמצעות Arduino
כפי שמוצג באיור לעיל, בחלק המשדר של תקשורת Li-Fi, לוח המקשים משמש כאן כקלט. זה אומר שנבחר את הטקסט שיועבר באמצעות לוח המקשים. ואז המידע מעובד על ידי יחידת הבקרה שאינה אלא ארדואינו במקרה שלנו. Arduino ממיר את המידע לפולסים בינאריים אשר ניתנים להזנה למקור LED להעברה. לאחר מכן נתונים אלה מוזנים לאור LED אשר שולח את פעימות האור הנראות לצד המקלט.
תרשים מעגל של קטע המשדר:
הגדרת חומרה לצד משדר:
מדור מקלט Li-Fi באמצעות Arduino
בחלק המקלט, חיישן ה- LDR מקבל את פעימות האור הנראות מצד המשדר וממיר אותו לפולסים חשמליים הניתנים לפרשנות, המוזנים לארדואינו (יחידת הבקרה). ארדואינו מקבל את הדופק הזה וממיר אותו לנתונים בפועל ומציג אותו על צג LCD בגודל 16x2.
תרשים מעגל של מקטע המקלט:
הגדרת חומרה לצד המקלט:
קידוד ארדואינו ללי-פיי
כפי שמוצג לעיל, יש לנו שני חלקים עבור משדר ומקלט Li-Fi. הקודים המלאים עבור כל קטע ניתנים בתחתית ההדרכה והסבר שלבים על הקודים ניתן להלן:
קוד משדר Li-Fi Arduino:
בצד המשדר, Arduino Nano משמש עם לוח מקשים 4x4 ו- LED. ראשית, כל קבצי הספריה התלויים מורידים ומותקנים לארדואינו דרך ארדואינו IDE. כאן, ספריית המקשים משמשת לשימוש במקשים 4 * 4 אותם ניתן להוריד מקישור זה. למידע נוסף על ממשק לוח מקשים 4x4 לארדואינו כאן.
#לִכלוֹל
לאחר ההתקנה המוצלחת של קבצי הספרייה, הגדר את המספר לא. של שורות וערכי עמודות שהוא 4 לשניהם שכן השתמשנו כאן בלוח המקשים 4 * 4.
const byte ROW = 4; קונסט בייט COL = 4; קוד מפתחות char = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '} };
לאחר מכן מוגדרים סיכות ה- Arduino המשמשות לממשק עם לוח המקשים 4 * 4. במקרה שלנו, השתמשנו ב- A5, A4, A3 ו- A2 עבור R1, R2, R3, R4 בהתאמה ו- A1, A0, 12, 11 עבור C1, C2, C3 ו- C4 בהתאמה.
בתים rowPin = {A5, A4, A3, A2}; בתים colPin = {A1, A0, 12, 11}; לוח מקשים customKeypad = לוח מקשים (makeKeymap (קוד מקשים), rowPin, colPin, ROW, COL);
בתוך ההתקנה () מוגדר סיכת הפלט, היכן מחובר מקור LED. כמו כן, הוא נשמר כבוי בזמן הפעלת המכשיר.
הגדרת חלל () { pinMode (8, OUTPUT); digitalWrite (8, LOW); }
בתוך בעוד לולאה, הערכים שהתקבלו המקשים נקראים באמצעות customKeypad.getKey () והיא מושווה על אם-אחר הלולאה, כדי ליצור פולסים ייחודיים בכל לחיצות מקשות. ניתן לראות בקוד כי מרווחי הטיימר נשמרים ייחודיים לכל ערכי המפתח.
char customKey = customKeypad.getKey (); אם (customKey) { if (customKey == '1') { digitalWrite (8, HIGH); עיכוב (10); digitalWrite (8, LOW); }
קוד מקלט ל Arduino Li-Fi:
בצד מקלט ה- Li-Fi, Arduino UNO מתממשק עם חיישן LDR כפי שמוצג בתרשים המעגל. כאן חיישן ה- LDR מחובר בסדרה עם נגר ליצירת מעגל מחלק מתח ויציאת המתח האנלוגית מהחיישן מוזנת לארדואינו כאות קלט. כאן אנו משתמשים במודול I2C עם LCD כדי להפחית את המספר. של חיבורים עם Arduino מכיוון שמודול זה דורש רק 2 סיכות נתונים SCL / SDA ו -2 סיכות חשמל.
התחל את הקוד על ידי הכללת כל קבצי הספרייה הנדרשים בקוד כמו Wire.h לתקשורת I2C, LiquidCrystal_I2C.h עבור LCD וכו '. ספריות אלה יותקנו מראש עם Arduino, כך שאין צורך להוריד אותם.
#לִכלוֹל
לשימוש במודול I2C עבור LCD * אלפאנומרי 16 * 2, הגדר אותו באמצעות המחלקה LiquidCrystal_I2C . כאן עלינו להעביר את הכתובת, השורה ומספר העמודות שהם 0x3f, 16 ו- 2 בהתאמה במקרה שלנו.
LiquidCrystal_I2C lcd (0x3f, 16, 2);
בתוך ההתקנה (), הצהיר על סיכת קלט הדופק לקבלת האות. לאחר מכן הדפיס הודעת קבלת פנים על גבי LCD שתוצג במהלך אתחול הפרויקט.
הגדרת חלל () { pinMode (8, INPUT); Serial.begin (9600); lcd.init (); lcd.backlight (); lcd.setCursor (0, 0); lcd.print ("ברוך הבא"); lcd.setCursor (0, 1); lcd.print ("מעגל מעגל"); עיכוב (2000); lcd.clear (); }
בתוך לולאת בזמן , משך קלט הדופק מ- LDR מחושב באמצעות פונקציית pulseIn , וסוג הדופק מוגדר שהוא נמוך במקרה שלנו. הערך מודפס על צג סדרתי למטרות איתור באגים. מומלץ לבדוק את משך הזמן, מכיוון שהוא עשוי להיות שונה בהתקנות שונות.
משך זמן לא חתום = pulseIn (8, HIGH); Serial.println (משך זמן);
לאחר בדיקת משך הזמן של כל פעימות המשדר, כעת יש לנו 16 טווחי משך דופק, אשר מצויינים להפניה. כעת השווה אותם באמצעות לולאת IF-ELSE לקבלת הנתונים המדויקים שהועברו. להלן דוגמת לולאה אחת עבור מפתח 1:
אם (משך> 10000 ומשך זמן <17000) { lcd.setCursor (0, 0); lcd.print ("התקבל: 1"); }
משדר ומקלט Li-Fi באמצעות Arduino
לאחר העלאת הקוד השלם בשני הארדואינו, לחץ על כל כפתור בלוח המקשים בצד המקלט ואותה ספרה תוצג על צג 16x2 בצד המקלט.
כך ניתן להשתמש ב- Li-Fi להעברת נתונים באמצעות אור. מקווה שנהנית מהמאמר ולמדת ממנו משהו חדש, אם יש לך ספק, תוכל להשתמש בסעיף ההערות או לשאול בפורומים.