- הסבר עבודה:
- רכיבים נדרשים:
- תרשים מעגל:
- עבודה עם מודול משדר אלחוטי nRF24L01 +:
- תכנות הארדואינו:
- תוכנית עיבוד:
- בדיקה:
יצירת רשת מקומית לשיתוף נתונים אישיים וסודיים הפכה כמעט בלתי אפשרית עבור אדם רגיל בעולמנו המודרני. זה בעיקר בגלל שכל שיטות הצ'אט הנפוצות כמו Whatsapp, Facebook, Hangout וכמעט הכל כרוך בחיבור לאינטרנט.
מה אם נוכל לשתף נתונים ללא מדיום האינטרנט ?
כמה מגניב יהיה אם תוכל לתקשר עם אנשים בביתך או במקום העבודה שלך בלי חבילת רשת או חיבור לאינטרנט?
מה אם נוכל להתאים את מסך הצ'אט שלנו לדמיון שלנו?
כל זה אפשרי באמצעות מיקרו-בקר ומדינת שידור אלחוטית. זה חדר צ'אט Arduino באמצעות פרויקט nRF24L01 ידריך אותך על הקמה בעלות נמוכה חדר צ'אט באזורך.
אז בואו נקפוץ ונראה איך זה עובד.
הסבר עבודה:
בעיקרון כדי שהדבר הזה יעבוד נצטרך זוג לוחות ארדואינו ומודולים אלחוטיים זולים. המודולים האלחוטיים בהם נשתמש כאן הם nRF24L01. הסיבה לבחירת המודולים הללו היא שמדובר בממשיכי דרכו של זיגבי וקל לעבוד עם חיבור מוגדר. כמו כן, מודולים אלה עובדים על 2.4 ג'יגה הרץ (פס ISM) עם ספקטרום מפוזר של קפיצות תדרים ואפשרויות פרץ זעזועים שגורמים לנו להרגיש רגועים מבעיות הפרעות.
הארדואינו וה- NRF24L01 מחוברים יחד כדי ליצור תקשורת טורית כדי שיוכלו לדבר זה עם זה. ה- NRF24L01 הם מודולי מקמ"ש חצי דופלקס, ולכן הם יכולים לשלוח ולקבל נתונים. הנתונים נאספים מהמשתמש ומועברים נתונים אלה יכולים להתקבל על ידי כל מודול (או אחד מסוים) ולהציג אותם על גבי המסך שלהם.
אבל!!!!! האם אנו הולכים לשוחח בצ'אט באמצעות מסך הבאגים של ארדואינו? ברור שלא. אנו הולכים לבנות ולהתאים אישית את מסך הצ'אט שלנו בעזרת 'עיבוד'. עיבוד היא תוכנה המסוגלת לתקשר עם הארדואינו באמצעות UART. ניצור קובץ.exe עם שפת עיבוד, שיכול לפעול בכל מחשב עם Java Runtime. על מנת לשוחח בצ'אט עלינו רק לחבר את Arduino שלנו ולפתוח את קובץ ה- exe הזה ואת Booooom !! אנחנו בחדר צ'אט המופרט שלנו לגמרי בחינם.
פרויקט זה מוגבל רק להוספת שני חברים לחדר הצ'אט, אך ל- nRF24L01 יש 6 צינורות, וכך יכולים להיות מקסימום 6 חברים בחדר הצ'אט שלנו. חדר char זה יכול לעבוד בטווח של 100 מטר, תלוי במודולי nRF24L01.
אז בואו נלך לקניות !!!!
רכיבים נדרשים:
- Arduino (כל גרסה או דגם) - 2Nos
- מודול משדר אלחוטי nRF24L01 + - 2Nos
- 3.3 ווסת מתח - 2Nos. (לא חובה)
- חוטי חיבור
- עניין (לולץ)
תרשים מעגל:
Arduino מגה עם nRF24L01:
ארדואינו ננו עם nRF24L01:
הפרויקט שלנו אינו כולל קשרים מורכבים. השתמשתי במגה Arduino וב- Arduino Nano והקשרים שלהם עם nRF24L01 מוצגים לעיל. אתה יכול להשתמש בכל דגמי Arduino.
עבודה עם מודול משדר אלחוטי nRF24L01 +:
עם זאת על מנת לגרום ל- nRF24L01 שלנו לעבוד ללא רעש, כדאי שנשקול את הדברים הבאים. אני עובד על ה- nRF24L01 + זה זמן רב ולמדתי שהנקודות הבאות יכולות לעזור לך להכות על קיר.
1. רוב המודולים nRF24L01 + בשוק מזויפים. הזולים שאנו יכולים למצוא ב- eBay וב- Amazon הם הגרועים ביותר (אל דאגה, עם מעט שינויים שנוכל לגרום להם לעבוד)
2. הבעיה העיקרית היא ספק הכוח ולא הקוד שלך. רוב הקודים המקוונים יעבדו כראוי, לי עצמי יש קוד עבודה שבדקתי באופן אישי, הודע לי אם אתה זקוק להם.
3. שימו לב כי המודולים המודפסים כ- NRF24L01 + הם למעשה Si24Ri (כן מוצר סיני).
4. השיבוט והמודולים המזויפים יצרכו יותר כוח, ולכן אל תפתחו את מעגל ההספק שלכם בהתבסס על גליון הנתונים nRF24L01 +, מכיוון של- Si24Ri תהיה צריכת זרם גבוהה כ -250 mA.
5. היזהר מאפלות מתח וזרמי זרם, מודולים אלה רגישים מאוד ועלולים להישרף בקלות. (;-(טיגנו עד כה 2 מודולים)
6. הוספת קבלים זוגיים (10uF ו- 0.1uF) על פני Vcc ו- GND של המודול עוזרת להפוך את האספקה שלך לטהורה וזה עובד ברוב המודולים.
ובכל זאת אם יש לך בעיות דווח על קטע ההערות או קרא את זה.
תכנות הארדואינו:
התוכנית עבור Arduino Nano ו- Mega תהיה דומה לשינוי בסיכות CE ו- CS. אסביר את התוכנית על ידי פיצול אותה לקטעים קטנים.
מאז Arduino ו- nRF24L01 מתקשרים דרך ה- SPI קראנו לספריית SPI. כללנו גם את Libiac Maniacbug RF24 שלנו למודולי ה- RF שלנו. הורד את הקובץ מכאן והוסף אותם ל- IDE שלך.
#לִכלוֹל
מודולי ה- NRF שלנו מחוברים לסיכה 8 ו- 10 ל- CE ו- CS בהתאמה.
RF24 myRadio (8, 10);
אנו יוצרים חבילת נתונים מובנית הנקראת חבילה . הטקסט המשתנה ישמש להעברת נתונים באוויר.
חבילת struct {טקסט char; // טקסט להעברה בשידור}; חבילת חבילת מבנה typedef; נתוני חבילה;
ב התקנת החלל () הפונקציה, אנו לאתחל את קצב השידור עד 9600 והתקנה מודולים שלנו 115 עם צריכת חשמל MIN ומהירות 250kbps. תוכל להתעסק בערכים אלה בהמשך.
הגדרת חלל () {Serial.begin (9600); עיכוב (1000); //Serial.print("הגדרת האתחול"); myRadio.begin (); myRadio.setChannel (115); // רצועת 115 מעל WIFI מאותתת myRadio.setPALevel (RF24_PA_MIN); // MINRADIO.setDataRate (זעם נמוך) מיני נמוך (RF24_250KBPS); // מהירות מינימלית}
המודול נועד לעבוד במצב שידור אם הנתונים מתקבלים דרך מאגר סידורי, אחרת הוא יהיה במצב מקלט ומחפש נתונים באוויר. הנתונים מהמשתמש נשמרים במערך צ'אר ונשלחים אל WriteData () כדי להעביר אותם.
loop loop () {while (Serial.available ()> 0) // קבל ערכים מהמשתמש {val = Serial.peek (); אם (אינדקס <19) // אחד פחות מגודל המערך {inChar = Serial.read (); // קרא דמות inData = inChar; // אחסן את האינדקס ++; // הגדל היכן לכתוב הבא inData = '\ 0'; // אפס את המחרוזת} אם (val == '#') {strcpy (data.text, inData); כתוב נתונים (); // הכניסו את המודול למצב העברה בעוד (index! = 0) {inData = ''; אינדקס--; }}} ReadData (); // שים את מצב קבלת המודול}
פונקציה void WriteData () כותבת את הנתונים על כתובת 0xF0F0F0F0AA, כתובת זו משמשת כצינור כתיבה במודול אחר.
בטל WriteData () {myRadio.stopListening (); // הפסק קבלה והתחל להעביר את myRadio.openWritingPipe (0xF0F0F0F066); // שולח נתונים על כתובת 40 סיביות זו myRadio.write (& data, sizeof (data)); עיכוב (300); }
פונקציה ReadData (בטל) כותבת את הנתונים על 0xF0F0F0F066 כתובת זו, כתובת זו משמשת כצינור קריאה במודול אחר.
בטל ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // איזה צינור לקרוא, 40 סיביות כתובת myRadio.startListening (); // הפסק את השידור והתחל לבצע בדיקה מחדש אם (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
זהו, חלק התכנות שלנו הסתיים. אם אינך יכול להבין כמה דברים כאן, בדוק את שתי התוכניות עבור שני הארדואינו, המופיעות בסעיף הקוד שלמטה, הוספתי שורות תגובה כדי להסביר דברים הרבה יותר טוב.
תוכנית עיבוד:
'עיבוד' היא תוכנת קוד פתוח המשמשת אמנים לעיצוב גרפי. תוכנה זו משמשת לפיתוח תוכנות ויישומי אנדרואיד. זה די קל לפיתוח ודומה מאוד ל- IDE לפיתוח אנדרואיד. מכאן שקיצרתי את ההסבר.
קוד העיבוד לשני מסכי הצ'אט ניתן כאן:
- קוד עיבוד למסך צ'אט 1
- קוד עיבוד מסך צ'אט 2
לחץ עליהם לחיצה ימנית ולחץ על 'שמור קישור כ…' כדי להוריד אותם ולפתוח אותם במחשב שלך לאחר הגדרת Arduinos. עליך להתקין את תוכנת 'עיבוד' כדי לפתוח את קבצי ה- *.pde האלה ואז 'להפעיל' אותם כדי לפתוח את תיבות הצ'אט. קטע התגובות פתוח לשאילתות. שרטוט העיבוד עבור משדר ומודול מקלט זהים.
בסעיף הקוד שלהלן חשוב "port = new Serial (this, Serial.list (), 9600); // קורא את ה- PORT הרביעי ב- 9600 baudrate" חשוב מכיוון שהוא מחליט מאיזו יציאה לנתונים.
הגדרת חלל () {size (510,500); port = חדש סידורי (זה, Serial.list (), 9600); // קורא את הנמל הרביעי ב- 9600 baudrate println (Serial.list ()); רקע (0); }
הנה קראתי נתונים מהיציאה הרביעית מהארדואינו שלי.
אז לדוגמא אם יש לך COM COM COM COM COM
ואז הקוד לעיל יקרא נתונים מ- COM.
בדיקה:
עכשיו מכיוון שסקישת העיבוד והארדואינו שלנו מוכנה, פשוט העלה את התוכנית לארדואינו והשאיר אותה מחוברת למחשב הנייד שלך. פתח את רישום העיבוד שלך והתחל להקליד ולחץ על "Enter" ההודעה שלך תועבר לארדואינו האחר אשר יציג את הטקסט שהתקבל ביישום עיבוד אחר המחובר למחשב אחר. עיין עוד בסרטון להלן להפגנה מלאה.
אז ככה תוכלו לדבר עם החברים והמשפחה באזור המקומי שלכם מבלי שיהיה לכם שום חיבור לאינטרנט, באמצעות חדר הצ'ט הזול הזה של ארדואינו.