Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
En cadrul acestui program s-a dorit realizarea unui system de cartografiere 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 redus de energie. 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 de transmisii radio prin care se formeaza retele de obiecte inteligente, cu nivel Media Access Control (Mac) si definete protocolul de comunicare si arhitectura sistemului pentru o retea de Internet of Things, in timp ce componentele fizice LoRa permit 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
receptor. (va asculta dupa semnalele ce provin de la gateway urile de LoRaWAN)
Fecha relevante: coordonate geografice, RSSI, timestamp vor fi salvate in format kml pentru a fi utilizar la
mappare en Google Earth.
Paso 1: Componente Utilizate
Pentru realizarea acestui proiect am utilizat urmatoarele componente:
1. Seeeduino Stalker v2.3
2. Modul Convertor USB Serial FT232RL cu Mufa USB Mini
3. Módulo GPS MTK-3329
4. Cablu Mini USB
5. Fuego mama-tata
6. LCD RC2004A-BIW-ESX + MCP23008
7. tarjeta microSD de 2 Gb
8. Batería CR2032
9. LoRa ACW-XB v1.1 ATIM
10. Antena wifi
Speficatii relevante Seeeduino Stalker v2.3
Microcontrolador: ATmega328P
Pines de E / S: 20
Conectivitate: I2C, UART, SPI
Tasa de baudios UART: 115200 bps
Conectivitatea dintre acestea s-a realizat en 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,3 V ↔ VDD
En citirea coordonatele GPS am intampinat problem referitoare la baud rate. 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.
Conectivitate LCD
Datorita Port Expander-ului cu interface I2C ce a fost lipit de LCD, conexiunea s-a realizat usor.
Seeeduino Stalker - MCP23008
USB5V ↔ 5V
GND ↔ GND
SDA ↔ SDA
SCL ↔ SCL
Paso 2: Mediu De Dezvoltare
Programul a fost realizat in programul Arduino IDE cu urmatoarele specificatii:
Placa: Arduino Pro o Pro Mini
Procesador: ATmega328P (3.3V, 8MHz)
Paso 3: Afisare Coordonate + Timestamp Pe LCD
Primul pas a fost afisarea coordonatelor GPS impreuna cu Data si Timpul pe LCD pentru a fi utilizar la mapparea en Google Earth.
Am utilizat urmatorul cod: (Mentionez ca este nevoie de importarea unor librarii si anume TinyGPS ++.h, RTClib.h si LiquidCrystal.h)
Bacalao:
#include #incluya
#incluir
#incluir
#incluir
static const int RXPin = 8, TXPin = 7; static const uint32_t GPSBaud = 38400;
RTC_DS3231 rtc;
char t [32];
TinyGPSPlus gps;
SoftwareSerial ss (RXPin, TXPin);
LiquidCrystal lcd (0);
configuración vacía ()
{lcd.begin (20, 4);
Serial.begin (9600);
Wire.begin ();
rtc.begin ();
ss.begin (GPSBaud);
retraso (1000);
lcd.clear ();
}
bucle vacío ()
{
DateTime ahora = rtc.now ();
sprintf (t, "% 02d:% 02d:% 02d% 02d /% 02d /% 02d", ahora.hora (), ahora.minuto (), ahora.segundo (), ahora.día (), ahora.mes (), ahora.año ());
retraso (1000);
while (ss.available ()> 0)
si (gps.encode (ss.read ()))
displayInfo ();
if (millis ()> 5000 && gps.charsProcessed () <10) {
lcd.print (F ("No se detectó GPS"));
mientras (verdadero);
}
}
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);
}
demás {
lcd.print ("NO VÁLIDO");
lcd.clear ();
}
if (milis ()> 5000 && gps.charsProcessed () <10)
{
Serial.println (F ("No se detectó GPS: verifique el cableado."));
mientras (verdadero);
}
}
Paso 4: Tarjeta MicroSD Salvare Date Pe
Biblioteca utilizata: SD.h
Pentru salvarea datelor pe tarjeta microSD am adaugat urmatoarele linii:
Archivo myFile;
configuración vacía ()
{
…..
Serial.print ("Inicializando tarjeta SD …"); pinMode (10, SALIDA);
si (! SD.begin (4))
{Serial.println ("¡la inicialización falló!");
regreso;
}
Serial.println ("inicialización realizada");
}
bucle vacío ()
{
….
while (ss.available ()> 0) if (gps.encode (ss.read ()))
{displayInfo ();
writeInfo ();
}
}
void writeInfo () {if (gps.location.isValid ())
{myFile = SD.open ("testf.txt", FILE_WRITE);
if (myFile) {
Serial.print ("Escribiendo en testf.txt …");
myFile.println (gps.location.lat (), 6);
myFile.println (gps.location.lng (), 6);
myFile.close (); }
}
demás {
myFile = SD.open ("testf.txt", FILE_WRITE);
if (myFile) {
Serial.print ("No válido");
myFile.close (); }
}
}
Pasul urmator presupune transofmarea fisierului.txt en.kml si incarcarea acestuia en Google Earth.