Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
No programa cadrul acestui 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 lunga si securizata a datelor, cu un consumir redus de energia. existente. Este o tehnologie usor de conectat la orice infrastructura existenta. LoRa utiliza rádio benzi de frecventa sub-gigahertz fara licenta, cum ar fi: 169 MHz, 433 MHz, 868 MHz (Europa) si 915 MHz (América de Nord).
Ce este LoRaWAN?
LoRaWAN este reteaua pe care LoRa opereaza. LoRaWAN este um protocolo de transmissão de rádio prin care se formeaza retele de obiecte inteligente, cu nivel Media Access Control (Mac) e defineste protocolul de comunicare si arhitectura systemului pentru ou 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)
Datele relevante: geografice coordenado, RSSI, timestamp vor fi salvate no formato kml pentru a fi utilizar la
mappare no Google Earth.
Etapa 1: utilização de componente
O projeto Pentru realizarea acestui utiliza o componente urmatoarele:
1. Seeeduino Stalker v2.3
2. Conversor Modul USB Serial FT232RL cu Mufa USB Mini
3. Modul GPS MTK-3329
4. Mini USB Cablu
5. Fogo mama-tata
6. LCD RC2004A-BIW-ESX + MCP23008
7. cartão microSD de 2 Gb
8. Baterie CR2032
9. LoRa ACW-XB v1.1 ATIM
10. Antena wi-fi
Speficatii relevante Seeeduino Stalker v2.3
Microcontrolador: ATmega328P
Pinos de I / O: 20
Conectivitar: I2C, UART, SPI
Taxa de Baud UART: 115200 bps
Conectivitatea dintre acestea s-a realizat no mod urmatorul:
Pentru a face conexiunea intre placuta si calculadora 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 com microSD cardul si modulul LoRa au fost atasate in locurile special create the plate
Conectivitate GPS
Seeeduino Stalker - GPS
GND ↔ GND
Pino 7 ↔ RXA
Pino 8 ↔ TXA
3,3 V ↔ VDD
Em citirea coordonatele GPS am intampinat probleme referitoare la baud rate. Din cauza faptului ca interfata seriala a placutei Seeeduino este transmitir 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
Etapa 2: Mediu De Dezvoltare
Programul a fost realizat in programul Arduino IDE cu urmatoarele specificatii:
Placa: Arduino Pro ou Pro Mini
Processador: ATmega328P (3,3 V, 8 MHz)
Etapa 3: Afisare Coordonate + Timestamp Pe LCD
Primeiros passos a fost afisarea coordonatelor GPS impreuna com dados e timpul pe LCD pentru a fi use la mapparea no Google Earth.
Am utilizat urmatorul cod: (Mentionez ca este nevoie de importarea unor librarii si anume TinyGPS ++.h, RTClib.h si LiquidCrystal.h)
Bacalhau:
#include #include
#incluir
#incluir
#incluir
const estático int RXPin = 8, TXPin = 7; const estático uint32_t GPSBaud = 38400;
RTC_DS3231 rtc;
char t [32];
TinyGPSPlus gps;
SoftwareSerial ss (RXPin, TXPin);
LiquidCrystal lcd (0);
void setup ()
{lcd.begin (20, 4);
Serial.begin (9600);
Wire.begin ();
rtc.begin ();
ss.begin (GPSBaud);
atraso (1000);
lcd.clear ();
}
void loop ()
{
DateTime now = rtc.now ();
sprintf (t, "% 02d:% 02d:% 02d% 02d /% 02d /% 02d", now.hour (), now.minute (), now.second (), now.day (), now.month (), agora.ano ());
atraso (1000);
enquanto (ss.available ()> 0)
if (gps.encode (ss.read ()))
displayInfo ();
if (millis ()> 5000 && gps.charsProcessed () <10) {
lcd.print (F ("Nenhum GPS detectado"));
enquanto (verdadeiro);
}
}
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);
}
outro {
lcd.print ("INVÁLIDO");
lcd.clear ();
}
if (millis ()> 5000 && gps.charsProcessed () <10)
{
Serial.println (F ("Nenhum GPS detectado: verifique a fiação."));
enquanto (verdadeiro);
}
}
Etapa 4: Cartão MicroSD Salvare Date Pe
Bibliotecário utilizata: SD.h
Pentru salvarea datelor pe cartão microSD am adaugat urmatoarele linii:
Arquivo meuArquivo;
void setup ()
{
…..
Serial.print ("Inicializando o cartão SD …"); pinMode (10, SAÍDA);
if (! SD.begin (4))
{Serial.println ("inicialização falhou!");
Retorna;
}
Serial.println ("inicialização concluída.");
}
void loop ()
{
….
while (ss.available ()> 0) if (gps.encode (ss.read ()))
{displayInfo ();
writeInfo ();
}
}
void writeInfo () {if (gps.location.isValid ())
{meuArquivo = SD.open ("testf.txt", FILE_WRITE);
if (meuArquivo) {
Serial.print ("Gravando em testf.txt…");
meuArquivo.println (gps.location.lat (), 6);
meuArquivo.println (gps.location.lng (), 6);
meuArquivo.close (); }
}
outro {
meuArquivo = SD.open ("testf.txt", FILE_WRITE);
if (meuArquivo) {
Serial.print ("inválido");
meuArquivo.close (); }
}
}
Pasul urmator pressupune transofmarea fisierului.txt em.kml si incarcarea acestuia no Google Earth.