Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Dalam program cadrul acestui s-a dorit realizarea unui sistem de cartografiere a retelelor LoRaWAN.
Ce est LoRa?
LoRa este o tehnologie care pune la dipozitia dezvoltatorilor de solutii inteligent o transmisie de raza lunga si securizata a datelor, cu un consum redus de energi. Retelele publice si private care useaza aceasta tehnologi pot oferi o acoperire estece estece alat ada. Este o tehnologie usor de conectat la orice infrastructura ada. LoRa memanfaatkan radio benzi de frecventa sub-gigahertz fara licenta, cum ar fi: 169 MHz, 433 MHz, 868 MHz (Europa) si 915 MHz (America de Nord).
Ce este LoRaWAN?
LoRaWAN este reteaua pe care LoRa opereaza. LoRaWAN este un protocol de transmisi radio prin care se formeaza retele de obiecte intelligente, cu nivel Media Access Control (Mac) si mendefinisikan protokol untuk komunikasi dan arsitektur sistemului pentru o retea de Internet of Things, dalam waktu komponenele fizice LoRa izin legatura de comunicare jarak jauh lungi.
Cum am ales realizarea acestui proiect?
Prin intermediul unei placute Seeeduino Stalker voi lega un modul radio LoRaWAN ce va fi folosit pe post de
reseptor. (va asculta dupa semnalele ce provin de la gateway urile de LoRaWAN)
Tanggal relevan: koordinat geografi, RSSI, timestamp vor fi salvate dalam format kml pentru a fi utilizate la
mappare di Google Earth.
Langkah 1: Gunakan Komponen
Pentru realizarea acestui proiect am utilizat urmatoarele komponen:
1. Seeeduino Stalker v2.3
2. Modul Konverter USB Serial FT232RL cu Mufa USB Mini
3. Modul GPS MTK-3329
4. Cablu Mini USB
5. Api mama-tata
6. LCD RC2004A-BIW-ESX + MCP23008
7. kartu microSD 2Gb
8. Baterai CR2032
9. LoRa ACW-XB v1.1 ATIM
10. Antena wifi
Spesifikasi yang relevan Seeeduino Stalker v2.3
Mikrokontroler: ATmega328P
Pin I/O: 20
Aktifitas: I2C, UART, SPI
Baud Rate UART: 115200 bps
Conectivitatea dintre acestea adalah realisasi di urmatorul mod:
Pentru a face conexiunea intre placuta si kalkulator se conecteaza placuta la modulul FT232RL, iar apoi cablul USB mini intre cele 2 din urma. (Modulul FT232RL va comunica prin intermediul UART-ului cu Seeeduino).
Seeeduino Stalke - FT232RL
USB5V VCCRX
TXD TXD
RXD RXD
GND GND
DTR DTR
Bateria impreuna cu microSD cardul si modulul LoRa au fost atasate di locurile khusus buat de pe placa
Menghubungkan GPS
Seeeduino Stalker - GPS
GND GND
Pin 7 RXA
Pin 8 TXA
3.3V VDD
Di citirea coordonatele GPS am intampinat probleme referitoare la baud rate. Din cauza faptului ca interfata serial a plautei Seeeduino este imparita cu modulul FT232RL a fost necesara setarea permanen a baud rate-ului GPS-ului la valorea de 38400.
Menghubungkan LCD
Datorita Port Expander-ului cu interfata I2C ce a fost lipit de LCD, conexiunea s-a pengguna realisasi.
Seeeduino Stalker - MCP23008
USB5V 5V
GND GND
SDA SDA
SCL SCL
Langkah 2: Mediu De Dezvoltare
Program untuk realisasi awal dalam program Arduino IDE dengan spesifikasi khusus:
Papan: Arduino Pro atau Pro Mini
Prosesor: ATmega328P (3.3V, 8MHz)
Langkah 3: Afisare Coordonate + Timestamp Pe LCD
Primul pas a fost afisarea coordonatelor GPS impreuna cu Data si Timpul pe LCD pentru a fi utilizate la mapparea di Google Earth.
Am utilizat urmatorul cod: (Mentionez ca este nevoie de importarea unor librarii anume TinyGPS++.h, RTClib.h si LiquidCrystal.h)
Ikan kod:
#sertakan #sertakan
#termasuk
#termasuk
#termasuk
static const int RXPin = 8, TXPin = 7; static const uint32_t GPSBaud = 38400;
RTC_DS3231 rtc;
karakter t[32];
gps kecilGPSplus;
Perangkat LunakSerial ss(RXPin, TXPin);
LiquidCrystal lcd(0);
batalkan pengaturan()
{ lcd.begin(20, 4);
Serial.begin(9600);
Kawat.mulai();
rtc.mulai();
ss.begin(GPSBaud);
penundaan (1000);
lcd.clear();
}
lingkaran kosong()
{
DateTime sekarang = rtc.now();
sprintf(t, "%02d:%02d:%02d %02d/%02d/%02d", sekarang.jam(), sekarang.menit(), sekarang.detik(), sekarang.hari(), sekarang.bulan (), sekarang.tahun());
penundaan (1000);
sementara (ss.available() > 0)
jika (gps.encode(ss.read()))
tampilanInfo();
if (milis() > 5000 && gps.charsProcessed() < 10) {
lcd.print(F("GPS tidak terdeteksi"));
sementara (benar);
}
}
void displayInfo(){ if (gps.location.isValid())
{
Serial.println(gps.location.lat(), 6);
Serial.println(gps.location.lng(), 6);
Serial.println(t);
lcd.setCursor(0, 0);
lcd.print("Lat=");
lcd.print(gps.location.lat(), 6);
lcd.setCursor(0, 1);
lcd.print("Lng=");
lcd.print(gps.location.lng(), 6);
lcd.setCursor(0, 2);
lcd.print(t);
}
lain {
lcd.print("TIDAK VALID");
lcd.clear();
}
if (milis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println(F("GPS tidak terdeteksi: periksa kabel."));
sementara (benar);
}
}
Langkah 4: Salvare Date Pe Kartu MicroSD
Perpustakaan utilizata: SD.h
Pentru salvarea datelor pe kartu microSD am adaugat urmatoarele linii:
File file saya;
batalkan pengaturan()
{
…..
Serial.print("Inisialisasi kartu SD…"); pinMode(10, OUTPUT);
jika (!SD.begin(4))
{ Serial.println("inisialisasi gagal!");
kembali;
}
Serial.println("inisialisasi selesai.");
}
lingkaran kosong()
{
….
while (ss.available() > 0) if (gps.encode(ss.read()))
{ tampilanInfo();
tulisInfo();
}
}
void writeInfo(){ jika (gps.location.isValid())
{ myFile = SD.open("testf.txt", FILE_WRITE);
jika (file saya) {
Serial.print("Menulis ke testf.txt…");
myFile.println(gps.location.lat(), 6);
myFile.println(gps.location.lng(), 6);
myFile.close(); }
}
lain {
myFile = SD.open("testf.txt", FILE_WRITE);
jika (file saya) {
Serial.print("Tidak Valid");
myFile.close(); }
}
}
Pasul urmator presupune transofmarea fisierului.txt di.kml si incarcarea acestuia di Google Earth.