Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
I cadrul acestui program s-a dorit realizarea unui sistem de cartographyere a retelelor LoRaWAN.
Ce este LoRa?
LoRa este o tehnologie care pune la dipozitia dezvoltatorilor de solutii inteligente o transmisie de raza lunga si securizata a datelor, cu un consum redused the energie. Retelele publice si private care utilizeaza aceasta tehnologie pot oferi o acoperire care este mai mare decat ceaelel existente. Este o tehnologie usor de conectat la orice infrastructura existenta. LoRa utilizeaza benzi de frecventa radio 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 of transmisii radio prin care se formeaza retele de obiecte inteligente, cu nivel Media Access Control (Mac) si defineste protocolul de comunicare si arhitectura sistemului pentru or retea the Internet of Things, in timp ce componentele fizice LoRa allow legatura de comunicare pe distanţe 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)
Data relevant: coordonate geografice, RSSI, timestempel vor fi salve in format kml pentru a fi utilize la
kartlegging i Google Earth.
Trinn 1: Komponentutnyttelse
Pentru realizarea acestui proiect am utilizat urmatoarele componente:
1. Seeeduino Stalker v2.3
2. Modulomformer USB Serial FT232RL med Mufa USB Mini
3. Modul GPS MTK-3329
4. Cablu Mini USB
5. Brann mama-tata
6. LCD RC2004A-BIW-ESX + MCP23008
7. microSD -kort 2 Gb
8. Baterie CR2032
9. LoRa ACW-XB v1.1 ATIM
10. Antena wifi
Spesifikk relevant Seeeduino Stalker v2.3
Mikrokontroller: ATmega328P
I/O -pinner: 20
Koble til: I2C, UART, SPI
UART Baud Rate: 115200 bps
Conectivitatea dintre acestea s-a realizat in urmatorul mod:
Du kan også koble til en egen kalkulator for å få en FT232RL -modul, en USB -mini -kabel som kan brukes 2 ganger. (Modul FT232RL er en kommunikasjon mellom 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 in locurile special create de pe placa
Koble til GPS
Seeeduino Stalker - GPS
GND ↔ GND
Pin 7, RXA
Pin 8, TXA
3.3V, VDD
I citirea coordonatele GPS har jeg flere problemer som refererer til baudhastigheten. Din cauza faptului ca interfata seriala a placutei Seeeduino este impartita cu modulul FT232RL a fost necesara setarea permanenta a baud rate-ului GPS-ului la valorea de 38400.
Koble til LCD
Datorita Port Expander-ului cu interfata I2C ce a fost lipit de LCD, conexiunea s-a realizat usor.
Seeeduino Stalker - MCP23008
USB5V, 5V
GND ↔ GND
SDA ↔ SDA
SCL ↔ SCL
Trinn 2: Mediu De Dezvoltare
Program for en realisering av programmer Arduino IDE for urmatoarele specificatiii:
Brett: Arduino Pro eller Pro Mini
Prosessor: ATmega328P (3.3V, 8MHz)
Trinn 3: Afisare Coordonate + Timestamp Pe LCD
Primul pas a fost afisarea coordonatelor GPS impreuna cu Data and Timpul pe LCD pentru a fi utilize the mapparea in Google Earth.
Jeg bruker urmatorul torsk: (Mentionez ca este nevoie de importarea unor librarii si anume TinyGPS ++.h, RTClib.h si LiquidCrystal.h)
Torsk:
#include #include
#inkludere
#inkludere
#inkludere
statisk const int RXPin = 8, TXPin = 7; statisk const uint32_t GPSBaud = 38400;
RTC_DS3231 rtc;
røyke t [32];
TinyGPSPlus gps;
SoftwareSerial ss (RXPin, TXPin);
LiquidCrystal lcd (0);
ugyldig oppsett ()
{lcd.begin (20, 4);
Serial.begin (9600);
Wire.begin ();
rtc.begin ();
ss.begin (GPSBaud);
forsinkelse (1000);
lcd.clear ();
}
hulrom ()
{
DateTime nå = rtc.now ();
sprintf (t, "%02d:%02d:%02d%02d/%02d/%02d", nå. time (), nå. minutt (), nå. sekund (), nå. dag (), nå. måned (), nå. år ());
forsinkelse (1000);
mens (ss.available ()> 0)
if (gps.encode (ss.read ()))
displayInfo ();
if (millis ()> 5000 && gps.charsProcessed () <10) {
lcd.print (F ("Ingen GPS oppdaget"));
mens (sant);
}
}
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);
}
annet {
lcd.print ("ugyldig");
lcd.clear ();
}
hvis (millis ()> 5000 && gps.charsProcessed () <10)
{
Serial.println (F ("Ingen GPS oppdaget: sjekk ledninger."));
mens (sant);
}
}
Trinn 4: Salvare Date Pe MicroSD -kort
Librarie utilizata: SD.h
Pentru salvarea datelor pe microSD card am adaugat urmatoarele linii:
Fil myFile;
ugyldig oppsett ()
{
…..
Serial.print ("Initialiserer SD -kort …"); pinMode (10, OUTPUT);
hvis (! SD.begynn (4))
{Serial.println ("initialisering mislyktes!");
komme tilbake;
}
Serial.println ("initialisering utført.");
}
hulrom ()
{
….
mens (ss.available ()> 0) if (gps.encode (ss.read ())))
{displayInfo ();
writeInfo ();
}
}
void writeInfo () {if (gps.location.isValid ())
{myFile = SD.open ("testf.txt", FILE_WRITE);
hvis (myFile) {
Serial.print ("Skriver til testf.txt …");
myFile.println (gps.location.lat (), 6);
myFile.println (gps.location.lng (), 6);
myFile.close (); }
}
annet {
myFile = SD.open ("testf.txt", FILE_WRITE);
hvis (myFile) {
Serial.print ("Ugyldig");
myFile.close (); }
}
}
Pasul urmator presupune transofmarea fisierului.txt in.kml si incarcarea acestuia in Google Earth.