Two reverse geocache boxes, one classic and one using Android phone as GPS

Hi guys,

I am brand new to Arduino and am looking to design two puzzle boxes as a gift. I would like some idea of feasibility and difficulty.

One box is a large chest, and one is a classic small reverse geocache box such as here reverse geocache box example.

I believe most of the information regarding the classic box exists, so I would like to focus on the large chest.

I have an imgur album here which can be used to help visualise this project Imgur album.

In a nutshell, I want to fit 4 locks using servos to a large chest. Each lock works independently of each other, three locks will need to meet different GPS conditions to open. The final lock will be on a timer, counting down on the phone.

The GPS conditions will be met using an Android phone. Once the phone is in the right GPS location and the user hits a button, a new button will appear which when pressed within bluetooth range of the chest will activate one of the servos, releasing one of the locks. Like the classic reverse geocache the user will have a limited number of attempts to find the correct location.

I wanted to use a mobile ap to meet the GPS conditions, as the large chest will be too heavy to move around, and I wanted to have a bit of theatrics attached, where a large, heavy locked chest arrives at the door, and sits in the house until the puzzle is solved.

The phone will communicate with the locks in the box via bluetooth (in the picture I originally thought a second gps module to make sure chest and phone in same location, but bluetooth seems smarter since it is already short range and can be used to communicate from phone to box).

I have very minor coding skills, having written some web crawlers in python, and designing basic website using wordpress. I do basic coding in SAS at work. I have never written anything for android, though I hope that much of the code required will already exist and will require adaption.

I am interested in peoples thoughts on this, and appreciate any guidance. I have 4-6 months to complete.

Thanks!

Edit:

I have already bought a number of parts in anticipation of this project, I know I will need some other bits and pieces, including more servos, however I thought this would be enough to build, design and test an Android ap, before picking up the final parts to start the chest. If you can see anything important I have missed I would appreciate knowing!:

  • Funduino UNO R3
  • Adafruit Ultimate GPS Breakout - 66 channel w/10 Hz updates [Version 3]
  • Micro Servo - High Torque Metal Gear
  • ProtoShield Basic for Arduino
  • Hook-up Stranded Wire - Black (22 AWG)
  • 9V Battery Holder
  • Bluetooth Shield V2
  • Solderless Breadboard with Power Supply and Jumper Lead Kit
  • Weatherproof Metal On/Off Switch with Blue LED Ring [16mm Blue On/Off]
  • Weatherproof Metal On/Off Switch with Green LED Ring [16mm Green On/Off]
  • Resistor 10K Ohm 1/6th Watt PTH - 20 pack
  • Basic 16x2 Character LCD - White on Blue 5V
  • Wire Stripper 10-20 AWG Solid (12-22 AWG Stranded)

Were you going to use Serial for the BT, or keep it as debug?

If not, be sure to save pins 8 & 9 for AltSoftSerial. It's much more efficient than SoftwareSerial, but it prevents PWM on pin 10. If you need that PWM pin, use NeoSWSerial instead of SoftwareSerial on any two pins. NeoSWSerial is not as good as AltSoftSerial, but it is much better than SoftwareSerial.

I'd also suggest taking a look at my GPS library, NeoGPS. It is smaller and faster than all other libraries, and it can be configured to parse just the messages and fields you actually use. The Arduino in the small box would be using the Adafruit GPS module, not the phone, right?

Cheers,
/dev

Hi Dev,

Thanks for your reply, and as an absolute arduino beginner I have no idea about your question regarding bluetooth, however once my components arrive I will definitely use those links to help me plan my project, as I will need to rely on software libraries to code this.

The adafruit gps is indeed for the small box, and thanks for the link to your GPS library.

What sort of power supply do you think would be required for the main box, 4 servos, box with an on/off switch but sitting idle for perhaps 6-8 weeks?

Cheers
Nate

I am brand new to Arduino...

Start here, especially the General Design section. I would also suggest trying just one piece at a time, and start with the simplest examples for that piece. Gradually work your way through enough examples to the point where you feel comfortable with the capabilities of the piece and the interfacing software. Ask questions about specific examples or features, and you'll get better and quicker responses.

What sort of power supply do you think would be required for the main box, 4 servos, box with an on/off switch but sitting idle for perhaps 6-8 weeks?

You must look at the current requirements (milliamps or mA) for each piece. There are usually at least two values: one when it is fully active, and one when it is inactive or in standby. Add up all the active numbers and multiply by at least 1.5 to get the max current required. Also add up all the inactive numbers to get the standby current.

You will need a either a mains power supply rated for your max current, or a battery that can supply the max current at your minimum required voltage.

When using a battery, you will also need to use a regulator or DC-to-DC converter. There is a regulator on the Arduino board that can take 7V to 12V to provide 5V for the rest of the board. Your battery would have to provide the max current and stay above 7V. This usually eliminates 9V batteries.

Or you can get a converter module (which has a voltage input range) that can handle the max current. Some converters can boost a lower battery voltage up to 5V and/or drop a higher battery voltage to 5V. They also have an efficiency rating, which determines how much power has to be drawn from the battery to achieve the power used by your pieces. (Power = Volts * current).

To determine the required battery capacity, you have to convert the standby time (6-8 weeks) into hours. Then multiply your min current number to get the amp-hours required from the battery. For example, if it has to run for 10 hours, and it takes 10mA in standby, then 10 * 0.010 = 0.100Ah, or 100mAh. That would be the required battery capacity.

That's when you look more closely at how to power-down the pieces. Some, like the CPU, have different standby modes. Other times, you may choose to switch a piece off with a FET or an Arduino pin (watch those current ratings!).

As always, ask specific questions!

Cheers,
/dev