Talaan ng mga Nilalaman:

Arduino Project: Test Range LoRa Module RF1276 para sa Solusyon sa Pagsubaybay sa GPS: 9 Mga Hakbang (na may Mga Larawan)
Arduino Project: Test Range LoRa Module RF1276 para sa Solusyon sa Pagsubaybay sa GPS: 9 Mga Hakbang (na may Mga Larawan)

Video: Arduino Project: Test Range LoRa Module RF1276 para sa Solusyon sa Pagsubaybay sa GPS: 9 Mga Hakbang (na may Mga Larawan)

Video: Arduino Project: Test Range LoRa Module RF1276 para sa Solusyon sa Pagsubaybay sa GPS: 9 Mga Hakbang (na may Mga Larawan)
Video: Scentroid's CTAir Continuous Urban Air Quality Monitor Seminar A 12.08.2020 (Subtitled) 2024, Hulyo
Anonim
Arduino Project: Test Range LoRa Module RF1276 para sa Solusyon sa Pagsubaybay sa GPS
Arduino Project: Test Range LoRa Module RF1276 para sa Solusyon sa Pagsubaybay sa GPS

Koneksyon: USB - Serial

Kailangan: Chrome Browser

Kailangan: 1 X Arduino Mega

Kailangan: 1 X GPS

Kailangan: 1 X SD card

Kailangan: 2 X LoRa Modem RF1276

Pag-andar: Arduino Magpadala ng halaga ng GPS sa pangunahing base - Pangunahing data ng base store sa Dataino Server Lora Modyul: Ang ultra long range na RF1276 mula sa APPCONWIRELESS LoRa ay isang bago, pribado at kumakalat na spectrum na diskarte sa pagbago na nagpapahintulot sa pagpapadala ng data sa sobrang mababang mga rate ng data sa sobrang mahabang saklaw. Ang mababang data-rate (pababa sa ilang mga byte bawat segundo) at modulasyon ng LoRa ay humantong sa napakababang pagiging sensitibo ng tatanggap, nangangahulugang sa pagsubok na ito ay nangangahulugang higit sa 10km.

Hakbang 1: Building Base Station

Building Base Station
Building Base Station
Building Base Station
Building Base Station

Koneksyon sa internet ng lapad ng computer at isang LoRa modem na konektado sa USB port.

Arduino Car Kit ·

Ang kahon ng sukatan

Nakakonekta ang Anduino Mega sa serial 2 sa reciver ng GPS, at Serial 1 sa LoRa modem. Ginagamit ang isang SD card para sa data ng tindahan.

Hakbang 2: Ang Unang Pagsubok

Ang Unang Pagsubok
Ang Unang Pagsubok

· 10.6 Km sa isang landas sa mga sentro ng lunsod, mga gallery at sa baybayin na ginawa ng mga loop

Ang ratio ng pagtanggap / paghahatid ay nasa 321 / 500TX point

RX point

Hakbang 3: Lumikha ng Interface

Lumikha ng Interface
Lumikha ng Interface
Lumikha ng Interface
Lumikha ng Interface

1 - Mag-set up ng isang bagong proyekto LoRa

Pindutin ang icon na cog upang buksan ang config ng proyekto

Hakbang 4: Magdagdag ng Gauge

Magdagdag ng Gauge
Magdagdag ng Gauge

2) Buksan ang slider ng gauge.

· 3) Mag-scroll sa GPS.

· 4) Magdagdag ng isa sa desk.

Hakbang 5: I-drag ang Gauge GPS at Idagdag ang OpenStreetMap

I-drag ang Gauge GPS at Magdagdag ng OpenStreetMap
I-drag ang Gauge GPS at Magdagdag ng OpenStreetMap
I-drag ang Gauge GPS at Magdagdag ng OpenStreetMap
I-drag ang Gauge GPS at Magdagdag ng OpenStreetMap

· 5) Magdagdag ng OpenStreetMap na mapa sa desk

Pag-drag ng sangkap na GPS sa mapa ng icon, nabuo ang OpenStreet na mapa.

Lumikha ng Interface

· 6) Baguhin ang pag-refresh ng mapa

Baguhin ang oras ng pag-refresh ng mapa mula 5000 hanggang 10000

Hakbang 6: I-drag ang GPS Gauge at Magdagdag ng Log Log

I-drag ang GPS Gauge at Magdagdag ng Log Log
I-drag ang GPS Gauge at Magdagdag ng Log Log

· 7) Magdagdag ng isang pagsukat sa Talaan ng Log.

Sa pamamagitan ng pag-drag sa gauge sa itaas ng talahanayan ng icon ng GPS ay nilikha ang gauge table log

· 8) Baguhin ang pag-refresh ng log ng talahanayan. Baguhin ang oras ng pag-refresh ng mapa mula 5000 hanggang 10000

Ayusin ang posisyon ng mga gauge

· 9) Ang mga gauge ng dragge ayusin ang posisyon ng mga gauge sa pamamagitan ng pag-drag sa kanila sa screen.

· 10) I-save ang proyekto

Hakbang 7: Kumuha ng Code

Kumuha ng Code
Kumuha ng Code

10) Paganahin ang lalagyan ng code

Button sa kanang tuktok na pindutan, piliin ang lahat at kopyahin ang base code.

Hakbang 8: Arduino IDE

Arduino IDE
Arduino IDE

· 11) I-paste ang code sa Arduino IDE

· 12) I-edit ang code Idagdag ang linyang ito sa kahulugan

Hakbang 9: Mga Detalye ng Coding

Idagdag ang linyang ito sa kahulugan

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

// ** LIBRARY ** // ***** ***** ***** ***** ***** *****

# isama // // GPS library

# isama // // SPI library # isama

// ++ SD library //

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

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

// * SD card na nakakabit sa SPI bus tulad ng sumusunod:

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

// (Maaaring baguhin ang CS pin) at ang pin # 10 (SS) ay dapat na isang output

// ** Mega: MOSI - pin 51, MISO - pin 50, CLK - pin 52, CS - pin 53

// (Maaaring baguhin ang CS pin) at ang pin # 52 (SS) ay dapat na isang output

// ** Leonardo: Kumonekta sa hardware SPI sa pamamagitan ng header ng ICSP

// Pin 4 na ginamit dito para sa pagkakapare-pareho sa iba pang mga halimbawa ng Arduino na const int chipSelect = 53;

// ++ SD pin selector

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

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

Mga maliit na gps; // ++ GPS sa Serial2

walang bisa gpsdump (TinyGPS & gps); // ++

bool newdataGPS = false; // ++

Idagdag ang linyang ito sa pag-setup ()

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

// ** Ang pag-setup ng serial ng GPS ** // ***** *****

Serial2.begin (9600); // ++

pagkaantala (1000); // ++

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

// ** SD Initializing ** // **************************************** *****

// siguraduhin na ang default pip select pin ay nakatakda sa // ++

// output, kahit na hindi mo ito ginagamit: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("Initializing SD card…")); // ++

// tingnan kung ang kard ay naroroon at maaaring mapasimulan: // ++

kung (! SD.begin (chipSelect)) {// ++

Serial.println (F ("Nabigo ang card, o hindi naroroon")); // ++

// huwag nang gumawa ng anumang higit pa: // ++

bumalik; // ++

} iba pa {// ++

Serial.println (F ("SD card OK")); // ++

} // ++

Idagdag ang mga linya na ito sa loop () na walang bisa

serialEvent2 (); // ++ tawagan ang serial serial na GPS

Magdagdag ng SeriaEvent2 code

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

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

walang bisa ang serialEvent2 () {// ++

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

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

//Serial.print(c); // hindi komportable upang makita ang hilaw na data ng GPS // ++

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

newdataGPS = totoo; // ++

pahinga; // hindi pagkabagabag upang mag-print kaagad ng bagong data! // ++

} // ++

} // ++

} // ++

Magdagdag ng GPS dump voud

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

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

// ** Ang wastong saklaw ng latitude sa degree ay -90 at +90. **

// ** Ang longitude ay nasa saklaw na -180 at +180 **

// ** na tumutukoy sa posisyon ng silangan-kanluran **

//** "123456789 1234567890" **

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

walang bisa gpsdump (TinyGPS & gps) // ++

{ // ++

int taon; // ++

byte month, araw, oras, minuto, segundo, sandaang daan; // ++

unsigned mahabang edad; // ++

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

gps.crack_datetime (& taon, & buwan, & araw, & oras, // ++

& minuto, & pangalawa, & pang-100, at edad); // ++

mahabang lat, lon; // ++

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

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

// ** gumawa ng isang string para sa pag-iipon ng data upang mag-log: **

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

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 (araw)); // ++

dataString + = "/"; // ++

dataString + = String (static_cast (buwan)); // ++

dataString + = "/"; // ++

dataString + = String (taon); // ++

dataString + = ";"; // ++

dataString + = String (static_cast (oras)); // ++

dataString + = ":"; // ++

dataString + = String (static_cast (minuto)); // ++

dataString + = ":"; // ++

dataString + = String (static_cast (segundo)); // ++ // *** *****

// ** I-SAVE TO SD ** // ************************************* *****

// buksan ang file. tandaan na ang isang file lamang ang maaaring buksan nang paisa-isa, **

// kaya kailangan mong isara ang isang ito bago magbukas ng isa pa. ** // ****!!!!!!!!!!!!!!!!!!!!!! *****

File dataFile = SD.open ("gps00.txt", FILE_WRITE); // ++

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

// ** kung ang file ay magagamit, sumulat dito: **

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

kung (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} iba pa {// ++

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

} // ++

}

Kung nais mong i-download ang code, mangyaring bisitahin ang pahinang ito.

Inirerekumendang: