Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Sa cadrul acestui program s-a dorit realizarea unui sistem de cartografiere a retelelor LoRaWAN.
Ce este LoRa?
LoRa este o tehnologie care pune la dipozitia dezvoltatorilor de solutii inteligente o transmisie de raza umalis si securizata a datelor, cu un konsumo redus de energie. Retelele publice ng private care utilizeaza aceasta tehnologie pot oferi o acoperire care este maiel decel cea umiiral. Este o tehnologie usor de conectat la orice imprastraktura na mayroon. 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. Ang LoRaWAN ay isang protocol ng transmisii radio prin care se formeaza retele de obiecte inteligente, cu nivel Media Access Control (Mac) na tumutukoy sa proteksyon ng comunicare si arhitectura sistemului pentru o retea de Internet of Things, sa timp ce componentele fizice LoRa permit legatura de comunicare pe distanţe lungi.
Cum am ales realizarea acestui proyect?
Prin intermediul unei placute Seeeduino Stalker voi lega un modul radio LoRaWAN ce va fi folosit pe post de
receptor (va asculta dupa semnalele ce provin de la gateway urile de LoRaWAN)
May kaugnayan sa datele: mag-coordinate ng geografice, RSSI, timestamp at magligtas sa format na kml pentru a fi utilizate la
mappare sa Google Earth.
Hakbang 1: Gumamit ng Componente
Pentru realizarea acestui proyect am utilizat urmatoarele bahagi:
1. Seeeduino Stalker v2.3
2. Modul Convertor USB Serial FT232RL cu Mufa USB Mini
3. Modul GPS MTK-3329
4. Cablu Mini USB
5. Sunog mama-tata
6. LCD RC2004A-BIW-ESX + MCP23008
7. microSD card 2Gb
8. Baterie CR2032
9. LoRa ACW-XB v1.1 ATIM
10. Antena wifi
Nauugnay sa Speficatii Seeeduino Stalker v2.3
Microcontroller: ATmega328P
I / O mga pin: 20
Conectivitate: I2C, UART, SPI
UART Baud Rate: 115200 bps
Conectivitatea dintre acestea s-a realizat sa urmatorul mod:
Pentru a face conexiunea intre placuta si calculator 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 in locurile special create de pe placa
Conectivitate GPS
Seeeduino Stalker - GPS
GND ↔ GND
Pin 7 ↔ RXA
Pin 8 ↔ TXA
3.3V ↔ VDD
Sa citirea coordonatele GPS am intampinat probleme referitoare la baud rate. Din cauza faptului ca interfata seriala a placutei Seeeduino este magbigayita cu modulul FT232RL a fost necesara setarea permanenta a baud rate-ului GPS-ului la valorea de 38400.
Conectivitate 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
Hakbang 2: Mediu De Dezvoltare
Programul a fost realizat sa programul Arduino IDE sa iyong detalye:
Lupon: Arduino Pro o Pro Mini
Proseso: ATmega328P (3.3V, 8MHz)
Hakbang 3: Afisare Coordonate + Timestamp Pe LCD
Una sa isang fost afisarea coordonatelor GPS impreuna cu Data si Timpul pe LCD pentru a fi utilizate la mapparea sa Google Earth.
Am urizat urmatorul cod: (Mentionez ca este nevoie de importarea unor librarii si anume TinyGPS ++.h, RTClib.h si LiquidCrystal.h)
Cod:
# isama ang # isama
# isama
# isama
# isama
static const int RXPin = 8, TXPin = 7; static const uint32_t GPSBaud = 38400;
RTC_DS3231 rtc;
char t [32];
Mga TinyGPSPlus gps;
SoftwareSerial ss (RXPin, TXPin);
LiquidCrystal lcd (0);
walang bisa ang pag-setup ()
{lcd.begin (20, 4);
Serial.begin (9600);
Wire.begin ();
rtc.begin ();
ss.begin (GPSBaud);
pagkaantala (1000);
lcd.clear ();
}
walang bisa loop ()
{
DateTime ngayon = rtc.now ();
sprintf (t, "% 02d:% 02d:% 02d% 02d /% 02d /% 02d", now.hour (), now.minute (), now.second (), now.day (), now.month (), ngayon. taon ());
pagkaantala (1000);
habang (ss.available ()> 0)
kung (gps.encode (ss.read ()))
displayInfo ();
kung (millis ()> 5000 && gps.charsProcessed () <10) {
lcd.print (F ("Walang nakitang GPS"));
habang (totoo);
}
}
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);
}
iba pa {
lcd.print ("INVALID");
lcd.clear ();
}
kung (millis ()> 5000 && gps.charsProcessed () <10)
{
Serial.println (F ("Walang napansin na GPS: suriin ang mga kable."));
habang (totoo);
}
}
Hakbang 4: Petsa ng Salvare Pe MicroSD Card
Pag-aaral ng librarie: SD.h
Pentru salvarea datelor pe microSD card am adaugat urmatoarele linii:
I-file ang myFile;
walang bisa ang pag-setup ()
{
…..
Serial.print ("Initializing SD card…"); pinMode (10, OUTPUT);
kung (! SD.begin (4))
{Serial.println ("Nabigo ang pagsisimula)!");
bumalik;
}
Serial.println ("tapos na ang pagsisimula.");
}
walang bisa loop ()
{
….
habang (ss.available ()> 0) kung (gps.encode (ss.read ()))
{displayInfo ();
isulatInfo ();
}
}
walang bisa ang writeInfo () {kung (gps.location.isValid ())
{myFile = SD.open ("testf.txt", FILE_WRITE);
kung (myFile) {
Serial.print ("Pagsusulat sa testf.txt …");
myFile.println (gps.location.lat (), 6);
myFile.println (gps.location.lng (), 6);
myFile.close (); }
}
iba pa {
myFile = SD.open ("testf.txt", FILE_WRITE);
kung (myFile) {
Serial.print ("Di-wasto");
myFile.close (); }
}
}
Pasul urmator presupune transofmarea fisierului.txt in.kml si incarcarea acestuia in Google Earth.