- Potrebné materiály
- Štít Arduino LoRa
- Výroba DPS pre štít LoRa
- Montáž DPS
- Pripojenie modulu GPS k vysielaču LoRa
- Programovanie Arduino LoRa ako GPS vysielača
- Programovanie Arduino LoRa ako prijímača GPS
- GPS sledovač Arduino LoRa pracuje
Poznanie miesta pobytu konkrétneho objektu / osoby bolo vždy potešujúce. Dnes sa GPS vo veľkej miere používa v aplikáciách na správu majetku, ako je sledovanie vozidiel, sledovanie vozového parku, sledovanie majetku, sledovanie osôb, sledovanie domácich miláčikov atď. Pre každé sledovacie zariadenie bude hlavným cieľom pri návrhu počítať s predpokladanou výdržou batérie a dosahom sledovania. Ak vezmeme do úvahy oboje, LoRa sa javí ako dokonalá voľba, pretože má veľmi nízku spotrebu energie a dokáže pracovať na veľké vzdialenosti. Takže v tomto výučbe zostavíme systém sledovania GPS pomocou LoRa, systém bude pozostávať z vysielača, ktorý bude čítať informácie o polohe z GPS modulu NEO-6Ma bezdrôtovo ho preniesť cez Loru. Prijímacia časť prijme informácie a zobrazí ich na 16x2 LCD displeji. Ak ste v LoRa nováčikom, potom sa dozviete viac o technológii LoRa a LoRaWAN a o tom, ako ju možno prepojiť s Arduino.
Z dôvodu zjednodušenia a zníženia nákladov tohto projektu nebudeme používať bránu LoRa. Namiesto toho bude vykonávať komunikáciu peer to peer medzi vysielačom a prijímačom. Ak však chcete mať globálny dosah, môžete prijímač nahradiť bránou LoRa. Pretože som z Indie, budeme používať modul LoRa 433 MHz, ktorý je tu legálnym pásmom ISM, takže možno budete musieť zvoliť modul založený na vašej krajine. Ako už bolo povedané, môžeme začať…
Potrebné materiály
- Arduino Lora Shield - 2Nos (dizajn PCB je k dispozícii na stiahnutie)
- Arduino Uno - 2 č
- Modul LoXa SX1278 433 MHz - 2
- 433MHz Lora anténa
- Modul GPS NEO-6M
- Modul LCD displeja
- Pripojovacie vodiče
Štít Arduino LoRa
Aby sme uľahčili stavanie vecí pomocou LoRa, navrhli sme pre tento projekt štít LoRa Arduino. Tento štít sa skladá z SX1278 433MHz s 3,3V regulátorom navrhnutým pomocou LM317 Variabilného regulátora. Štít bude priamo sedieť na vrchole Arduina a bude mu poskytovať schopnosti LoRa. Tento štít LoRa sa vám bude hodiť, keď budete musieť nasadiť snímacie uzly LoRa alebo vytvoriť sieťovú sieť LoRa. Kompletná schéma zapojenia pre štít LoRa Arduino Shield je uvedená nižšie
Shield sa skladá z 12V konektora, ktorý sa po napájaní použije na reguláciu 3,3 V pre modul LoRa pomocou regulátora LM317. Bude tiež slúžiť na napájanie Arduino UNO cez Vin pin a regulovaných 5V z Arduina sa používa na napájanie LCD na štíte. Výstupné napätie LM317 je pomocou rezistora R1 a R2 pevne stanovené na 3,3 V, hodnotu týchto rezistorov je možné vypočítať pomocou kalkulačky LM317.
Pretože modul LoRa spotrebuje veľmi nízku energiu, je možné ho napájať aj priamo z kolíka 3,3 V Arduina, ale použili sme externý dizajn regulátora, pretože LM317 je spoľahlivejší ako integrovaný regulátor napätia. Tienenie má tiež potenciometer, ktorým sa dá nastaviť jas LCD. Spojenie modulu LoRa s Arduinom je podobné tomu, ktoré sme vykonali v našom predchádzajúcom tutoriáli Interfacing Arduino s Lorou.
Výroba DPS pre štít LoRa
Teraz, keď je náš obvod pripravený, môžeme pokračovať v navrhovaní našej DPS. Otvoril som pomocou návrhového softvéru PCB a začal formovať svoje stopy. Akonáhle bol dizajn PCB hotový, moja doska vyzerala asi takto, ako je uvedené nižšie
Môžete si tiež stiahnuť návrhové súbory vo formáte GERBER a vytvoriť ich tak, aby ste získali svoje dosky. Odkaz na súbor Gerber je uvedený nižšie
Stiahnite si súbor Gerber pre štít Arduino LoRa
Teraz, keď je náš Dizajn pripravený, je čas nechať ich vyrobiť. Hotové PCB je celkom jednoduché, jednoducho postupujte podľa krokov uvedených nižšie
Krok 1: Choďte na www.pcbgogo.com, zaregistrujte sa, ak ste prvýkrát. Potom na karte Prototyp PCB zadajte rozmery vašej PCB, počet vrstiev a požadovaný počet PCB. Za predpokladu, že DPS je 80 cm × 80 cm, môžete nastaviť rozmery, ako je uvedené nižšie.
Krok 2: Pokračujte kliknutím na tlačidlo Citovať teraz . Budete presmerovaní na stránku, kde môžete v prípade potreby nastaviť niekoľko ďalších parametrov, ako napríklad použitý rozstup koľají atď. Ale väčšinou budú fungovať predvolené hodnoty. Jediná vec, ktorú tu musíme brať do úvahy, je cena a čas. Ako vidíte, čas zostavenia je iba 2 - 3 dni a stojí iba 5 dolárov za náš PSB. Potom môžete zvoliť preferovaný spôsob dopravy na základe vašej požiadavky.
Krok 3: Posledným krokom je nahranie súboru Gerber a pokračovanie v platbe. Pred pokračovaním v platbe PCBGOGO overuje, či je proces plynulý, či je váš súbor Gerber platný. Týmto spôsobom si môžete byť istí, že vaša doska s plošnými spojmi je vhodná pre výrobu a že sa k vám dostane ako zaviazaná.
Montáž DPS
Po objednaní dosky sa ku mne dostala po niekoľkých dňoch, hoci kuriér v pekne označenej dobre zabalenej krabici a ako vždy bola kvalita DPS úžasná.
Zapol som spájkovaciu tyč a začal som montovať dosku. Pretože sú stopy, podložky, priechody a sieťotlač perfektne správneho tvaru a veľkosti, nemal som problém s zostavením dosky. Akonáhle bolo spájkovanie dokončené, doska vyzerala takto, ako vidíte, ako sa hodí na moju dosku Arduino Uno.
Vzhľadom k tomu, náš projekt má vysielač Arduino Lora a Arduino Lora prijímač budeme potrebovať dva štíty jeden pre príjemcu a ďalší pre vysielač. Pokračoval som teda v spájkovaní ďalšej DPS, DPS s modulom LoRa aj LCD sú zobrazené nižšie.
Ako vidíte, iba prijímač LoRa Shied (ľavý) má pripojený LCD, strana vysielača pozostáva iba z modulu LoRa. Ďalej budeme pripájať modul GPS k strane vysielača, ako je uvedené nižšie.
Pripojenie modulu GPS k vysielaču LoRa
Použitý modul GPS je modul GPS NEO-6M, ktorý môže pracovať na veľmi nízkom výkone s malým tvarom, takže je vhodný na sledovanie aplikácií. Existuje však veľa ďalších modulov GPS, ktoré sme predtým používali v rôznych druhoch aplikácií na sledovanie vozidiel a zisťovanie polohy.
Modul pracuje na 5V a komunikuje pomocou sériovej komunikácie pri 9600 baudoch. Preto napájame modul na pin + 5V Arduina a pripájame pin Rx a Tx na digitálny pin D4 a D3, ako je znázornené nižšie
Piny D4 a D3 budú nakonfigurované ako softvérové sériové piny. Po zapnutí bude modul GPS NEO-6M hľadať satelitné pripojenie a automaticky bude sériovo vysielať všetky informácie. Tieto výstupné údaje budú vo formáte vety NMEA, ktorý znamená National Marine Electronics Association a je štandardným formátom pre všetky zariadenia GPS. Ak sa chcete dozvedieť viac o používaní GPS s Arduinom, kliknite na odkaz. Tieto údaje budú veľké a na získanie požadovaného výsledku je väčšinou potrebné ich formulovať ručne. Našťastie pre nás existuje knižnica s názvom TinyGPS ++, ktorá za nás robí všetko ťažké. Ak ste to ešte neurobili, musíte pridať knižnicu LoRa. Stiahnime si teda obe knižnice z odkazu uvedeného nižšie
Stiahnite si knižnicu TinyGPS ++ Arduino
Stiahnite si knižnicu Arduino LoRa
Odkazom sa stiahne súbor ZIP, ktorý sa potom dá pridať do Arduino IDE pomocou príkazu Skica -> Zahrnúť knižnicu -> Knižnica Add.ZIP . Keď budete pripravení na hardvér a knižnicu, môžeme pokračovať v programovaní našich dosiek Arduino.
Programovanie Arduino LoRa ako GPS vysielača
Ako vieme, LoRa je transceiverové zariadenie, čo znamená, že dokáže odosielať aj prijímať informácie. Avšak v tomto projekte sledovania GPS použijeme jeden modul ako vysielač na načítanie súradnicových informácií z GPS a ich odoslanie, zatiaľ čo druhý modul ako prijímač, ktorý bude prijímať hodnoty súradníc GPS a tlačiť ich na LCD. Program pre oba vysielača a prijímača modulu možno nájsť v dolnej časti tejto stránky. Pred pokračovaním v kóde sa uistite, že máte nainštalované knižnice pre modul GPS a modul LoRa. V tejto časti sa pozrieme na kód vysielača.
Ako vždy začneme program pridaním požadovaných knižníc a pinov. Tu sa na komunikáciu LoRa používa knižnica SPI a LoRa a na komunikáciu GPS sa používa knižnica TinyGPS ++ a SoftwareSerial. Modul GPS v mojom hardvéri je pripojený k pinom 3 a 4, a preto ho tiež definujeme nasledovne
#include
Vo vnútri funkcie nastavenia začneme sériový monitor a tiež inicializujeme softvérový seriál ako „gpsSerial “ pre komunikáciu s našim GPS modulom NEO-6M. Pamätajte tiež, že ako svoju pracovnú frekvenciu LoRa som použil 433E6 (433 MHz), možno ju budete musieť zmeniť na základe typu používaného modulu.
void setup () { Serial.begin (9600); gpsSerial.begin (9600); while (! Serial); Serial.println ("LoRa Sender"); if (! LoRa.begin (433E6)) { Serial.println ("Spustenie LoRa zlyhalo!"); while (1); } LoRa.setTxPower (20); }
Vo vnútri funkcie slučky skontrolujeme, či modul GPS vydáva nejaké údaje, ak áno, prečítame všetky údaje a sformulujeme ich pomocou funkcie gps.encode. Potom pomocou funkcie gps.location.isValid () skontrolujeme, či sme dostali platné údaje o polohe .
while (gpsSerial.available ()> 0) if (gps.encode (gpsSerial.read ())) if (gps.location.isValid ()) {
Ak sme dostali platné miesto, môžeme začať vysielať hodnoty zemepisnej šírky a dĺžky. Funkcia gps.location.lat () dáva súradnicu zemepisnej šírky a funkcia gps.location.lng () dáva súradnicu zemepisnej dĺžky. Pretože ich budeme tlačiť na 16 * 2 LCD, musíme spomenúť, kedy sa máme presunúť do druhého riadku, preto používame kľúčové slovo „c“ na intímnu úpravu prijímača na vytlačenie nasledujúcich informácií na riadok 2.
LoRa.beginPacket (); LoRa.print ("Lat:"); LoRa.print (gps.location.lat (), 6); LoRa.print ("c"); LoRa.print ("Dlhý:"); LoRa.print (gps.location.lng (), 6); Serial.println ("Odoslané cez LoRa"); LoRa.endPacket ();
Programovanie Arduino LoRa ako prijímača GPS
Kód vysielača už vysiela hodnoty súradníc zemepisnej šírky a dĺžky, teraz musí prijímač tieto hodnoty prečítať a vytlačiť na LCD. Podobne tu pridáme knižnicu pre modul LoRa a LCD displej a definujeme, ku ktorým pinom je pripojený LCD, a tiež inicializujeme modul LoRa ako predtým.
#include
Vo vnútri slučky slučky počúvame dátové pakety z modulu LoRa vysielača a jeho veľkosť pomocou funkcie LoRa.parsePacket () a ukladáme ich do premennej „ packetSize “. Ak sú pakety prijaté, pokračujeme v ich načítaní ako znakov a vytlačíme ich na LCD. Program tiež skontroluje, či modul LoRa posiela kľúčové slovo „c“, ak áno, vytlačí zostávajúce informácie na druhý riadok.
if (packetSize) {// Ak bol prijatý paket Serial.print ("Prijatý paket '"); lcd.clear (); while (LoRa.available ()) { char incoming = (char) LoRa.read (); if (prichádzajúce == 'c') { lcd.setCursor (0, 1); } else { lcd.print (prichádzajúci); } }
GPS sledovač Arduino LoRa pracuje
Keď je hardvér a program pripravený, môžeme nahrať oba kódy do príslušných modulov Arduino a napájať ich pomocou adaptéra 12V alebo kábla USB. Keď je vysielač napájaný, môžete si všimnúť, že modrá LED na module GPS bliká, čo znamená, že modul hľadá satelitné pripojenie, aby získal súradnice. Medzitým sa modul prijímača zapne a na obrazovke LCD sa zobrazí uvítacia správa. Len čo vysielač odošle informácie, modul prijímača ich zobrazí na svojom LCD displeji, ako je to znázornené nižšie
Teraz sa môžete pohybovať s modulom GPS vysielača a všimnete si, že prijímač aktualizuje svoju polohu. Ak chcete vedieť, kde presne je modul vysielača, môžete si prečítať hodnoty zemepisnej šírky a dĺžky zobrazené na LCD displeji a zadať ich do máp Google, aby ste získali polohu na mape, ako je uvedené nižšie.
Kompletné pracovné možno nájsť aj na videu danej na konci tejto stránky. Dúfam, že ste pochopili tento návod a páčilo sa vám pri vytváraní niečoho užitočného. Ak máte pochybnosti, môžete ich zanechať v sekcii komentárov nižšie alebo použiť naše fóra na ďalšie technické otázky.