תוכן עניינים:
- שלב 1: בניית תחנת בסיס
- שלב 2: המבחן הראשון
- שלב 3: צור את הממשק
- שלב 4: הוסף מד
- שלב 5: גרור GPS מד והוסף OpenStreetMap
- שלב 6: גרור מד GPS והוסף יומן טבלה
- שלב 7: קבל קוד
- שלב 8: Arduino IDE
- שלב 9: פרטי קידוד
וִידֵאוֹ: פרויקט Arduino: מבחן טווח LoRa מודול RF1276 לפתרון מעקב GPS: 9 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
חיבור: USB - סידורי
צורך: דפדפן כרום
צורך: 1 X Arduino Mega
צורך: 1 X GPS
צורך: 1 X כרטיס SD
צורך: 2 X LoRa מודם RF1276
פונקציה: Arduino שלח ערך GPS לבסיס הראשי-נתוני אחסון בסיס בסיסיים במודול Lora Dataino Server: RF1276 לטווח ארוך במיוחד מ- APPCONWIRELESS LoRa היא טכניקת אפנון חדשה, פרטית ומתפשטת המאפשרת שליחת נתונים בקצבי נתונים נמוכים במיוחד עד קיצוניים במיוחד טווחים ארוכים. קצב הנתונים הנמוך (עד כמה בתים לשנייה) ואפנון LoRa מובילים לרגישות נמוכה מאוד של מקלט, כלומר במבחן זה פירושו יותר מ -10 ק מ.
שלב 1: בניית תחנת בסיס
חיבור אינטרנט ברוחב מחשב ומודם LoRa המחובר ליציאת USB.
ערכת רכב Arduino ·
התיבה המטרית
Anduino Mega מחובר ל- 2 סידורי למקלט GPS, ולסדרה 1 למודם LoRa. כרטיס SD משמש לנתוני חנות.
שלב 2: המבחן הראשון
· 10.6 ק מ על שביל במרכזים עירוניים, גלריות ולאורך החוף עשוי לולאות
היחס בין קליטה /שידור היה של 321 /500TX נקודה
נקודת RX
שלב 3: צור את הממשק
1 - הקמת פרויקט חדש LoRa
לחץ על סמל שיניים כדי לפתוח את תצורת הפרויקט
שלב 4: הוסף מד
2) פתח את מחוון המד.
· 3) גלול ל- GPS.
· 4) הוסף אחד לשולחן העבודה.
שלב 5: גרור GPS מד והוסף OpenStreetMap
· 5) הוסף את מפת OpenStreetMap לשולחן העבודה
גרירת רכיב ה- GPS על מפת הסמלים, נוצרת מפת OpenStreet.
צור את הממשק
· 6) שנה את רענון המפה
שנה את זמן רענון המפה מ- 5000 ל- 10000
שלב 6: גרור מד GPS והוסף יומן טבלה
· 7) הוסף מד יומן טבלה.
על ידי גרירת המד מעל לטבלת סמלי ה- GPS נוצר יומן טבלאות מד
· 8) שינוי רענון יומן הטבלה. שנה את זמן רענון המפה מ- 5000 ל- 10000
התאם את מיקום המדדים
· 9) מדידי גרירה מתאימים את מיקום המדדים על ידי גרירתם על פני המסך.
· 10) שמור פרויקט
שלב 7: קבל קוד
10) הפעל את מיכל הקוד
לחצן בפינה הימנית העליונה, בחר הכל והעתק את קוד הבסיס.
שלב 8: Arduino IDE
· 11) הדבק קוד על Arduino IDE
· 12) ערוך קוד הוסף שורה זו בהגדרה
שלב 9: פרטי קידוד
הוסף שורה זו בהגדרה
//*************************************************************************
// ** ספריה ** // *************************************** ******************************
#כלול // ++ ספריית GPS
#include // ++ ספריית SPI #include
// ++ ספריית SD //
*************************************************************************
// ** SD ** // *************************************** ******************************
// * כרטיס SD מצורף לאוטובוס SPI כדלקמן:
// ** UNO: MOSI - סיכה 11, MISO - סיכה 12, CLK - סיכה 13, CS - סיכה 4
// (ניתן לשנות את סיכת CS) ואת סיכה מספר 10 (SS) חייבת להיות פלט
// ** מגה: MOSI - סיכה 51, MISO - סיכה 50, CLK - סיכה 52, CS - סיכה 53
// (ניתן לשנות את סיכת CS) ואת סיכה מספר 52 (SS) חייבת להיות פלט
// ** לאונרדו: התחבר ל- SPI חומרה באמצעות כותרת ICSP
// סיכה 4 המשמשת כאן לעקביות עם דוגמאות אחרות של Arduino const int chipSelect = 53;
// ++ בורר סיכות SD
//*************************************************************************
//** ג'י.פי. אס ** //***************************************** ******************************
GPS TinyGPS; // ++ GPS ב- Serial2
void gpsdump (TinyGPS & gps); // ++
bool newdataGPS = false; // ++
הוסף שורה זו בהגדרה ()
//***********************************************************************
// ** הגדרה טורית של GPS ** // ************************************* ******************************
Serial2.begin (9600); // ++
עיכוב (1000); // ++
//***********************************************************************
// ** אתחול SD ** // ************************************** ******************************
// וודא שסיכת ברירת המחדל של שבב מוגדרת ל- // ++
// פלט, גם אם אינך משתמש בו: // ++
pinMode (SS, OUTPUT); // ++
Serial.println (F ("אתחול כרטיס SD …")); // ++
// בדוק אם הכרטיס קיים וניתן לאתחל אותו: // ++
אם (! SD.begin (chipSelect)) {// ++
Serial.println (F ("הכרטיס נכשל או לא קיים")); // ++
// אל תעשה יותר: // ++
לַחֲזוֹר; // ++
} אחר {// ++
Serial.println (F ("כרטיס SD בסדר")); // ++
} // ++
הוסף שורות אלה בחלל לולאה ()
serialEvent2 (); // ++ אירוע סידורי להתקשרות עם GPS
הוסף קוד SeriaEvent2
//*************************************************************************
// ** אירוע סדרתי של GPS ** // ************************************** *******************************
void serialEvent2 () {// ++
while (Serial2.available ()) {// ++
char c = Serial2.read (); // ++
//Serial.print(c); // לא הגיב כדי לראות נתוני GPS גולמיים // ++
אם (gps.encode (c)) {// ++
newdataGPS = true; // ++
לשבור; // אין תגובה להדפיס נתונים חדשים באופן מיידי! // ++
} // ++
} // ++
} // ++
הוסף GPS dump voud
//*************************************************************************
// ** gps dump ** // ************************************** *******************************
// ** טווח הרוחב התקף במעלות הוא -90 ו- +90. **
// ** אורך הוא בטווח -180 ו -180 **
// ** ציון המיקום מזרח-מערב **
//** "123456789 1234567890" **
//** "000.00000;0000.00000" ** //*************************************************************************
void gpsdump (TinyGPS & gps) // ++
{ // ++
שנה int; // ++
חודש בתים, יום, שעה, דקה, שנייה, מאיות; // ++
גיל ארוך לא חתום; // ++
gps.f_get_position (& LATGP00, & LONGP00, & גיל); // ++
gps.crack_datetime (& year, & month, & day, & hour, // ++
& דקה, ושנייה, & מאיות, וגיל); // ++
lat lat, lon; // ++
gps.get_position (& lat, & lon, & age); // ++
// *********************************************************************
// ** צור מחרוזת להרכבת הנתונים ליומן: **
// *********************************************************************
String dataString = ""; // ++
dataString += (lat / 100000); // ++
dataString += "."; // ++
dataString += lat - (lat / 100000) * 100000; // ++
dataString += ";"; // ++
dataString += (lon / 100000); // ++
dataString += "."; // ++
dataString += lon - (lon / 100000) * 100000; // ++
dataString += ";"; // ++
dataString += String (static_cast (יום)); // ++
dataString += "/"; // ++
dataString += String (static_cast (חודש)); // ++
dataString += "/"; // ++
dataString += מחרוזת (שנה); // ++
dataString += ";"; // ++
dataString += String (static_cast (שעה)); // ++
dataString += ":"; // ++
dataString += String (static_cast (דקה)); // ++
dataString += ":"; // ++
dataString += String (static_cast (השני)); // ++ // ***************************************** ****************************
// ** שמור ל- SD ** // ************************************* ********************************
// פתח את הקובץ. שים לב שרק קובץ אחד יכול להיות פתוח בכל פעם, **
// אז אתה צריך לסגור את זה לפני שאתה פותח עוד אחד. ** // ******************************************* ***************************
קובץ dataFile = SD.open ("gps00.txt", FILE_WRITE); // ++
// ***********************************************************************
// ** אם הקובץ זמין, כתוב לו: **
// ***********************************************************************
אם (dataFile) {// ++
dataFile.println (dataString); // ++
dataFile.close (); // ++
} אחר {// ++
Serial.println (F ("ERROR SD Write")); // ++
} // ++
}
אם ברצונך להוריד את הקוד, בקר בדף זה.
מוּמלָץ:
מודול טווח אולטרסאונד ממשק HC-SR04 עם Arduino: 5 שלבים
מודול טווח אולטרסאונד ממשק HC-SR04 עם Arduino: היי, מה קורה, חבר'ה! אקרש כאן מ- CETech. הפרויקט הזה שלי הוא קצת בצד הפשוט אבל כיפי כמו הפרויקטים האחרים. בפרויקט זה, אנו הולכים לממשק מודול חיישן מרחק אולטראסוני HC-SR04. מודול זה פועל על ידי יצירת
אקדח קרטון Arduino (טווח טווח ומד טווח): 8 שלבים
אקדח קרטון מארדואינו (טווח טווח ומד טווח): האם לא יהיה מדהים אם תוכל למדוד מרחק בישיבה נוחה על הספה? במקום שתצטרך להשתמש בקלטת מסורתית? אז היום אני הולך להכין אקדח ארדואינו שמסוגל למדוד מרחקים של 2 ס"מ עד 400 ס"מ רוחב
הדרכה: כיצד לבנות מודול חיישן טווח לייזר VL53L0X באמצעות Arduino UNO: 3 שלבים
הדרכה: כיצד לבנות מודול חיישן טווח לייזר VL53L0X באמצעות Arduino UNO: תיאורים: הדרכה זו תציג בפניכם את כל הפרטים כיצד לבנות גלאי מרחק באמצעות מודול חיישן טווח לייזר VL53L0X ו- UNO Arduino והוא יפעל כמוכם רוצה. עקוב אחר ההוראות ותבין את החונך הזה
מי בדלת שלי? חיישן תנועה PIR/פרויקט חיישן טווח: 5 שלבים
מי בדלת שלי? פרויקט חיישן תנועה/חיישן טווח PIR: הפרויקט שלנו נועד לחוש תנועה באמצעות חיישני PIR ומרחקים. קוד Arduino יפיק אות חזותי ושמע כדי לספר למשתמש שמישהו נמצא בקרבתו. קוד MATLAB ישלח אות דואר אלקטרוני כדי להתריע בפני המשתמש שמישהו נמצא בקרבתו. מכשיר זה
בוט מעקב אחר שלדה מעקב מרחוק: 7 שלבים (עם תמונות)
בוט מעקב אחר שלדה מחוסרת מרחוק: מבוא: אז זה היה פרוייקט שרציתי להתחיל ולסיים עוד בשנת 2016, אולם בשל עבודות ושפע של דברים אחרים הצלחתי רק להתחיל ולהשלים את הפרויקט הזה בשנת 2016 שנה חדשה 2018! זה לקח בערך 3 שעות