Tracking device with arduino

Hi everyone,

For one of my engineering projects our professor asked us to use Arduino and a microprocessor to make and test a product. Our group had the idea to make a device where the parent could have a receptor that would notify them if there kid got to far away from them. The kid would be wearing a tracking device of some kind that would send and receive data from the receptor. What is the best way to approach this project and how should we program our microprocessor for this to work? Sorry for asking so much but we've never had any experience in programming or working with microprocessors.

Thank you so much for your time!

How about starting with something more reasonable.
Say a home security system.
Series of switches/buttons that you can detect as open or closed or transitioned, display as alarm light with sound.
You can use Learning section and Playground section on the arduino.cc page to be able to figure a lot of that out.

Well, I might suggest ultrasonic. Your tracker for the child sends out a ultrasonic sound, set to a particular frequency- or better, a particular pattern (on-off) so that multiple units could work in the same area. The receiver then listens for it's matching transmitter.. and if it can't hear it, it's time to signal the parent.

My assumption would be that the kids ought never be out of hearing range.. and setting sensitvity on the receiver would give you a very rough method of setting a perimeter.

I'd think that RFID tags would be good, except that their range is so limited. In terms of something that could actually work, as far as I can think, a simple "transmitter must be in radius of receiver" is all you need. Ultrasonic, RF, what have you.. for that matter, it might be possible to make the transmitter nothing more than a serial bluetooth loopback, and do the "receiver" in code-- code that runs on cell phone, tablet, or PC. Send a stream of data through the link, and if the bluetooth loopback is out of range, that stream of data will fail, and you then alert the parent. Bluetooth modules that are likely capable of acting as a dumb loopback are about $12 on ebay.

I guess the question is how old a child are we talking? If it's a toddler, then a simple system like this would probably suffice and have typical bluetooth range of 30 feet or so. If we are talking about an teen, then you really are into GPS and telemetry, which is not a beginner's project by any means.

How about starting with something more reasonable.

I agree this would be fairly difficult, but definately do-able. There are plenty of GPS modules available. Connect one up to the arduino, plus a GSM shield and sim card. When the GPS reads a large distance from home (home location - current location. If distance > threshold), get the GSM shield to send a text to the parents. This would mean a control panel on the product to allow the parents to enter the threshold, phone number and home location, which may be awkward. Possible, yes; easy? No.
Xbees (supposedly) give a signal stregnth indicator. Make the tracker send a GPS location (or a random number). If the signal stregnth is low, the receiver can alert the parent. If you do send GPS data, it can also tell them where. Possible, yes; easy? Easier than the previous idea...

Onions.

But it wouldn't work indoors.

But in most cases, you wouldn’t worry about where your child gets to when indoors. Large hotels and buildings on the other hand…

It's all about the range, I suppose.. which is defined by the age of the monitored child and their likely distance from Mom and Dad.

If bluetooth were used, then it's not too hard, as it's already a serial connection and most GPS modules are serial also... but that assumes you can get a GPS signal- which as noted is kinda iffy indoors.

focalist:
It might be possible to make the transmitter nothing more than a serial bluetooth loopback, and do the "receiver" in code-- code that runs on cell phone, tablet, or PC. Send a stream of data through the link, and if the bluetooth loopback is out of range, that stream of data will fail, and you then alert the parent. Bluetooth modules that are likely capable of acting as a dumb loopback are about $12 on ebay.

I like this idea of using Bluetooth in our device! How would we go around programming this into Arduino?

Thank you all for the fast responses!!! We appreciate it so much!!!

Tie a string to the kid, with the other end tied to a switch. When the kid gets too far away, the string gets taunt and triggers the switch. The switch then pull an Arduino digital input low, and the Arduino then blinks. This is simple, cheap, works indoors and outdoors and has plenty of range. Want more range? Add more string.

Well, you don't even need the Arduino. What you would do is simply connect the RX and TX lines on the serial port end of the bluetooth module. It would be functionally the same as doing the same (loopback) thing on a regular hardware serial port. The modules default as a serial port connection, 9600 baud. Pair it with the device (phone, etc) and whatever you send should echo directly back. If it doesn't, you are out of range, and then you alert the parent.

Note that I haven't actually done this, but at least conceptually it should be possible.

Chipper alternative would be design device with nRF24 board, 2 pieces for less than 6$:
http://www.ebay.com/itm/2-pcs-Arduino-NRF24L01-Wireless-Transceiver-Module-/280743613346?pt=LH_DefaultDomain_0&hash=item415d9f93a2

I've got the GPS/CDMA bit working. Too big to wear it and not durable enough.
Maybe would be suitable for extended range like a mile?

Instead I can show you code to Beep when XBee RSSI goes below a threshold.
Or measure the energy level for a given channel.
This makes the transmitter tiny, no Arduino needed, but expensive?

Unfortunately using Arduino is part of this project so we have to find a way to incorporate it.

Magician:
Chipper alternative would be design device with nRF24 board, 2 pieces for less than 6$:
http://www.ebay.com/itm/2-pcs-Arduino-NRF24L01-Wireless-Transceiver-Module-/280743613346?pt=LH_DefaultDomain_0&hash=item415d9f93a2

We liked this idea but how would we program them to send and receive data from each other?

Google returns 1.740 results on search "nRF24 arduino" :stuck_out_tongue:

The most obvious technique would be for the kid to wear a wireless board connected to the arduino (Whatever if it’s 802.x or anything else as long as it can transmit data) which would do something like that:

  • In “proximity mode” the device shal notl broadcast information too often (Toxicity of 2.4GHz if used could be a concern for some parents).
  • Sample the access point signal every 1 second.
  • Put these samples in a buffer, lets say over 30 entries (30 last sampled seconds).
  • Based on the average signal over time / variations, determine a threshold after which the device would consider itself “too far”.
  • Past this threshold, the device should emit more often.
    With this pattern, just one thing needs to be solved: what kind of information would broadcast the device? i guess it depends on the budget. For instance, if you can couple a GPS with the system, then you get the last known location, the heading (If you look at the vector of a few last known locations). If you only have a compass available, you’ll know the heading, but that would be sufficient for your application, i don’t think babies know how to run in random patterns to loose their supervisors :smiley:

Hope that helps,
Pierre.

Don't forget to give the kid a small suitcase for the batteries :grin:

Don't forget to give the kid a small suitcase for the batteries

Make sure it is a lead-acid, and they won't be able to wander too far !