- חומרים נדרשים
- מגן לורא של ארדואינו
- ייצור PCB למגן LoRa
- הרכבת ה- PCB
- חיבור מודול GPS למשדר LoRa
- תכנות Arduino LoRa כמשדר GPS
- תכנות Arduino LoRa כמקלט GPS
- Arduino LoRa GPS Tracker עובד
הידיעה היכן נמצא אובייקט / אדם מסוים תמיד מנחמת. כיום, נעשה שימוש נרחב ב- GPS ביישומי ניהול נכסים כמו מעקב אחר רכבים, מעקב אחר צי צי, ניטור נכסים, מעקב אחר אנשים, מעקב אחר חיות מחמד וכו '. עבור כל מכשיר מעקב השיקול העיצובי העיקרי יהיה לגבי תוחלת הסוללה וטווח הניטור שלו. בהתחשב בשניהם, נראה כי LoRa הוא בחירה מושלמת מכיוון שיש לו צריכת חשמל נמוכה מאוד ויכולה לפעול למרחקים ארוכים. לכן, במדריך זה נבנה מערכת מעקב GPS באמצעות LoRa, המערכת תורכב ממשדר אשר יקרא את פרטי המיקום ממודול ה- GPS NEO-6Mולהעביר אותו אלחוטי דרך לורה. חלק המקלט יקבל את המידע ויציג אותו על צג LCD בגודל 16x2. אם אתה חדש ב- LoRa, למד על LoRa ו- LoRaWAN טכנולוגיה וכיצד ניתן להתממשק עם Arduino לפני שתמשיך הלאה.
כדי לשמור על דברים פשוטים וחסכוניים לפרויקט זה לא נשתמש בשער LoRa. במקום זאת יבצע תקשורת עמית לעמית בין המשדר למקלט. עם זאת, אם אתה רוצה טווח גלובלי אתה יכול להחליף את המקלט בשער LoRa. גם מכיוון שאני מהודו נשתמש במודול 433 מגה הרץ של LoRa שהוא פס ISM חוקי כאן, ולכן ייתכן שיהיה עליך לבחור מודול על פי מדינתך. עם זאת, בואו נתחיל…
חומרים נדרשים
- מגן לורה ארדואינו - 2Nos (עיצוב PCB זמין להורדה)
- Arduino Uno - 2Nos
- SX1278 433MHz LoRa מודול - 2
- אנטנת לורה 433MHz
- מודול GPS NEO-6M
- מודול תצוגת LCD
- חוטי חיבור
מגן לורא של ארדואינו
כדי להקל על בניית דברים עם LoRa, תכננו פרויקט זה מגן LoRa Arduino. מגן זה מורכב מ- SX1278 433MHz עם וסת 3.3V שתוכנן באמצעות וסת משתנה LM317. המגן יישב ישירות על גבי Arduino ויספק לו יכולות LoRa. מגן LoRa זה יועיל כשאתה צריך לפרוס צמתים לחישה של LoRa או ליצור רשת רשת LoRa. תרשים המעגל השלם עבור מגן LoRa Arduino מופיע להלן
המגן מורכב משקע 12V אשר כאשר הוא מופעל ישמש לוויסות 3.3V עבור מודול LoRa באמצעות הרגולטור LM317. הוא ישמש גם להפעלת ה- Arduino UNO באמצעות סיכה Vin ו- 5V המווסת מה- Arduino משמש להפעלת LCD על המגן. מתח המוצא של ה- LM317 נקבע להיות 3.3 וולט באמצעות הנגד R1 ו- R2 בהתאמה, ניתן לחשב את ערך הנגדים הללו באמצעות מחשבון LM317.
מכיוון שמודול ה- LoRa צורך צריכת חשמל נמוכה מאוד, הוא יכול גם להיות מופעל ישירות מהסיכה 3.3V של ארדואינו, אך השתמשנו בעיצוב וסת חיצוני מכיוון ש- LM317 הוא אמין יותר מווסת המתח שעל הלוח. המגן כולל גם פוטנציומטר בו ניתן להשתמש בכוונון התאורה של ה- LCD. החיבור של מודול LoRa עם Arduino דומה למה שעשינו במדריך הקודם שלנו על Interfacing Arduino עם Lora.
ייצור PCB למגן LoRa
עכשיו, כשהמעגל שלנו מוכן, נוכל להמשיך בתכנון ה- PCB שלנו. פתחתי על ידי תוכנת עיצוב PCB והתחלתי ליצור את מסלולי. לאחר השלמת עיצוב ה- PCB הלוח שלי נראה בערך כך המוצג למטה
אתה יכול גם להוריד את קבצי העיצוב בפורמט GERBER ולייצר אותם כדי לקבל את הלוחות שלך. קישור קובץ גרבר מופיע להלן
הורד את קובץ גרבר למגן Arduino LoRa
עכשיו, כשהעיצוב שלנו מוכן הגיע הזמן לייצר אותם. כדי לבצע את ה- PCB זה די קל, פשוט בצע את השלבים הבאים
שלב 1: היכנס ל- www.pcbgogo.com, הירשם אם זו הפעם הראשונה שלך. לאחר מכן, בכרטיסיית אב טיפוס PCB הזן את ממדי ה- PCB שלך, מספר השכבות ומספר PCB שאתה זקוק לו. בהנחה שה- PCB הוא 80 ס"מ × 80 ס"מ תוכלו להגדיר את המידות כפי שמוצג להלן.
שלב 2: המשך על ידי לחיצה על כפתור ציטוט עכשיו . תועבר לדף שבו תוכל להגדיר כמה פרמטרים נוספים במידת הצורך, כמו חומר המרווח בין מסלולים וכו '. אך בעיקר ערכי ברירת המחדל יעבדו בסדר. הדבר היחיד שעלינו לקחת בחשבון כאן הוא המחיר והזמן. כפי שאתה יכול לראות זמן הבנייה הוא רק 2-3 ימים וזה פשוט עולה רק 5 $ עבור ה- PSB שלנו. לאחר מכן תוכל לבחור שיטת משלוח מועדפת על פי דרישתך.
שלב 3: השלב האחרון הוא העלאת קובץ גרבר והמשך התשלום. כדי לוודא שהתהליך חלק PCBGOGO מאמת אם קובץ הגרבר שלך תקף לפני שתמשיך עם התשלום. בדרך זו אתה יכול לוודא כי ה- PCB שלך הוא ידידותי לייצור ויגיע אליך כמחויב.
הרכבת ה- PCB
לאחר הזמנת הלוח, הוא הגיע אלי לאחר כמה ימים, אם כי שליח בארגז ארוז היטב, וכמו תמיד איכות ה- PCB הייתה מדהימה.
הפעלתי את מוט ההלחמה שלי והתחלתי להרכיב את הלוח. מכיוון שטביעות הרגליים, הרפידות, הוויאסות ומסך המשי הם בצורה ובגודל הנכונים לחלוטין לא הייתה לי שום בעיה להרכיב את הלוח. לאחר השלמת ההלחמה הלוח נראה כך למטה, כפי שניתן לראות הוא מתאים היטב על לוח ה- Arduino Uno שלי.
מאז הפרויקט שלנו יש משדר Arduino לורה ו Arduino לורה מקלט נצטרך שני מגינים אחד עבור מקלט והשני משדר. אז המשכתי בהלחמת PCB נוסף, הן PCB עם מודול LoRa והן LCD מוצגים למטה.
כפי שאתה יכול לראות רק למקלט LoRa shied (משמאל) יש LCD המחובר אליו, צד המשדר מורכב רק ממודול LoRa. אנו עוד נחבר מודול GPS לצד המשדר כמפורט להלן.
חיבור מודול GPS למשדר LoRa
מודול ה- GPS המשמש כאן הוא מודול ה- GPS NEO-6M, המודול יכול לפעול בהספק נמוך מאוד עם גורם צורה קטן מה שהופך אותו למתאים ליישומי מעקב. עם זאת ישנם הרבה מודולי GPS אחרים זמינים בהם השתמשנו בעבר בסוגים שונים של מעקב אחר רכב ויישומי איתור מיקום.
המודול פועל ב- 5V ומתקשר באמצעות תקשורת טורית בקצב שידור של 9600. לפיכך אנו מפעילים את המודול ל- + 5V פין של Arduino ומחברים את הפין Rx ו- Tx לסיכה הדיגיטלית D4 ו- D3 בהתאמה, כמוצג להלן.
הפינים D4 ו- D3 יוגדרו כפינים סדרתיים של תוכנה. לאחר ההפעלה, מודול ה- GPS של NEO-6M יחפש חיבור לוויני ויופץ באופן אוטומטי את כל המידע באופן סדרתי. נתוני פלט אלה יהיו בפורמט המשפט NMEA אשר מייצג את האגודה הלאומית לאלקטרוניקה ימית ומהווה את הפורמט הסטנדרטי לכל מכשירי ה- GPS. למידע נוסף על שימוש ב- GPS עם Arduino, לחץ על הקישור. נתונים אלה יהיו גדולים ולרוב נצטרך לנסח אותם ידנית כדי להשיג את התוצאה הרצויה. למזלנו יש ספרייה בשם TinyGPS ++ שעושה עבורנו את כל המשקולות הכבדים. אתה גם צריך להוסיף את ספריית LoRa אם עדיין לא עשית זאת. אז בואו להוריד את שתי הספרייה מהקישור למטה
הורד את TinyGPS ++ ספריית Arduino
הורד את ספריית Arduino LoRa
הקישור יוריד קובץ ZIP אשר לאחר מכן ניתן להוסיף ל- Arduino IDE על ידי ביצוע הפקודה סקיצה -> כלול ספרייה -> ספריית Add.ZIP . ברגע שתהיה מוכן עם החומרה והספרייה נוכל להמשיך בתכנות לוחות Arduino שלנו.
תכנות Arduino LoRa כמשדר GPS
כידוע ה- LoRa הוא מכשיר מקמ"ש, כלומר הוא יכול גם לשלוח ולקבל מידע. אולם בפרויקט גשש GPS זה נשתמש במודול אחד כמשדר כדי לקרוא את המידע המתואם מ- GPS ולשלוח אותו, ואילו המודול השני כמקלט אשר יקבל את ערכי התיאום של ה- GPS וידפיסו על גבי ה- LCD. תוכנית היא עבור משדר מודול מקלט ניתן למצוא בתחתית הדף הזה. וודא שהתקנת את הספריות עבור מודול GPS ומודול LoRa לפני שתמשיך בקוד. בחלק זה נבחן את קוד המשדר.
כמו תמיד, אנו מתחילים את התוכנית על ידי הוספת הספריות והסיכות הנדרשים. כאן ספריית SPI ו- LoRa משמשת לתקשורת LoRa וספריית TinyGPS ++ ו- SoftwareSerial משמשת לתקשורת GPS. מודול ה- GPS בחומרה שלי מחובר לסיכה 3 ו -4, ולכן אנו מגדירים זאת באופן הבא
#לִכלוֹל
בתוך פונקציית ההתקנה אנו מתחילים את המסך הטורי וגם מאתחלים את סדרת התוכנה כ- "gpsSerial " לתקשורת עם מודול ה- GPS שלנו NEO-6M. שים לב גם שהשתמשתי ב 433 E6 (433 מגהרץ) כתדר ההפעלה של LoRa שלך, ייתכן שיהיה עליך לשנות אותו על סמך סוג המודול בו אתה משתמש.
הגדרת חלל () { Serial.begin (9600); gpsSerial.begin (9600); בעוד (! סדרתי); Serial.println ("שולח LoRa"); אם (! LoRa.begin (433E6)) { Serial.println ("הפעלת LoRa נכשלה!"); ואילו (1); } LoRa.setTxPower (20); }
בתוך פונקציית הלולאה אנו בודקים אם מודול ה- GPS מוציא כמה נתונים, אם כן אז אנו קוראים את כל הנתונים ומנסחים אותם באמצעות פונקציית gps.encode. לאחר מכן אנו בודקים אם קיבלנו נתוני מיקום תקפים באמצעות הפונקציה gps.location.isValid () .
בעוד (gpsSerial.available ()> 0) אם (gps.encode (gpsSerial.read ())) אם (gps.location.isValid ()) {
אם קיבלנו מיקום חוקי נוכל להתחיל להעביר את ערכי הרוחב והאורך. הפונקציה gps.location.lat () נותנת את תיאום הרוחב והפונקציה gps.location.lng () נותנת את התיאום לקו האורך. מכיוון שנדפיס אותם על גבי LCD * 16 * 2 עלינו להזכיר מתי לחרבן לשורה השנייה, ולכן אנו משתמשים במילת המפתח "c" כדי לאינטם את המקלט להדפיס את המידע הבא בשורה 2.
LoRa.beginPacket (); LoRa.print ("לאט:"); LoRa.print (gps.location.lat (), 6); LoRa.print ("c"); LoRa.print ("Long:"); LoRa.print (gps.location.lng (), 6); Serial.println ("נשלח באמצעות LoRa"); LoRa.endPacket ();
תכנות Arduino LoRa כמקלט GPS
קוד המשדר כבר שולח את הקואורדינטות של קו רוחב ואורך, כעת על המקלט לקרוא את הערכים הללו ולהדפיס על גבי ה- LCD. באופן דומה כאן אנו מוסיפים את הספרייה עבור מודול LoRa ותצוגת LCD ומגדירים לאילו פינים מחובר ה- LCD וגם אתחל את מודול ה- LoRa כמו קודם.
#לִכלוֹל
בתוך פונקציית הלולאה אנו מאזינים לחבילות נתונים ויוצרים את מודול ה- LoRa המשדר ואת גודלו באמצעות פונקציית LoRa.parsePacket () ומאחסנים אותו במשתנה " packetSize ". אם מתקבלים חבילות, אנו ממשיכים בקריאתם כתווים ומדפיסים אותם על גבי ה- LCD. התוכנית בודקת גם אם מודול ה- LoRa שולח את מילת המפתח "c", אם כן אז מדפיס את המידע הנותר בשורה השנייה.
אם (packetSize) {// אם החבילה קיבלה Serial.print ("חבילה שהתקבלה '"); lcd.clear (); בעוד (LoRa.available ()) { char incoming = (char) LoRa.read (); אם (נכנס == 'c') { lcd.setCursor (0, 1); } אחר { lcd.print (נכנס); } }
Arduino LoRa GPS Tracker עובד
לאחר שהחומרה והתוכנית מוכנים נוכל להעלות את שני הקודים במודולי הארדואינו בהתאמה ולהפעיל אותם באמצעות מתאם 12 וולט או כבל USB. כאשר המשדר מופעל אתה יכול להבחין בנורית הכחולה במודול ה- GPS מהבהבת, זה מצביע על כך שהמודול מחפש חיבור לוויני כדי לקבל קואורדינטות. בינתיים מודול המקלט יופעל ויציג הודעת קבלת פנים על גבי מסך ה- LCD. לאחר שהמשדר ישלח את המידע, מודול המקלט יציג אותו על גבי ה- LCD שלו כמוצג להלן
עכשיו אתה יכול להסתובב עם מודול ה- GPS של המשדר ותבחין במקלט שמעדכן את מיקומו. כדי לדעת היכן בדיוק נמצא מודול המשדר תוכלו לקרוא את ערכי הרוחב והאורך המוצגים על גבי LCD ולהזין אותו במפות Google כדי לקבל את המיקום במפה כמוצג להלן.
את העבודה המלאה ניתן למצוא גם בסרטון המופיע בתחתית עמוד זה. מקווה שהבנתם את ההדרכה ונהניתם לבנות איתה משהו שימושי. אם יש לך ספק אתה יכול להשאיר אותם בסעיף ההערות למטה או להשתמש בפורומים שלנו לשאילתות טכניות אחרות.