Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Dans le programme 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 consum redus de energie. Retelele publice si private care useaza aceasta tehnologie pot oferi o acoperire care este mai mare decat cea a reeular existant. Este o tehnologie usor de conectat la orice infrastructura existenta. LoRa useaza benzi de frecventa radio sub-gigahertz fara licenta, cum ar fi: 169 MHz, 433 MHz, 868 MHz (Europe) 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 defineste 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
récepteur. (va asculta dupa semnalele ce provin de la gateway urile de LoRaWAN)
Datele relevante: coordonnées géographiques, RSSI, horodatage vor fi salvate au format kml pentru a fi utilizate la
mapparer dans Google Earth.
Étape 1: Componente Utiliser
Pentru realizarea acestui proiect am utilizat urmatoarele componente:
1. Seeeduino Stalker v2.3
2. Modul Convertisseur USB Série FT232RL cu Mufa USB Mini
3. Module GPS MTK-3329
4. Câble Mini USB
5. Le feu mama-tata
6. LCD RC2004A-BIW-ESX + MCP23008
7. carte microSD 2 Go
8. Batterie CR2032
9. LoRa ACW-XB v1.1 ATIM
10. Antenne wifi
Spécifications pertinentes Seeeduino Stalker v2.3
Microcontrôleur: ATmega328P
Broches E/S: 20
Connecter: I2C, UART, SPI
Débit en bauds UART: 115 200 bps
Conectivitatea dintre acestea s-a realizat in urmatorul mod:
Pentru a face conexiunea intre placuta si calculateur se connecteaza placuta la modulul FT232RL, iar apoi cablul USB mini intre cele 2 din urma. (Modulul FT232RL va comunica prin intermediul UART-ului cu Seeeduino).
Tige Seeeduino - 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
Connecter le GPS
Seeeduino Stalker - GPS
GND ↔ GND
Broche 7 RXA
Broche 8 TXA
3,3 V VDD
Dans citirea coordonatele GPS am intampinat probleme 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.
Connecter l'écran LCD
Datorita Port Expander-ului cu interfata I2C ce a fost lipit de LCD, conexiunea s-a realizat usor.
Stalker Seeeduino - MCP23008
USB5V ↔ 5V
GND GND
SDA ↔ SDA
SCL ↔ SCL
Étape 2: Mediu De Dezvoltare
Programul a fost realizat in programul Arduino IDE cu urmatoarele Specificatii:
Carte: Arduino Pro ou Pro Mini
Processeur: ATmega328P (3,3 V, 8 MHz)
Étape 3: Afisare Coordonate + Timestamp Pe LCD
Primul pas a fost afisarea coordonatelor GPS impreuna cu Data si Timpul pe LCD pentru a fi utiliser la mapparea dans Google Earth.
Am utilizat urmatorul cod: (Mentionez ca este nevoie de importarea unor librarii si anume TinyGPS++.h, RTClib.h si LiquidCrystal.h)
La morue:
#include #include
#comprendre
#comprendre
#comprendre
statique const int RXPin = 8, TXPin = 7;static const uint32_t GPSBaud = 38400;
RTC_DS3231 rtc;
caractère t[32];
GPS TinyGPSPlus;
SoftwareSerial ss (RXPin, TXPin);
LiquidCrystal lcd(0);
void setup()
{ lcd.begin (20, 4);
Serial.begin(9600);
Fil.begin();
rtc.begin();
ss.begin(GPSBaud);
retard(1000);
lcd.clear();
}
boucle vide()
{
DateHeure maintenant = rtc.now();
sprintf(t, "%02d:%02d:%02d %02d/%02d/%02d", now.hour(), now.minute(), now.second(), now.day(), now.month (), now.year());
retard(1000);
tandis que (ss.available() > 0)
si (gps.encode(ss.read()))
afficherInfo();
if (millis() > 5000 && gps.charsProcessed() < 10) {
lcd.print(F("Aucun GPS détecté"));
tandis que (vrai);
}
}
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);
}
autre {
lcd.print("INVALIDE");
lcd.clear();
}
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println(F("Aucun GPS détecté: vérifiez le câblage."));
tandis que (vrai);
}
}
Étape 4: Carte MicroSD Salvare Date Pe
Bibliothèque utilisée: SD.h
Carte microSD Pentru salvarea datelor pe am adaugat urmatoarele linii:
Fichier monFichier;
void setup()
{
…..
Serial.print("Initialisation de la carte SD…"); pinMode(10, SORTIE);
si (!SD.begin(4))
{ Serial.println("l'initialisation a échoué!");
revenir;
}
Serial.println("initialisation effectuée.");
}
boucle vide()
{
….
while (ss.available() > 0) if (gps.encode(ss.read()))
{ afficherInfo();
écrireInfo();
}
}
void writeInfo(){ if (gps.location.isValid())
{ monFichier = SD.open("testf.txt", FILE_WRITE);
si (monFichier) {
Serial.print("Ecriture dans testf.txt…");
monFichier.println(gps.location.lat(), 6);
monFichier.println(gps.location.lng(), 6);
monFichier.close(); }
}
autre {
monFichier = SD.open("testf.txt", FILE_WRITE);
si (monFichier) {
Serial.print("Invalide");
monFichier.close(); }
}
}
Pasul urmator présupune transofmarea fisierului.txt en.kml si incarcarea acestuia dans Google Earth.