Receiving gps data from a gps module using arduino (over long distances??)

Hello, my task is to attach a gps module on an animal and observe its migration route over time. I am to use an arduino to receive data from the module and a raspberry pi to present the data on a map (raspberry pi part is not important for now). Can anyone please inform me about what i should basically do to get this done, considering i have really little experience on microntrollers but good knowledge in coding?? Let's say i have the arduino and the gps. I attached the gps on the animal. Then what? How does the process work? Do i make the module link to satellites and then use my arduino to download the data from the satellite? (I heard that this system can be used but is very expensive. Still, I would like to get informed about how it works and what should i do to set the system up.)

Sorry if the post is complicated. I am new here and i appreciate any help. Many thanks.

It's easy to connect a GPS module to an Arduino, but it usually requires "level-shifting". Most Arduinos run at 5V, and most GPS devices are 3.3V. Depending on what you select, you may need to shift the Arduino transmit pin down to a voltage that is safe for the GPS RX pin. Here's a post with some suggestions.

I would also suggest taking the time to choose the best way to connect serial devices (i.e., GPS). Read this to get some tips. Many people start off with SoftwareSerial and then get into trouble.

Once the Arduino is safely connected to the GPS device, you should use a library to parse the GPS characters into "information", like a latitude number. However, it is much harder to send that information somewhere remote. GPS satellites cannot receive from the Arduino. The Arduino can only receive from the GPS satellites, so you will need to add some kind of transmitter. There are many radio modules to choose from... "LoRa" is common, but it is line-of-sight only. If the animal is urban enough to have cell phone coverage, a SIM module could be used to send the data.

You'll also have to add up the power usage of all these modules and multiply by the time you want the battery to last. You'll have to decide how often to transmit, when to put the Arduino to sleep, etc. That will determine Amp-hours (Ah) needed, and thus the battery size.

And take a look at my NeoGPS library. It's smaller, faster, more accurate and more reliable than all other libraries. Even if you don't use it, be sure to read the Troubleshooting page. The example sketches from all other libraries are not structured properly, and they are easy to "break" when modifying them. The NeoGPS examples are structured to even out the MCU processing load, which helps avoid losing GPS characters. NeoGPS is available from the Arduino IDE Library Manager, under the menu Sketch -> Include Library -> Manage Libraries.

Cheers,
/dev

Thank you.

Animal tracking is a very popular topic, and a web search will turn up many sites that describe devices, including some DIY trackers. Some use satellite transmitters, some use ground based radio and others use uSD cards or other forms of data storage and don't transmit, so you have to recover the tracker. SPOT Trace is a commercial offering for assets, but could be used for animals.

This in not really an Arduino project, and if you have no experience with electronics or radio technology, very, very challenging. Battery lifetime is a major issue.

SPOT is great but it has some features intended to force you to pay more money for this application. The SPOT device stops transmitting position updates after 24 hours. Unless you can recapture the animal every 24 hours and push the button, that's a problem.

The RockBLOCK seems like it might be a useful satellite transmitter for this application.

The SPOT device stops transmitting position updates after 24 hours

The SPOT Trace has no such limitation.

Maximum tracking time with the Trace is about 52 days, with hourly position reports and a clear view of the sky.