תוכן עניינים:

פרויקט Arduino: מבחן טווח LoRa מודול RF1276 לפתרון מעקב GPS: 9 שלבים (עם תמונות)
פרויקט Arduino: מבחן טווח LoRa מודול RF1276 לפתרון מעקב GPS: 9 שלבים (עם תמונות)

וִידֵאוֹ: פרויקט Arduino: מבחן טווח LoRa מודול RF1276 לפתרון מעקב GPS: 9 שלבים (עם תמונות)

וִידֵאוֹ: פרויקט Arduino: מבחן טווח LoRa מודול RF1276 לפתרון מעקב GPS: 9 שלבים (עם תמונות)
וִידֵאוֹ: Знакомство с платой разработки Heltec LoRa CubeCell HTCC-AB01 2024, נוֹבֶמבֶּר
Anonim
פרויקט Arduino: טווח בדיקת טווח LoRa RF1276 לפתרון מעקב GPS
פרויקט Arduino: טווח בדיקת טווח LoRa RF1276 לפתרון מעקב GPS

חיבור: 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

גרור GPS מד והוסף OpenStreetMap
גרור GPS מד והוסף OpenStreetMap
גרור GPS מד והוסף OpenStreetMap
גרור GPS מד והוסף OpenStreetMap

· 5) הוסף את מפת OpenStreetMap לשולחן העבודה

גרירת רכיב ה- GPS על מפת הסמלים, נוצרת מפת OpenStreet.

צור את הממשק

· 6) שנה את רענון המפה

שנה את זמן רענון המפה מ- 5000 ל- 10000

שלב 6: גרור מד GPS והוסף יומן טבלה

גרור מד GPS והוסף יומן טבלה
גרור מד GPS והוסף יומן טבלה

· 7) הוסף מד יומן טבלה.

על ידי גרירת המד מעל לטבלת סמלי ה- GPS נוצר יומן טבלאות מד

· 8) שינוי רענון יומן הטבלה. שנה את זמן רענון המפה מ- 5000 ל- 10000

התאם את מיקום המדדים

· 9) מדידי גרירה מתאימים את מיקום המדדים על ידי גרירתם על פני המסך.

· 10) שמור פרויקט

שלב 7: קבל קוד

קבל קוד
קבל קוד

10) הפעל את מיכל הקוד

לחצן בפינה הימנית העליונה, בחר הכל והעתק את קוד הבסיס.

שלב 8: Arduino IDE

Arduino IDE
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")); // ++

} // ++

}

אם ברצונך להוריד את הקוד, בקר בדף זה.

מוּמלָץ: