I am pretty new to Arduino and after various search online I can't find an answer to a question I am asking myself.
Problem is following: I have an idea for a project in Arduino for which the end user would be someone who doesn't know anything about Arduino. However in order for the end user to use the product he would have to enter a personnal ID into the software so that the software would be personnalized with his name/or ID. How could the software be updated with this information in a simple way ? (meaning without having to install the Arduino software or know anything about coding).
To take a more concrete example, let's consider the following project :
Imagine you produce 10 of those for your friends but you need a way for them to enter their own facebook ID though they don't know anything about Arduino, waht would be the best solution ?
I have a few leads :
Arduino as a wifi web server and then you have to connect and enter your information -> quite big solution for I think a small problem
Having a software/webpage either online or stored on the arduino that would ask the user its ID and automatically update the arduino program while connected through USB (Would be nice but could not find anywhere how to do this ?? at least how to upload a program on arduino through a webpage ??)
Keyboard on the item so that you can enter your ID after pressing a button - again then a lot of hardware needed for a small problem.
Why is this needed if it is much easier to do this from a regular computer? Also you don't need to know any kind of coding language, if you use a computer.
Arduino as a wifi web server and then you have to connect and enter your information -> quite big solution for I think a small problem Overkill
Having a software/webpage either online or stored on the arduino that would ask the user its ID and automatically update the arduino program while connected through USB (Would be nice but could not find anywhere how to do this ?? at least how to upload a program on arduino through a webpage ??) Are you looking to compile and upload the code from the webpage, im not sure if that's possible.
Keyboard on the item so that you can enter your ID after pressing a button - again then a lot of hardware needed for a small problem. Again overkill, but you could use a 4x3 keypad.
What about writing a small PC program (perhaps with Python) that connects to the Arduino through USB (or Bluetooth if you can include a Bluetooth device in your product) and allows the user to enter some data that is stored in the Arduino's EEPROM ?
If your Arduino project will have a web interface for its main activity then it could perhaps just show a browser page that could receive the data.
Thanks for those two replies though it doesn't really solve my problem. To answer the first reply :
Why is this needed if it is much easier to do this from a regular computer? Also you don't need to know any kind of coding language, if you use a computer.
Not sure I understood clearly but my goal would be for exampl to produce 1000 units and have the end user be able to enter a specific ID into the arduino program (without having to download the arduino software or whatever)
Are you looking to compile and upload the code from the webpage, im not sure if that's possible.
Well I was thinking indeed if that is a possibility. Considering again the Fb like counter I linked to as an example. Imagine you build one and give it to someone. I want this someone who doesn't know anything about programming/arduino to plug the little FB counter through USB and then have a really easy way (webpage/autorun/.exe stored on the product) to specify what is his/her own FB id.
Ideally, you plug the product through usb. Go to www.webpage.com/configure, fill in a form with a Fb ID and from now on your counter shows the Fb like of this new id. To do this I guess it means the webpage as to update your arduino program or at least send a data to be stored there.
What about writing a small PC program (perhaps with Python) that connects to the Arduino through USB (or Bluetooth if you can include a Bluetooth device in your product) and allows the user to enter some data that is stored in the Arduino's EEPROM ?
Sounds good, any idea where to find a tutorial that would explain how to code (in python or else) a programm that would update the arduino program ?
Having a software/webpage either online or stored on the arduino that would ask the user its ID and automatically update the arduino program while connected through USB (Would be nice but could not find anywhere how to do this ?? at least how to upload a program on arduino through a webpage ??)
This seems like the most practical approach. There lots of alternative ways to implement it, depending how slickly you want it to work (including what platforms it works on) and how much effort you're prepared to apply to achieve that. The simplest and most general solution would be to provide a native application built for each platform which presents a simple UI to enable you to configure and control the device, which cooperates with the device using the serial connection. Variations on this would be to assign your own USB device ID and your own variant of the FTPD device driver so that the PC recognises the device as your product and not a generic Arduino, reducing the amount of user input needed to establish the connection to your device.
In the Setup, have the person enter the data that's required. Then save it to EEPROM. Have an option to skip it next time. This can be done with 2 or 3 buttons. The LCD will display an ASCII letter/number. Press Adv for next one. Press OK to put in text. Then Adv to next one, OK and so on. When done entering, press OK again. If you have ever used search on your TV remote, then you know how this type of entry works.
Maculatus:
Sounds good, any idea where to find a tutorial that would explain how to code (in python or else) a programm that would update the arduino program ?
You might look at the demo in this Thread. Google should be able to find lots of others.