end user configure Arduino?

I'm working on a project that will use a bunch of sensors (up to about 20 I'm thinking at this point), and if one goes outside a range of values, a text/email is fired off. So I need wireless.

I also want the end user, who doesn't have a capability to modify, compile and upload sketches, to be able to change the configuration based on their specific environment. The range of values would change, and obviously the wireless configuration would change. Other than tweaking ranges and wireless setup, the sketch itself would not need to change.

The problem I have is how to change the configuration of the Arduino without uploading a new sketch. I am thinking an SD card reader that has a text file in the SD card. The user can pull out the SD card, modify the text file, and put it back in. The Arduino would (after being turned on) read the series of data from the text file and use those values in the ranges/wireless setup.

I think I got all the sensors, programming, and such kinda figured out.

I saw a video with the Arduino setup as a web server, and he changed the IP address of the Arduino via the browser. So I am thinking I could also do much the same with the sensor ranges. The only problem then would be the wireless. If they screw up the wireless configuration, they loose access to the Arduino, which is a problem. If the power goes out, I suspect that the configuration they changed would be lost, which is also a problem.

So a couple questions -

  1. I am concerned that memory will be a problem with both a wireless and a SD reader component. Any advice?

  2. Any reason SD card idea would not work? Seems that it would, but I'm pretty new to Arduino/electronics.

  3. Is there a way to use a USB drive rather than a SD card? It would solve the problem of an end user needing a SD card reader on a PC or something.

  4. Is there a better way to do this?

I am sure others have been looking to do the same thing I am looking to do. If there is a better solution than the Arduino, can someone point me in the right direction? Raspberry Pi maybe? I prefer to stay with Arduino, but only if it'll work. :slight_smile:

Thanks!
Scott

Implement a menu system, using a 16x2 LCD and input device (rotary encoder, matrix keypad, even a bluetooth smartphone!).

MENWIZ is pretty easy to use and you can then set up variables and change them on the fly. Use the EEPROM savfe ability in MENWIZ and you can save the values and read them in next time the device starts.

As tack says, EEPROM, but if that's not enoigh memory, there are other memories available... FRAM comes to mind. As well, there's the SD card, but you aren't limited to changing it on a PC using a card reader. It can be written and read by the Arduino, either wirelessly or over USB. Smop, ans they say; Simply a Matter Of Programming.

As for losing the wireless because of changes in configuration, just don't let anything change that would clobber the wireless.