İçindekiler:
- Adım 1: Baz İstasyonu İnşa Etme
- 2. Adım: İlk Test
- 3. Adım: Arayüzü Oluşturun
- 4. Adım: Gösterge Ekle
- Adım 5: Gauge GPS'i sürükleyin ve OpenStreetMap'i ekleyin
- Adım 6: GPS Göstergesini Sürükleyin ve Tablo Günlüğü Ekleyin
- 7. Adım: Kodu Alın
- Adım 8: Arduino IDE
- Adım 9: Kodlama Detayları
Video: Arduino Projesi: GPS Takip Çözümü için LoRa Modülü RF1276 Test Aralığı: 9 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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
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
· Ş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
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
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
· 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
· 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
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
· 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:
5'i 1 Arada Arduino Robotu - Beni Takip Et - Satır Takip - sumo - Çizim - Engelden Kaçınma: 6 Adım
5'i 1 Arada Arduino Robotu | Beni Takip Et | Satır Takip | sumo | Çizim | Engelden Kaçınma: Bu robot kontrol panosu, bir ATmega328P mikro denetleyici ve bir L293D motor sürücüsü içerir. Elbette bir Arduino Uno kartından farkı yok ama motoru sürmek için başka bir kalkana ihtiyaç duymadığı için daha kullanışlı! Zıplamaktan muaftır
Küçük Mağazalar İçin Takip ve Takip: 9 Adım (Resimli)
Küçük Dükkanlar için Takip ve Takip: Kısa mesafeli teslimatlar için e-bisiklet veya e-scooter üzerine monte edilmesi gereken küçük dükkanlar için yapılmış bir sistemdir, örneğin hamur işleri teslim etmek isteyen bir fırın. Track and Trace ne anlama geliyor?Track and Trace ca tarafından kullanılan bir sistemdir
Bisikletçiler için Takip Modülü: 5 Adım
Bisikletçiler için Takip Modülü: Bisikletçiler için olan bu takip modülü, bir yarışta meydana gelen kazaları otomatik olarak algılayan ve dokunmatik sensöre dokunarak mekanik arızayı tespit eden bir modüldür. Bu olaylardan biri gerçekleştiğinde, modül olayı ahududu üzerindeki bir veri tabanına gönderir
E32-433T LoRa Modülü Eğitimi - E32 Modülü için DIY Breakout Board: 6 Adım
E32-433T LoRa Modülü Eğitimi | E32 Modülü için DIY Breakout Board: Hey, naber beyler! Akarsh burada CETech'ten. Bu projem, yüksek güçlü 1 watt'lık bir alıcı-verici modülü olan eByte'den E32 LoRa modülünün çalışmasını anlamak için daha çok bir öğrenme eğrisi. Çalışmayı anladıktan sonra, tasarımım var
XAMP Çözümü ile Kombinasyonda Zaman Devamlılığı için Parmak İzi Sensörünü Kullanma: 6 Adım (Resimlerle)
Devamlılık için Parmak İzi Sensörünü XAMP Çözümüyle Kombine Olarak Kullanmak: Bir okul projesi için öğrencilerin devamını nasıl takip edeceğimiz konusunda bir çözüm arıyorduk. Öğrencilerimizin çoğu geç geliyor. Varlıklarını kontrol etmek sıkıcı bir iş. Öte yandan, çok fazla tartışma var çünkü öğrenciler sıklıkla şöyle diyecekler