İçindekiler:

Arduino Projesi: GPS Takip Çözümü için LoRa Modülü RF1276 Test Aralığı: 9 Adım (Resimlerle)
Arduino Projesi: GPS Takip Çözümü için LoRa Modülü RF1276 Test Aralığı: 9 Adım (Resimlerle)

Video: Arduino Projesi: GPS Takip Çözümü için LoRa Modülü RF1276 Test Aralığı: 9 Adım (Resimlerle)

Video: Arduino Projesi: GPS Takip Çözümü için LoRa Modülü RF1276 Test Aralığı: 9 Adım (Resimlerle)
Video: LoRa ile 5 Km'den Röle Kontrolü | Kendin Yap | Arduino | Fixaj 2024, Temmuz
Anonim
Arduino Projesi: GPS İzleme Çözümü için Test Aralığı LoRa Modülü RF1276
Arduino Projesi: GPS İzleme Çözümü için Test Aralığı LoRa Modülü RF1276

Bağlantı: USB - Seri

İhtiyaç: Chrome Tarayıcı

İhtiyaç: 1 Adet Arduino Mega

İhtiyaç: 1 X GPS

İhtiyaç: 1 X SD kart

İhtiyaç: 2 X LoRa Modem RF1276

İşlev: Arduino Ana üsse GPS değeri gönder - Dataino Sunucusunda ana taban veri deposu Lora Modülü: APPCONWIRELESS LoRa'dan ultra uzun menzilli RF1276, son derece düşük veri hızlarında son derece düşük veri hızlarına veri göndermeye izin veren yeni, özel ve yayılmış spektrumlu bir modülasyon tekniğidir. uzun menziller. Düşük veri hızı (saniyede birkaç bayta kadar) ve LoRa modülasyonu, çok düşük alıcı hassasiyetine yol açar, bu testte 10 km'den fazla anlamına gelir.

Adım 1: Baz İstasyonu İnşa Etme

Baz İstasyonu Binası
Baz İstasyonu Binası
Baz İstasyonu Binası
Baz İstasyonu Binası

Bilgisayar genişliğinde internet bağlantısı ve USB portuna bağlı bir LoRa modem.

Arduino Araç Kiti ·

metrik kutusu

Anduino Mega, seri 2'ye GPS alıcısına ve Seri 1'den LoRa modeme bağlanır. Depolama verileri için bir SD kart kullanılır.

2. Adım: İlk Test

İlk Test
İlk Test

· Şehir merkezlerinden, galerilerden ve döngülerle yapılmış sahil boyunca 10.6 Km.

Alım/iletim oranı 321/500TX noktası olmuştur

RX noktası

3. Adım: Arayüzü Oluşturun

Arayüz Oluşturun
Arayüz Oluşturun
Arayüz Oluşturun
Arayüz Oluşturun

1 - Yeni bir proje LoRa kurun

Proje yapılandırmasını açmak için simge çarkına basın

4. Adım: Gösterge Ekle

Gösterge Ekle
Gösterge Ekle

2) Gösterge kaydırıcısını açın.

· 3) GPS'e ilerleyin.

· 4) Masaya bir tane ekleyin.

Adım 5: Gauge GPS'i sürükleyin ve OpenStreetMap'i ekleyin

Gauge GPS'i sürükleyin ve OpenStreetMap'i ekleyin
Gauge GPS'i sürükleyin ve OpenStreetMap'i ekleyin
Gauge GPS'i sürükleyin ve OpenStreetMap'i ekleyin
Gauge GPS'i sürükleyin ve OpenStreetMap'i ekleyin

· 5) OpenStreetMap haritasını masaya ekleyin

GPS bileşenini simge haritası üzerinde sürükleyerek OpenStreet haritası oluşturulur.

Arayüz Oluşturun

· 6) Harita yenilemeyi değiştir

Harita yenileme süresini 5000'den 10000'e değiştirin

Adım 6: GPS Göstergesini Sürükleyin ve Tablo Günlüğü Ekleyin

GPS Göstergesini Sürükle ve Tablo Günlüğü Ekle
GPS Göstergesini Sürükle ve Tablo Günlüğü Ekle

· 7) Bir Tablo Günlüğü göstergesi ekleyin.

Göstergeyi GPS simge tablosunun üzerine sürükleyerek gösterge tablosu günlüğü oluşturulur

· 8) Tablo günlüğü yenilemesini değiştirin. Harita yenileme süresini 5000'den 10000'e değiştirin

Göstergelerin konumunu ayarlayın

· 9) Sürükleme göstergeleri, göstergeleri ekran boyunca sürükleyerek konumlarını ayarlar.

· 10) Projeyi kaydet

7. Adım: Kodu Alın

Kodu Al
Kodu Al

10) Kod kapsayıcısını etkinleştirin

Sağ üstteki düğme, tümünü seçin ve temel kodu kopyalayın.

Adım 8: Arduino IDE

Arduino IDE'si
Arduino IDE'si

· 11) Arduino IDE'ye kod yapıştırın

· 12) Kodu düzenle Tanıma bu satırı ekleyin

Adım 9: Kodlama Detayları

Tanıma bu satırı ekle

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

//** KÜTÜPHANE ** //***************************************** ****************************************

#include // ++ GPS kitaplığı

#include // ++ SPI kitaplığı #include

// ++ SD kitaplığı//

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

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

// * SPI veri yoluna bağlı SD kart aşağıdaki gibi:

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

// (CS pini değiştirilebilir) ve pin #10 (SS) çıkış olmalı

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

// (CS pini değiştirilebilir) ve pin #52 (SS) çıkış olmalı

// ** Leonardo: ICSP başlığı aracılığıyla donanım SPI'sine bağlanın

// Diğer Arduino örnekleriyle tutarlılık için burada kullanılan Pin 4 const int chipSelect = 53;

// ++ SD pin seçici

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

//** KÜRESEL KONUMLAMA SİSTEMİ ** //***************************************** ****************************************

TinyGPS gps; // ++ Seri2'de GPS

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

bool yeniveriGPS = yanlış; // ++

Bu satırı setup() dosyasına ekleyin

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

//** GPS seri kurulumu ** //******************************************* ****************************************

Seri2.başlangıç(9600); // ++

gecikme(1000); // ++

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

//** SD Başlatılıyor ** //********************************************* ************************************

// varsayılan çip seçme pininin // ++ olarak ayarlandığından emin olun

// kullanmasanız bile çıktı: // ++

pinMode(SS, ÇIKIŞ); // ++

Serial.println(F("SD kart başlatılıyor…"); // ++

// kartın mevcut olup olmadığına ve başlatılıp başlatılamayacağına bakın: // ++

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

Serial.println(F("Kart arızalı veya mevcut değil")); // ++

// başka bir şey yapma: // ++

dönüş; // ++

} başka { // ++

Serial.println(F("SD kart TAMAM")); // ++

} // ++

Bu satırları loop() void'e ekleyin

seriEvent2(); // ++ GPS seri olayını çağır

SeriaEvent2 kodunu ekleyin

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

//** GPS seriOlay ** //********************************************* ****************************************

void serialEvent2() { // ++

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

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

//Seri.print(c); // ham GPS verilerini görmek için yorum yapma // ++

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

yeniveriGPS = doğru; // ++

kırmak; // yeni verileri hemen yazdırmak için açıklamayı kaldırın! // ++

} // ++

} // ++

} // ++

GPS dökümü voud ekleyin

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

//** gps dökümü ** //********************************************* ****************************************

//** Derece cinsinden geçerli enlem aralığı -90 ve +90'dır. **

//** Boylam -180 ve +180 aralığındadır **

//** doğu-batı konumunun belirtilmesi **

//** "123456789 1234567890" **

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

void gpsdump(TinyGPS ve gps) // ++

{ // ++

int yıl; // ++

bayt ay, gün, saat, dakika, saniye, yüzde birler; // ++

imzasız uzun yaş; // ++

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

gps.crack_datetime(&yıl, &ay, &gün, &saat, // ++

&dakika, &saniye, &yüzdeler, &yaş); // ++

uzun lat, lon; // ++

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

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

// ** verileri günlüğe kaydetmek için bir dize oluşturun: **

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

String dataString = ""; // ++

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

dataString += "."; // ++

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

dataString += ";"; // ++

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

dataString += "."; // ++

dataString += uzun - (boy / 100000) * 100000; // ++

dataString += ";"; // ++

dataString += String(static_cast(gün)); // ++

dataString += "/"; // ++

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

dataString += "/"; // ++

dataString += String(yıl); // ++

dataString += ";"; // ++

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

dataString += ":"; // ++

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

dataString += ":"; // ++

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

//** SD'YE KAYDET ** //******************************************** *****************************************

// dosyayı aç. aynı anda yalnızca bir dosyanın açılabileceğini unutmayın, **

// yani diğerini açmadan önce bunu kapatmalısın. ** //******************************************************* ******************************

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

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

// ** dosya mevcutsa, ona şunu yazın: **

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

if (veriDosyası) { // ++

dataFile.println(dataString); // ++

dataFile.close(); // ++

} başka { // ++

Serial.println(F("HATA SD Yazma")); // ++

} // ++

}

Kodu indirmek istiyorsanız, lütfen bu sayfayı ziyaret edin.

Önerilen: