Isi kandungan:

Arduino Project: Test Range LoRa Module RF1276 untuk GPS Tracking Solution: 9 Steps (with Pictures)
Arduino Project: Test Range LoRa Module RF1276 untuk GPS Tracking Solution: 9 Steps (with Pictures)

Video: Arduino Project: Test Range LoRa Module RF1276 untuk GPS Tracking Solution: 9 Steps (with Pictures)

Video: Arduino Project: Test Range LoRa Module RF1276 untuk GPS Tracking Solution: 9 Steps (with Pictures)
Video: Testing Long Range Wireless 915Mhz RF LoRa Transceiver Module REYAX RYLR890 RYLR896 Arduino Part 3 2024, Disember
Anonim
Arduino Project: Test Range LoRa Module RF1276 untuk GPS Tracking Solution
Arduino Project: Test Range LoRa Module RF1276 untuk GPS Tracking Solution

Sambungan: USB - Bersiri

Perlu: Penyemak Imbas Chrome

Perlu: 1 X Arduino Mega

Memerlukan: 1 X GPS

Perlu: 1 kad SD X

Memerlukan: 2 X LoRa Modem RF1276

Fungsi: Arduino Menghantar nilai GPS ke pangkalan utama - Data simpanan pangkalan utama di Dataino Server Lora Modul: RF1276 jarak jauh ultra dari APPCONWIRELESS LoRa adalah teknik modulasi spektrum penyebaran dan peribadi baru yang membolehkan penghantaran data pada kadar data yang sangat rendah hingga sangat tinggi jarak jauh. Kadar data yang rendah (hingga beberapa bait sesaat) dan modulasi LoRa membawa kepada kepekaan penerima yang sangat rendah, yang bermaksud dalam ujian ini bermaksud lebih dari 10km.

Langkah 1: Membina Stesen Pangkalan

Stesen Pangkalan Bangunan
Stesen Pangkalan Bangunan
Stesen Pangkalan Bangunan
Stesen Pangkalan Bangunan

Sambungan internet lebar komputer dan modem LoRa disambungkan ke port USB.

Kit Kereta Arduino ·

Kotak metrik

Anduino Mega disambungkan ke penerima siri 2 ke GPS, dan modem Serial 1 ke LoRa. Kad SD digunakan untuk menyimpan data.

Langkah 2: Ujian Pertama

Ujian Pertama
Ujian Pertama

· 10.6 Km di jalan melalui pusat bandar, galeri dan di sepanjang pantai yang dibuat dengan gelung

Nisbah penerimaan / penghantaran adalah 321 / 500TX titik

Titik RX

Langkah 3: Buat Antaramuka

Buat Antara Muka
Buat Antara Muka
Buat Antara Muka
Buat Antara Muka

1 - Siapkan LoRa projek baru

Tekan ikon cog untuk membuka konfigurasi projek

Langkah 4: Tambah Tolok

Tambah Tolok
Tambah Tolok

2) Buka gelangsar tolok.

· 3) Tatal ke GPS.

· 4) Tambahkan satu ke meja.

Langkah 5: Drag Gauge GPS dan Tambahkan OpenStreetMap

Seret Gauge GPS dan Tambah OpenStreetMap
Seret Gauge GPS dan Tambah OpenStreetMap
Seret Gauge GPS dan Tambah OpenStreetMap
Seret Gauge GPS dan Tambah OpenStreetMap

· 5) Tambahkan peta OpenStreetMap ke meja

Menyeret komponen GPS pada peta ikon, peta OpenStreet dihasilkan.

Buat Antara Muka

· 6) Tukar muat semula peta

Ubah masa muat semula peta dari 5000 hingga 10000

Langkah 6: Seret GPS Gauge dan Tambah Log Jadual

Seret Tolok GPS dan Tambah Log Jadual
Seret Tolok GPS dan Tambah Log Jadual

· 7) Tambahkan tolok Log Jadual.

Dengan menyeret tolok di atas jadual ikon GPS dibuat log jadual tolok

· 8) Ubah penyegaran log jadual. Ubah masa muat semula peta dari 5000 hingga 10000

Laraskan kedudukan alat pengukur

· 9) Drag gauge menyesuaikan kedudukan alat pengukur dengan menyeretnya ke skrin.

· 10) Simpan projek

Langkah 7: Dapatkan Kod

Dapatkan kod
Dapatkan kod

10) Aktifkan bekas kod

Butang di butang kanan atas, pilih semua dan salin kod asas.

Langkah 8: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Tampal kod pada Arduino IDE

· 12) Edit kod Tambah baris ini dalam definisi

Langkah 9: Perincian Pengekodan

Tambahkan baris ini dalam definisi

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

// ** PERPUSTAKAAN ** // ***************************************** ********************************

#masuk // ++ perpustakaan GPS

#include // ++ perpustakaan SPI #masuk

// ++ perpustakaan SD //

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

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

// * Kad SD dilampirkan ke bas SPI seperti berikut:

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

// (pin CS boleh diubah) dan pin # 10 (SS) mestilah output

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

// (pin CS boleh diubah) dan pin # 52 (SS) mestilah output

// ** Leonardo: Sambungkan ke perkakasan SPI melalui tajuk ICSP

// Pin 4 digunakan di sini untuk konsistensi dengan contoh Arduino lain const int chipSelect = 53;

// ++ pemilih pin SD

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

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

TinyGPS gps; // ++ GPS pada Serial2

batal gpsdump (TinyGPS & gps); // ++

bool newdataGPS = salah; // ++

Tambahkan baris ini dalam persediaan ()

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

// ** Penyediaan siri GPS ** // *************************************** ********************************

Serial2.begin (9600); // ++

kelewatan (1000); // ++

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

// ** SD Memulakan ** // **************************************** *******************************

// pastikan pin pilih cip lalai ditetapkan ke // ++

// output, walaupun anda tidak menggunakannya: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("Memulakan kad SD …")); // ++

// lihat apakah kad itu ada dan boleh diinisialisasi: // ++

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

Serial.println (F ("Kad gagal, atau tidak hadir")); // ++

// jangan buat apa-apa lagi: // ++

kembali; // ++

} lain {// ++

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

} // ++

Tambah baris ini dalam gelung () kosong

siriEvent2 (); // ++ panggil acara bersiri GPS

Tambahkan kod SeriaEvent2

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

// ** Siri GPSEvent ** // **************************************** *********************************

batal siriEvent2 () {// ++

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

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

//Serial.print(c); // tidak senang melihat data GPS mentah // ++

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

newdataGPS = benar; // ++

rehat; // tidak mahu mencetak data baru dengan segera! // ++

} // ++

} // ++

} // ++

Tambah voud dump GPS

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

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

// ** Julat lintang yang sah dalam darjah ialah -90 dan +90. **

// ** Bujur berada dalam julat -180 dan +180 **

// ** menentukan kedudukan timur-barat **

//** "123456789 1234567890" **

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

batal gpsdump (TinyGPS & gps) // ++

{ // ++

int tahun; // ++

bait bulan, hari, jam, minit, kedua, seratus; // ++

umur panjang yang tidak ditandatangani; // ++

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

gps.crack_datetime (& tahun, & bulan, & hari, & jam, // ++

& minit, & kedua, & seratus, & umur); // ++

panjang lat, lon; // ++

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

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

// ** buat rentetan untuk mengumpulkan data untuk log: **

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

String dataString = ""; // ++

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

dataString + = "."; // ++

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

dataString + = ";"; // ++

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

dataString + = "."; // ++

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

dataString + = ";"; // ++

dataString + = Rentetan (static_cast (hari)); // ++

dataString + = "/"; // ++

dataString + = Rentetan (static_cast (bulan)); // ++

dataString + = "/"; // ++

dataString + = Rentetan (tahun); // ++

dataString + = ";"; // ++

dataString + = Rentetan (static_cast (jam)); // ++

dataString + = ":"; // ++

dataString + = Rentetan (static_cast (minit)); // ++

dataString + = ":"; // ++

dataString + = Rentetan (static_cast (kedua)); // ++ // ******************************************** *****************************

// ** JIMAT KE SD ** // *************************************** **********************************

// buka fail. perhatikan bahawa hanya satu fail yang dapat dibuka pada satu masa, **

// jadi anda mesti menutupnya sebelum membuka yang lain. ** // ********************************************** ***************************

Data failFile = SD.open ("gps00.txt", FILE_WRITE); // ++

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

// ** jika fail itu ada, tulislah: **

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

jika (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} lain {// ++

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

} // ++

}

Sekiranya anda ingin memuat turun kod, sila lawati halaman ini.

Disyorkan: