Introduction: Halloween Bowl/Bag GPS Tracker

I got the idea for this project after reading articles about children got lost on Halloween eve when trick and treating. So i came to the idea to built an GPS tracker that is portable and small enough to put it in a child's candy bowl/bag. I used GadgetKeeper Internet Of Things Cloud Platform to send GPS data via GPRS mobile internet module. GadgetKeeper is free and has also support for mapping GPS data in Google Maps.

Step 1: Parts

1x Arduino Nano

1x SIMCom Sim800L GSM Module

1x UBlox NEO 6M GPS Module

1x 400 pin Breadboard

1x 5000 mAh LiPo battery


Step 2: Prepare the Hardware

Arduino Nano Wiring

PIN name | Connection

D2 | SIM800 TXD pin

D3 | SIM800 RXD pin

D11 | GPS Module TX pin

D12 | GPS Module RX pin

3V3 | GPS Module VCC pin

GND | GND line on breadboard

5V | SIM800 VCC pin

SIM800L Wiring

PIN name | Connection

GND | GND line on breadboard and soldered battery (-) pin

RXD | Arduino Nano D3

TXD | Arduino Nano D2

VCC | Arduino Nano 5V pin and soldered battery (+) pin

GPS Module Wiring

PIN name | Connection

GND | GND line on breadboard

VCC | Arduino Nano 3V3

RX | Arduino Nano D12

TX | Arduino Nano D11

Battery Wiring

I soldered the + battery pin directly to SIM800L VCC pin and also the - battery pin to SIM800L GND pin.

Step 3: Add Required Additional Arduino Libraries

I have used Arduino 1.5.6-r2 version as the IDE.You can download it from this url.

I used the ITEADLIB_Arduino_SIMCom library on which I made some changes for GadgetKeeper Cloud Platform. The changed and working library can be found my git page in lib folder.

All other required libraries are available as standard libraries with the IDE.

Step 4: Configure GadgetKeeper

Create "GPS" thing

  1. In the "Things" tab, open "Create Thing" dialog
  2. Set the name as "GPS", and choose the icon
  3. Save thing by clicking "Save"

Step 5: Configure GadgetKeeper

Create "locationChanged" even

  1. In the "Thing: GPS" tab, open "Events"
  2. Click "New" to open "Create Event" dialog
  3. Set name to "locationChanged"
  4. Set data type to "Location" by:
    1. clicking the [...] button on the right of "Data Type" input
    2. Click "more types in the drop-down menu to open the "Select Type" dialog
    3. Start typing "location" in the search field to locate the data type
    4. In the "Matching items" list, select the "Location" data type
    5. Click "Select" to enter this structured data type in the "Data Type" field
  5. Save new event by clicking "Save"

Step 6: Configure GadgetKeeper

Fire "locationChanged" event using UI

  1. In the "Events" section of the "Thing: GPS" tab, select "locationChanged"
  2. Click "Push Event" to open dialog
  3. Insert the following JSON formatted data structure in the text area


"value": {

"lng": 0.2518468908591578,

"lat": 0.24998551609595354

}, "

at": "2015-10-27T16:03:40.467+0000"



4. Click "Push" to activate the event

Step 7: Configure GadgetKeeper

Create "GPS" dashboard

  1. Open "Dashboards" in main menu to show list of dashboards
  2. In the dashboards list, click "+" to show "Create Dashboard" dialog
  3. Set the name to "Temperature"
  4. Click "Save" to save new dashboard

Step 8: Configure GadgetKeeper

Create "GPS position" widget

  1. In the "Dashboard: GPS" tab, click "Add Widget" to open drop-down menu
  2. Click "Map Position" in this menu to open the "Settings" dialog
  3. Set "Title" to "GPS position"
  4. Set "Thing" to "GPS"
  5. Set "Location source" to "Event"
  6. Set "Event" to "locationChanged"
  7. Set "Map Zoom" to "18"
  8. Set "Refresh rate" to "10"
  9. Click "Save" to save the new widget for displaying GPS position on a map

Step 9: Arduino Sketch

This is the arduino sketch for this project can be found on my github page:


Information about uploading Arduino Sketch can be found here.

Step 10: Example

Here is an example of the dashboard how it looks like after everything is successfully set up.

The google map's picture can be more zoomed in, but because of privacy reasons i left in so as it is.