- Nepieciešamie materiāli
- Arduino LoRa vairogs
- Izgatavojot PCR LoRa Shield
- PCB montāža
- GPS moduļa pievienošana LoRa raidītājam
- Arduino LoRa programmēšana kā GPS raidītājs
- Arduino LoRa programmēšana kā GPS uztvērējs
- Arduino LoRa GPS izsekotājs darbojas
Zināt konkrēta objekta / personas atrašanās vietu vienmēr ir bijis mierinoši. Mūsdienās GPS tiek plaši izmantots aktīvu pārvaldības lietojumprogrammās, piemēram, transportlīdzekļu izsekošana, autoparka izsekošana, aktīvu uzraudzība, personu izsekošana, mājdzīvnieku izsekošana utt. Jebkurai izsekošanas ierīcei primārais dizains būs tās akumulatora ilgums un uzraudzības diapazons. Ņemot vērā abus, LoRa, šķiet, ir ideāla izvēle, jo tam ir ļoti mazs enerģijas patēriņš un tas var darboties lielos attālumos. Tātad šajā apmācībā mēs izveidosim GPS izsekošanas sistēmu, izmantojot LoRa, sistēmu veidos raidītājs, kas nolasīs atrašanās vietas informāciju no NEO-6M GPS moduļaun pārraidīt to bezvadu pa Lora. Uztvērēja daļa saņems informāciju un parādīs to 16x2 LCD displejā. Ja jūs esat jauns LoRa lietotājs, pirms turpināt darbu, uzziniet par LoRa un LoRaWAN tehnoloģiju un to, kā to var sasaistīt ar Arduino.
Lai viss būtu vienkāršs un rentabls šim projektam, mēs neizmantosim LoRa vārteju. Tā vietā veiks vienādranga komunikāciju starp raidītāju un uztvērēju. Tomēr, ja vēlaties globālu diapazonu, uztvērēju varat nomainīt ar LoRa Gateway. Tā kā es esmu no Indijas, mēs izmantosim 433MHz LoRa moduli, kas šeit ir likumīga ISM josla, tāpēc jums, iespējams, būs jāizvēlas modulis, pamatojoties uz jūsu valsti. To sakot, sāksim darbu…
Nepieciešamie materiāli
- Arduino Lora Shield - 2Nos (PCB dizains pieejams lejupielādei)
- Arduino Uno - 2Nos
- SX1278 433MHz LoRa modulis - 2
- 433MHz Lora antena
- NEO-6M GPS modulis
- LCD displeja modulis
- Savienojošie vadi
Arduino LoRa vairogs
Lai atvieglotu lietu veidošanu ar LoRa, mēs šim projektam esam izstrādājuši LoRa Arduino Shield. Šis vairogs sastāv no SX1278 433MHz ar 3,3 V regulatoru, kas izstrādāts, izmantojot regulējamo regulatoru LM317. Vairogs sēdēs tieši virsū Arduino, nodrošinot tam LoRa iespējas. Šis LoRa vairogs noderēs, kad būs jāizvieto LoRa sensoru mezgli vai jāizveido LoRa tīkla tīkls. Pilna LoRa Arduino Shield shēma ir dota zemāk
Vairogs sastāv no 12 V ligzdas, kuru darbinot, tiks izmantots 3,3 V regulēšana LoRa modulim, izmantojot regulatoru LM317. To arī izmantos, lai darbinātu Arduino UNO caur Vin tapu, un Arduino regulētais 5V tiek izmantots, lai darbinātu LCD uz vairoga. Izmantojot rezistoru R1 un R2, LM317 izejas spriegums ir noteikts 3.3V. Šo rezistoru vērtību var aprēķināt, izmantojot LM317 kalkulatoru.
Tā kā LoRa modulis patērē ļoti mazu jaudu, to var darbināt arī tieši no Arduino 3,3 V tapas, taču mēs esam izmantojuši ārējā regulatora konstrukciju, jo LM317 ir uzticamāks nekā borta sprieguma regulators. Vairogā ir arī potenciometrs, ko var izmantot, lai pielāgotu LCD spilgtumu. LoRa moduļa savienojums ar Arduino ir līdzīgs tam, ko mēs darījām mūsu iepriekšējā apmācībā par Arduino saskaršanos ar Lora.
Izgatavojot PCR LoRa Shield
Tagad, kad mūsu ķēde ir gatava, mēs varam turpināt izstrādāt mūsu PCB. Atvēru PCB projektēšanas programmatūru un sāku veidot dziesmas. Kad PCB dizains bija pabeigts, mana dēlis izskatījās kaut kas līdzīgs šim, kas parādīts zemāk
Jūs varat arī lejupielādēt noformējuma failus GERBER formātā un izgatavot to, lai iegūtu savus dēļus. Gerber faila saite ir sniegta zemāk
Lejupielādējiet Gerber failu Arduino LoRa Shield
Kad mūsu dizains ir gatavs, ir pienācis laiks tos izgatavot. Lai paveiktu PCB, ir diezgan viegli, vienkārši veiciet tālāk norādītās darbības
1. darbība: iekļūstiet vietnē www.pcbgogo.com, reģistrējieties, ja tā ir jūsu pirmā reize. Pēc tam cilnē PCB Prototype ievadiet sava PCB izmērus, slāņu skaitu un nepieciešamo PCB skaitu. Pieņemot, ka PCB ir 80 cm × 80 cm, jūs varat iestatīt izmērus, kā parādīts zemāk.
2. solis: turpiniet, noklikšķinot uz pogas Citēt tūlīt . Jūs tiksiet novirzīts uz lapu, kur, ja nepieciešams, iestatīsit dažus papildu parametrus, piemēram, izmantoto materiālu sliežu atstarpi utt. Bet galvenokārt noklusējuma vērtības darbosies labi. Vienīgais, kas mums šeit jāņem vērā, ir cena un laiks. Kā redzat, būvēšanas laiks ir tikai 2-3 dienas, un tas mūsu PSB maksā tikai 5 USD. Pēc tam jūs varat izvēlēties vēlamo nosūtīšanas metodi, pamatojoties uz jūsu prasībām.
3. solis: pēdējais solis ir Gerber faila augšupielāde un maksājuma veikšana. Lai pārliecinātos, ka process ir vienmērīgs, pirms maksājuma turpināšanas PCBGOGO pārbauda, vai jūsu Gerber fails ir derīgs. Tādā veidā jūs varat pārliecināties, ka jūsu PCB ir izgatavošanai draudzīgs un ar jums sazināsies kā apņēmies.
PCB montāža
Pēc tam, kad dēlis tika pasūtīts, tas mani sasniedza pēc dažām dienām, kaut arī kurjers glīti marķētā, labi iesaiņotā kastē, un, tāpat kā vienmēr, PCB kvalitāte bija lieliska.
Es ieslēdzu savu lodēšanas stieni un sāku montēt dēli. Tā kā pēdas, spilventiņi, flakoni un sietspiede ir ideāli piemērotas formas un izmēra, man nebija problēmu montēt dēli. Kad lodēšana bija pabeigta, dēlis izskatījās šādi zemāk, kā redzat, ka tas ir cieši pieguļ manam Arduino Uno dēlim.
Tā kā mūsu projektam ir Arduino LoRa raidītājs un Arduino LoRa uztvērējs, mums būs nepieciešami divi vairogi uztvērējam un otrs raidītājam. Tāpēc es turpināju lodēt citu PCB, zemāk parādīts gan PCB ar LoRa moduli, gan LCD.
Kā redzat tikai uztvērējam LoRa shied (kreisajā pusē) ir pievienots LCD, raidītāja puse sastāv tikai no LoRa moduļa. Tālāk mēs pievienosim GPS moduli raidītāja pusei, kā aprakstīts tālāk.
GPS moduļa pievienošana LoRa raidītājam
Šeit izmantotais GPS modulis ir NEO-6M GPS modulis. Modulis var darboties ar ļoti mazu jaudu ar nelielu formas faktoru, padarot to piemērotu lietojumprogrammu izsekošanai. Tomēr ir pieejami daudzi citi GPS moduļi, kurus mēs iepriekš esam izmantojuši dažāda veida transportlīdzekļu izsekošanas un atrašanās vietas noteikšanas lietojumprogrammās.
Modulis darbojas 5V spriegumā un sazinās, izmantojot sērijveida sakarus ar 9600 bitu pārraides ātrumu. Tādējādi mēs darbinām moduli ar + 5 V Arduino tapu un savienojam Rx un Tx tapu attiecīgi ar digitālo tapu D4 un D3, kā parādīts zemāk
Piespraudes D4 un D3 tiks konfigurētas kā programmatūras sērijveida tapas. Kad barošana būs veikta, NEO-6M GPS modulis meklēs satelīta savienojumu, un visa informācija automātiski tiks ievadīta sērijveidā. Šie izvades dati būs NMEA teikuma formātā, kas apzīmē Nacionālo jūras elektronikas asociāciju un ir standarta formāts visām GPS ierīcēm. Lai uzzinātu vairāk par GPS izmantošanu ar Arduino, sekojiet saitei. Šie dati būs lieli, un lielākoties mums tie jāformulē manuāli, lai iegūtu vēlamo rezultātu. Mums paveicies, ka ir bibliotēka ar nosaukumu TinyGPS ++, kas mums visu smago celšanu veic. Jums arī jāpievieno LoRa bibliotēka, ja vēl neesat to izdarījis. Tātad lejupielādēsim abas bibliotēkas no saites zemāk
Lejupielādējiet TinyGPS ++ Arduino bibliotēku
Lejupielādējiet Arduino LoRa bibliotēku
Saite lejupielādēs ZIP failu, kuru pēc tam var pievienot Arduino IDE, izpildot komandu Sketch -> Include Library -> Add.ZIP library. Kad esat gatavs aparatūrai un bibliotēkai, mēs varam turpināt programmēt mūsu Arduino dēļus.
Arduino LoRa programmēšana kā GPS raidītājs
Kā mēs zinām, LoRa ir uztvērēja ierīce, kas nozīmē, ka tā var gan nosūtīt, gan saņemt informāciju. Tomēr šajā GPS sekošanas projektā mēs izmantosim vienu moduli kā raidītāju, lai nolasītu koordinātu informāciju no GPS un nosūtītu to, bet otru moduli kā uztvērēju, kurš saņems GPS koordinātu vērtības un izdrukās tos uz LCD. Gan raidītājs un uztvērējs moduli programmu var atrast pie šīs lapas apakšā. Pirms koda turpināšanas pārliecinieties, vai esat instalējis bibliotēkas GPS modulim un LoRa modulim. Šajā sadaļā mēs aplūkosim raidītāja kodu.
Kā vienmēr, mēs sākam programmu, pievienojot nepieciešamās bibliotēkas un piespraudes. Šeit SPI un LoRa bibliotēka tiek izmantota LoRa saziņai, un TinyGPS ++ un SoftwareSerial bibliotēka tiek izmantota GPS saziņai. GPS modulis manā aparatūrā ir savienots ar 3. un 4. tapu, un tāpēc mēs to arī definējam šādi
# iekļaut
Inside iestatīšanas funkciju sākam sērijas monitoru, kā arī sāktu programmatūras sērijas kā "gpsSerial " komunikācijai ar mūsu NEO-6M GPS moduli. Ņemiet vērā arī to, ka es izmantoju 433E6 (433 MHz) kā savu LoRa darbības frekvenci, iespējams, jums tas būs jāmaina, pamatojoties uz izmantotā moduļa tipu.
void setup () { Sērijas.sākt (9600); gpsSerial.begin (9600); kamēr (! Seriāls); Serial.println ("LoRa sūtītājs"); ja (! LoRa.begin (433E6)) { Serial.println ("LoRa sākšana neizdevās!"); kamēr (1); } LoRa.setTxPower (20); }
Cilpas funkcijas iekšpusē mēs pārbaudām, vai GPS modulis izliek dažus datus, ja jā, tad mēs lasām visus datus un formulējam tos, izmantojot funkciju gps.encode. Pēc tam mēs pārbaudām, vai esam saņēmuši derīgus atrašanās vietas datus, izmantojot funkciju gps.location.isValid () .
while (gpsSerial.available ()> 0) if (gps.encode (gpsSerial.read ())) if (gps.location.isValid ()) {
Ja esam saņēmuši derīgu atrašanās vietu, mēs varam sākt pārsūtīt platuma un garuma vērtības. Funkcija gps.location.lat () dod platuma koordinātu un funkcija gps.location.lng () - garuma koordinātu. Tā kā mēs tos drukāsim uz 16 * 2 LCD displeja, mums jāpiemin, kad jāseko uz otro rindu, tāpēc mēs izmantojam atslēgvārdu “c”, lai uztvērtu uztvērēju, lai 2. rindiņā izdrukātu šādu informāciju.
LoRa.beginPacket (); LoRa.print ("Lat:"); LoRa.print (gps.location.lat (), 6); LoRa.print ("c"); LoRa.print ("Garš:"); LoRa.print (gps.location.lng (), 6); Serial.println ("Nosūtīts caur LoRa"); LoRa.endPacket ();
Arduino LoRa programmēšana kā GPS uztvērējs
Raidītāja kods jau sūta platuma un garuma koordinātu vērtību, tagad uztvērējam ir jāizlasa šīs vērtības un jāizdrukā uz LCD. Līdzīgi šeit mēs pievienojam LoRa moduļa un LCD displeja bibliotēku un definējam, kurām tapām LCD ir pievienots, kā arī inicializējam LoRa moduli tāpat kā iepriekš.
# iekļaut
Cilpas funkcijas iekšpusē mēs klausāmies, vai datu paketes veido raidītāja LoRa moduli un tā lielumu, izmantojot LoRa.parsePacket () funkciju, un glabā to mainīgajā “ packetSize ”. Ja paketes tiek saņemtas, mēs turpinām tās lasīt kā rakstzīmes un izdrukāt uz LCD. Programma arī pārbauda, vai LoRa modulis sūta atslēgvārdu “c”, ja jā, tad otrajā rindiņā izdrukā atlikušo informāciju.
if (packetSize) {// Ja pakete saņēma Serial.print ("Saņemtā pakete" "); lcd.clear (); while (LoRa.available ()) { char ienākošais = (char) LoRa.read (); if (ienākošais == 'c') { lcd.setCursor (0, 1); } cits { lcd.print (ienākošais); } }
Arduino LoRa GPS izsekotājs darbojas
Kad aparatūra un programma ir gatava, mēs varam augšupielādēt abus kodus attiecīgajos Arduino moduļos un darbināt tos, izmantojot 12 V adapteri vai USB kabeli. Kad raidītājs ir ieslēgts, jūs varat pamanīt, ka mirgo zilā gaismas diode uz GPS moduļa, kas norāda, ka modulis meklē satelīta savienojumu, lai iegūtu koordinātas. Tikmēr uztvērēja modulis ieslēgsies un LCD ekrānā parādīs sveiciena ziņojumu. Kad raidītājs nosūta informāciju, uztvērēja modulis to parādīs LCD, kā parādīts zemāk
Tagad jūs varat pārvietoties, izmantojot raidītāja GPS moduli, un pamanīsit, ka uztvērējs atjaunina tā atrašanās vietu. Lai uzzinātu, kur tieši atrodas raidītāja modulis, varat izlasīt LCD ekrānā redzamās platuma un garuma vērtības un ievadīt to Google Maps, lai iegūtu atrašanās vietu kartē, kā parādīts zemāk.
Pilnīga darba var atrast arī video dotajā pie šīs lapas apakšā. Ceru, ka sapratāt apmācību un patika ar to izveidot kaut ko noderīgu. Ja jums ir kādas šaubas, varat tos atstāt komentāru sadaļā zemāk vai izmantot mūsu forumus citiem tehniskiem jautājumiem.