GPS tracking device
I am one of the students of the Public Laboratory for Science class at Umass Amherst in collaboration with the five colleges. The project that I am working on is a GPS device set on an animal collar using cheap technology and open source software to track animals. It should be capable of being used whether for tracking domestic animals ( dogs) or wild animals.
The tracking device will be based on a TinyDuino. For data logging, i will need a **micro SD TinyShield** and **micro sd card ** to get data from GPS TinyShield that is going to be programmed through the Arduino ( there is a TinyDuino GPS Data Logger sketch that should be uploaded to the TinyDuino using the Arduino IDE ). The sketch is going to be adjusted, the Software Serial library files should be replaced. A maker that created a GPS collar for their cat shared the code for doing that on http://makezine.com/projects/make-37/gps-cat-tracker-2/
If used for a domestic animal ( that we know is coming back home) the tracking data could be logged and stored in a micro SD card and then viewed on an application in the computer like Google earth. But for wild animals tracking, the data should be accessed simultaneously through the internet, and that is one of the main improvements that i want to add to this device. A **Tinyduino** cannot handle an internet connection, so i will have to add the **Arduino Ethernet Shield** that allows an Arduino board to connect to the internet.
One of the main challenges of this project is to keep the device as light as possible so it could be handled by smaller animals. So to power the system, i need a small and light battery that can run the system long enough. A small rechargeable lithium ion battery can give me up to 6 hours of logging. This could be enough for domestic animals tracking. To study the movement of wild animals we might want logging that can go for weeks. So i though that a solar powered device could be the best idea for a self rechargeable device, but this would be the solution only and particularly for animals of medium size that live in deserted/warm areas.
I thought about battery saving by turning off GPS logging when the animal is immobile. I will have to search on how to program the Arduino to stop the data logging after a set period of time that returns the same location.
I found this great experiment by this guy called Nick ( http://www.gammon.com.au/forum/?id=11497 ) that found the best way to significantly lower battery use by the Arduino using a **"bare bones" board** and programming the Arduino on different sleep modes. I will have to study his conclusions more closely!
The tracking device should be waterproof. The best way to make a perfect sized waterproof container is to use a 3d printer. And a PVC Polyester collar would be the cheapest waterproof material that could be used.
I have a list of the parts that i need to make the device:
** __- TinyDuino Basic Kit item ( #ASK1001-R-P1from tiny-circuits.com ) : It includes the TinyDuino processor board, TinyShield USB programmer board, protoboard, and mounting screws. _ - Adafruit shield that is a two in one GPS/MicroSd shield http://www.adafruit.com/products/1272
Arduino Ethernet Shield Rev3 WITHOUT PoE Module__
Battery, lithium ion polymer, 3.7V, 150mAh ( + Lithium ion battery charger)
JST-PH battery extension cable_**
I decided to divide the making process through stages. In which each stage will address one of the feature that i want in the tracking device. This way i can measure my progress progressively instead of using all the parts at once and end up with multiple problems at different levels that would be much harder to address. Therefore, I am going to make the GPS through 3 main stages.
Stage1 : make a GPS tracker (using an Arduino Uno
Stage2 : Introduce the Ethernet shield to the GPS and have simultaneous data logging.
Stage 3: address the battery usage challenge adding the bare bones board by studying Nick's experiment.
Now, i received my Arduino uno and Adafruit ultimate GPS shield, and i already have a micro SD card that i can use. So i can start Stage1.
Since it's my first time working with an Arduino, i tried the simple LED circuit first. I had a problem uploading the sketch to the Arduino, after checking out their help page, i found that i didn't set the Arduino to use the right serial port in Tools. I also made the circuit differently, so that i fully understand how the circuit works.
Assembly: To assemble the Arduino with the GPS shield , i used male headers that came with the Adafruit package. I stacked the GPS shield on top of the Arduino, then, i soldered all the pins ( after many failed attempts).
The first way to test the GPS is to put the Adafruit shield on direct mode. This will make the Arduino work as if it's a USB bridge. I uploaded a blank sketch as instructed in the Adafruit website and the GPS started giving raw GPS output that was basically blank. The GPS should get a fix outside to give valid data, but this experiment verifies that the GPS is properly working.
After making sure that the GPS worked, I switched to soft serial connect by uploading the Adafruit GPS library to the Arduino and then uploading the leo-echo sketch to it. I also kept the frequency update of the data to the lowest at 1 HZ (10 times a second).
Parsing Data : Adafruit made this task tremendously easily with their GPS library. It gives the user access to the updated information without any parsing work. I uploaded the parsing sketch to the Arduino , and did 2 small changes instructed by the Adafruit makers.