Mundarija:

Arduino loyihasi: GPS -ni kuzatish uchun RF1276 modulli sinov diapazoni: 9 qadam (rasmlar bilan)
Arduino loyihasi: GPS -ni kuzatish uchun RF1276 modulli sinov diapazoni: 9 qadam (rasmlar bilan)

Video: Arduino loyihasi: GPS -ni kuzatish uchun RF1276 modulli sinov diapazoni: 9 qadam (rasmlar bilan)

Video: Arduino loyihasi: GPS -ni kuzatish uchun RF1276 modulli sinov diapazoni: 9 qadam (rasmlar bilan)
Video: Amazing arduino project 2024, Iyul
Anonim
Arduino loyihasi: GPSni kuzatish echimi uchun RF1276 modulli LoRa moduli
Arduino loyihasi: GPSni kuzatish echimi uchun RF1276 modulli LoRa moduli

Ulanish: USB - ketma -ket

Kerak: Chrome brauzeri

Kerak: 1 X Arduino Mega

Ehtiyoj: 1 ta GPS

Kerak: 1 X SD karta

Ehtiyoj: 2 X LoRa modem RF1276

Funktsiya: Arduino GPS qiymatini asosiy bazaga yuboradi-Ma'lumotlar serverining asosiy ma'lumotlar bazasi Lora modulida saqlanadi: APPCONWIRELESS LoRa-dan olingan RF1276 ultra uzoq masofali ma'lumotlarni uzatish tezligini juda past tezlikda yuborish imkonini beruvchi yangi, xususiy va keng spektrli modulyatsiya usuli. uzoq masofalar. Ma'lumot uzatish tezligining pastligi (sekundiga bir necha baytgacha) va LoRa modulyatsiyasi qabul qiluvchilarning sezuvchanligini pasayishiga olib keladi, bu testda 10 km dan ortiq degan ma'noni anglatadi.

1 -qadam: Baza stantsiyasini qurish

Qurilish tayanch stantsiyasi
Qurilish tayanch stantsiyasi
Bino tayanch stantsiyasi
Bino tayanch stantsiyasi

Kompyuter kengligi Internetga ulanish va USB portiga ulangan LoRa modem.

Arduino avtomobillar to'plami ·

Metrik quti

Anduino Mega 2 -ketma -ketlikni GPS qabul qilgichga, 1 -seriyali esa LoRa modemiga ulangan. Ma'lumotlarni saqlash uchun SD -karta ishlatiladi.

2 -qadam: Birinchi sinov

Birinchi sinov
Birinchi sinov

· 10.6 km. Shahar markazlari, galereyalar va qirg'oq bo'ylab ko'chalarda

Qabul qilish /uzatish nisbati 321 /500TX nuqtani tashkil etdi

RX nuqtasi

3 -qadam: interfeys yaratish

Interfeys yaratish
Interfeys yaratish
Interfeys yaratish
Interfeys yaratish

1 - yangi LoRa loyihasini o'rnatish

Loyiha konfiguratsiyasini ochish uchun tishli belgini bosing

4 -qadam: o'lchagichni qo'shing

Ko'rsatkichni qo'shing
Ko'rsatkichni qo'shing

2) o'lchagich slayderini oching.

· 3) GPS -ga o'ting.

· 4) birini stolga qo'shing.

5 -qadam: GPS o'lchagichini torting va OpenStreetMap -ni qo'shing

GPS -ni torting va OpenStreetMap -ni qo'shing
GPS -ni torting va OpenStreetMap -ni qo'shing
GPS -ni torting va OpenStreetMap -ni qo'shing
GPS -ni torting va OpenStreetMap -ni qo'shing

· 5) OpenStreetMap xaritasini stolga qo'shing

Belgilangan xaritada GPS komponentini sudrab olib, OpenStreet xaritasi yaratiladi.

Interfeys yaratish

· 6) Xaritaning yangilanishini o'zgartirish

Xaritani yangilash vaqtini 5000 dan 10000 gacha o'zgartiring

6 -qadam: GPS o'lchagichini torting va jadvallar jurnalini qo'shing

GPS o'lchagichini torting va jadval jurnalini qo'shing
GPS o'lchagichini torting va jadval jurnalini qo'shing

· 7) Jadval jurnalining o'lchagichini qo'shing.

O'lchagichni GPS belgisi jadvali ustidan siljitish orqali o'lchagichlar jadvali yaratiladi

· 8) Jadvallar jurnalining yangilanishini o'zgartirish. Xaritani yangilash vaqtini 5000 dan 10000 gacha o'zgartiring

Ko'rsatkichlarning joylashishini sozlang

· 9) tortish o'lchagichlari o'lchagichlarning holatini ekran bo'ylab siljitish orqali to'g'rilaydi.

· 10) Loyihani saqlash

7 -qadam: Kodni oling

Kodni olish
Kodni olish

10) Kod konteynerini faollashtiring

O'ng yuqori tugmachani bosing, barchasini tanlang va asosiy kodni nusxalash.

8 -qadam: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Arduino IDE -ga kodni joylashtiring

· 12) Kodni tahrirlash Ushbu qatorni ta'rifga qo'shing

9 -qadam: Tafsilotlarni kodlash

Bu qatorni ta'rifga qo'shing

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

// ** KUTUBXONA ** // *************************************** ********************************

#include // ++ GPS kutubxonasi

#include // ++ SPI kutubxonasi #include

// ++ SD kutubxonasi //

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

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

// * SD -karta SPI avtobusiga quyidagicha biriktirilgan:

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

// (CS pinini o'zgartirish mumkin) va pin 10 (SS) chiqish bo'lishi kerak

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

// (CS pinini o'zgartirish mumkin) va #52 pin (SS) chiqish bo'lishi kerak

// ** Leonardo: ICSP sarlavhasi orqali apparat SPI -ga ulaning

// 4 -pin bu erda boshqa Arduino misollari bilan mos kelish uchun ishlatiladi const int chipSelect = 53;

// ++ SD -pin tanlagichi

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

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

TinyGPS GPS; // Serialda ++ GPS2

bo'sh gpsdump (TinyGPS & gps); // ++

bool newdataGPS = noto'g'ri; // ++

Ushbu qatorni sozlamalarga qo'shing ()

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

// ** GPS ketma -ket sozlash ** // ************************************* ********************************

Seriya2.begin (9600); // ++

kechikish (1000); // ++

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

// ** SD ishga tushirilmoqda ** // ************************************** *******************************

// standart chip tanlash pimi // ++ ga o'rnatilganligiga ishonch hosil qiling

// chiqish, agar siz uni ishlatmasangiz ham: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("SD -karta ishga tushirilmoqda …")); // ++

// kartaning mavjudligini va uni ishga tushirish mumkinligini ko'ring: // ++

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

Serial.println (F ("Karta ishlamay qoldi yoki mavjud emas")); // ++

// boshqa hech narsa qilma: // ++

qaytish; // ++

} boshqa {// ++

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

} // ++

Bu satrlarni loop () void ga qo'shing

serialEvent2 (); // ++ qo'ng'iroq GPS ketma -ket voqea

SeriaEvent2 kodini qo'shing

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

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

bekor serialEvent2 () {// ++

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

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

//Serial.print(c); // xom GPS ma'lumotlarini ko'rish uchun izoh bermang // ++

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

newdataGPS = haqiqiy; // ++

tanaffus; // darhol yangi ma'lumotlarni chop etishga izoh bermang! // ++

} // ++

} // ++

} // ++

Ovozli GPS dampini qo'shing

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

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

// ** Kengliklarning graduslar bo'yicha amaldagi diapazoni -90 va +90. **

// ** Uzunlik -180 va +180 oralig'ida **

// ** sharq-g'arb pozitsiyasini ko'rsatish **

//** "123456789 1234567890" **

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

bo'sh gpsdump (TinyGPS va gps) // ++

{ // ++

int yil; // ++

bayt oy, kun, soat, daqiqa, soniya, yuzinchi; // ++

imzosiz uzoq yosh; // ++

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

gps.crack_datetime (va yil, oy, kun va soat, // ++

& daqiqa, & sekund, & yuzdan, & yosh); // ++

uzun lat, uzun; // ++

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

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

// ** jurnalga ma'lumotlarni yig'ish uchun qator yarating: **

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

String dataString = ""; // ++

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

dataString += "."; // ++

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

dataString += ";"; // ++

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

dataString += "."; // ++

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

dataString += ";"; // ++

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

dataString += "/"; // ++

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

dataString += "/"; // ++

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

dataString += ";"; // ++

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

dataString += ":"; // ++

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

dataString += ":"; // ++

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

// ** SD -ga SAVE ** // ************************************* **********************************

// faylni oching. E'tibor bering, bir vaqtning o'zida faqat bitta fayl ochilishi mumkin, **

// shuning uchun boshqasini ochishdan oldin uni yopishingiz kerak. ** // ******************************************** ***************************

Fayl ma'lumotlariFile = SD.open ("gps00.txt", FILE_WRITE); // ++

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

// ** agar fayl mavjud bo'lsa, unga yozing: **

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

if (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} boshqa {// ++

Serial.println (F ("SD xatosi xatosi")); // ++

} // ++

}

Agar siz kodni yuklab olishni xohlasangiz, ushbu sahifaga tashrif buyuring.

Tavsiya: