Բովանդակություն:

Arduino նախագիծ. Փորձարկման միջակայք LoRa մոդուլ RF1276 GPS- ի հետևման լուծման համար. 9 քայլ (նկարներով)
Arduino նախագիծ. Փորձարկման միջակայք LoRa մոդուլ RF1276 GPS- ի հետևման լուծման համար. 9 քայլ (նկարներով)

Video: Arduino նախագիծ. Փորձարկման միջակայք LoRa մոդուլ RF1276 GPS- ի հետևման լուծման համար. 9 քայլ (նկարներով)

Video: Arduino նախագիծ. Փորձարկման միջակայք LoRa մոդուլ RF1276 GPS- ի հետևման լուծման համար. 9 քայլ (նկարներով)
Video: Lesson 68, Home Automation: How to control 16 Channel Relay module using Arduino control 16 AC loads 2024, Դեկտեմբեր
Anonim
Arduino նախագիծ. Փորձարկման միջակայք LoRa մոդուլ RF1276 GPS- ի հետևման լուծման համար
Arduino նախագիծ. Փորձարկման միջակայք LoRa մոդուլ RF1276 GPS- ի հետևման լուծման համար

Միացում ՝ USB - Սերիա

Անհրաժեշտ է ՝ Chrome դիտարկիչ

Անհրաժեշտ է ՝ 1 X Arduino Mega

Անհրաժեշտ է ՝ 1 X GPS

Անհրաժեշտ է `1 X SD քարտ

Անհրաժեշտ է ՝ 2 X LoRa մոդեմ RF1276

Գործառույթը. Arduino- ն GPS- ի արժեք ուղարկեք հիմնական բազային-Հիմնական բազայի տվյալները պահեք Dataino Server Lora մոդուլում. APPCONWIRELESS LoRa- ից չափազանց մեծ հեռահարության RF1276- ը նոր, մասնավոր և տարածված սպեկտրի մոդուլյացիայի տեխնիկա է, որը թույլ է տալիս տվյալների փոխանցումը չափազանց ցածր արագությամբ: երկար տիրույթներ: Dataածր տվյալների արագությունը (վայրկյանում մինչև մի քանի բայթ) և LoRa մոդուլյացիան հանգեցնում են ընդունիչի շատ ցածր զգայունության, նշանակում է, որ այս թեստում նշանակում է ավելի քան 10 կմ:

Քայլ 1: Շենքի բազայի կառուցում

Շենքի բազային կայան
Շենքի բազային կայան
Շենքի բազային կայան
Շենքի բազային կայան

Համակարգչային լայնության ինտերնետ կապ և LoRa մոդեմ, որը միացված է USB պորտին:

Arduino մեքենայի հավաքածու ·

Մետրային տուփ

Anduino Mega- ն միացված է սերիական 2 -ին GPS ընդունիչին, իսկ սերիական 1 -ը ՝ LoRa մոդեմին: SD քարտը օգտագործվում է տվյալների պահպանման համար:

Քայլ 2: Առաջին փորձություն

Առաջին թեստ
Առաջին թեստ

· 10.6 կմ քաղաքային կենտրոններով, պատկերասրահներով և օղակներով արահետով անցած ճանապարհով

Ընդունման /փոխանցման հարաբերակցությունը եղել է 321 /500TX կետ

RX կետ

Քայլ 3: Ստեղծեք միջերես

Ստեղծեք միջերես
Ստեղծեք միջերես
Ստեղծեք միջերես
Ստեղծեք միջերես

1 - Ստեղծեք նոր նախագիծ LoRa

Pressրագրի կազմաձևը բացելու համար կտտացրեք պատկերակի կոճակին

Քայլ 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 գրադարան

#ներառել // ++ SPI գրադարան #ներառել

// ++ SD գրադարան //

*************************************************************************

// ** SD ** // ************************************** *******************************

// * SD քարտ, որը կցված է SPI ավտոբուսին հետևյալ կերպ.

// ** UNO: MOSI - pin 11, MISO - pin 12, CLK - pin 13, CS - pin 4

// (CS քորոցը կարող է փոխվել) և թիվ 10 (SS) կապը պետք է լինի ելք

// ** Մեգա ՝ MOSI - կապ 51, MISO - կապ 50, CLK - կապ 52, CS - կապ 53

// (CS քորոցը կարող է փոխվել) և #52 կապը (SS) պետք է լինի ելք

// ** Լեոնարդո. Միացեք ապարատային SPI- ին ICSP վերնագրի միջոցով

// Pin 4 -ը, որն օգտագործվում է այստեղ Arduino- ի այլ օրինակների հետ համապատասխանության համար const int chipSelect = 53;

// ++ SD փին ընտրիչ

//*************************************************************************

//** GPS ** //***************************************** *******************************

TinyGPS GPS; // ++ GPS- ը Serial2- ում

դատարկ gpsdump (TinyGPS & gps); // ++

bool newdataGPS = կեղծ; // ++

Ավելացրեք այս տողը կարգաբերման մեջ ()

//***********************************************************************

// ** GPS սերիայի կարգավորում ** // ************************************* *******************************

Serial2.begin (9600); // ++

ուշացում (1000); // ++

//***********************************************************************

// ** SD նախաստորագրում ** // ************************************* ******************************

// համոզվեք, որ չիպի նախնական ընտրված քորոցը սահմանված է // ++

// ելք, նույնիսկ եթե այն չեք օգտագործում ՝ // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F («SD քարտի նախաստորագրում …»)); // ++

// տեսնել, արդյոք քարտը ներկա է և կարող է նախաստորագրվել ՝ // ++

եթե (! SD.begin (chipSelect)) {// ++

Serial.println (F («Քարտը ձախողվեց, կամ ներկա չէ»)); // ++

// ավելին մի արա: // ++

վերադարձ; // ++

} այլ {// ++

Serial.println (F («SD քարտը լավ է»)); // ++

} // ++

Ավելացրեք այս տողերը loop () void- ում

serialEvent2 (); // ++ զանգ GPS սերիական իրադարձություն

Ավելացնել SeriaEvent2 ծածկագիրը

//*************************************************************************

// ** GPS serialEvent ** // ************************************** ********************************

անվավեր serialEvent2 () {// ++

while (Serial2.available ()) {// ++

char c = Serial2.read (); // ++

//Serial.print(c); // չմշակված GPS տվյալները տեսնելու համար // ++

if (gps.encode (c)) {// ++

newdataGPS = ճշմարիտ; // ++

ընդմիջում; // անհապաղ տպել նոր տվյալներ: // ++

} // ++

} // ++

} // ++

Ավելացրեք GPS աղբանոց ձայնով

//*************************************************************************

// ** gps dump ** // ************************************** *******************************

// ** Աստիճանների լայնության վավեր տիրույթը -90 և +90 է: **

// ** Երկայնությունը -180 և +180 միջակայքում է **

// ** նշելով արևելք-արևմուտք դիրքը **

//** "123456789 1234567890" **

//** "000.00000;0000.00000" ** //*************************************************************************

անվավեր gpsdump (TinyGPS & gps) // ++

{ // ++

int տարի; // ++

բայթ ամիս, օր, ժամ, րոպե, վայրկյան, հարյուրերորդական; // ++

անստորագիր երկար տարիք; // ++

gps.f_get_position (& LATGP00, & LONGP00, & age); // ++

gps.crack_datetime (& տարի, & ամիս, & օր, & ժամ, // ++

& րոպե, & երկրորդ, & հարյուրերորդ, & տարիքը); // ++

երկար լատ, լոն; // ++

gps.get_position (& lat, & lon, & age); // ++

// *********************************************************************

// ** կազմել տող ՝ տվյալների հավաքման համար ՝ **

// *********************************************************************

String dataString = ""; // ++

dataString += (լատ / 100000); // ++

dataString += "."; // ++

dataString += լատ - (լատ / 100000) * 100000; // ++

dataString += ";"; // ++

dataString += (lon / 100000); // ++

dataString += "."; // ++

dataString += lon - (lon / 100000) * 100000; // ++

dataString += ";"; // ++

dataString += լարային (static_cast (օր)); // ++

dataString += "/"; // ++

dataString += լարային (static_cast (ամիս)); // ++

dataString += "/"; // ++

dataString += Լար (տարի); // ++

dataString += ";"; // ++

dataString += լարային (static_cast (ժամ)); // ++

dataString += ":"; // ++

dataString += լարային (static_cast (րոպե)); // ++

dataString += ":"; // ++

dataString += լարային (static_cast (երկրորդ)); // ++ // ***************************************** ****************************

// ** ԽՆԴՐԵԼ SD- ում ** // ************************************* ********************************

// բացեք ֆայլը: նշեք, որ միաժամանակ կարող է բացվել միայն մեկ ֆայլ, **

// այնպես որ դուք պետք է փակեք այս մեկը ՝ մյուսը բացելուց առաջ: ** // ******************************************* **************************

Ֆայլի dataFile = SD.open ("gps00.txt", FILE_WRITE); // ++

// ***********************************************************************

// ** եթե ֆայլը մատչելի է, գրեք դրան. **

// ***********************************************************************

if (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} այլ {// ++

Serial.println (F ("ERROR SD Write")); // ++

} // ++

}

Եթե ցանկանում եք ներբեռնել կոդը, այցելեք այս էջը:

Խորհուրդ ենք տալիս: