Looking for an Arduino system designer for cool hardware startup (paid work)

Hi,

I am new to the world of Arduino and am currently looking for an expert of Arduino systems to help me design a data logging system for energy related products. I am forming a renewable energy based startup.

You will need to:

  • Design the overall architecture of the arduino system with all necessary components & Addons.
  • Estimate a cost for a complete unit
  • Be able to program the unit to do what I need it to do
  • Build the prototype unit for evaluation

Project scope:

The system needs to:

  • log energy generated from a renewable energy system
  • compile that data
  • have WiFi capability to connect to any local hotspot
  • send the data via API to a web server where the data will be processed for display

The system should not be excessively expensive, as it needs to be incorporated into a consumer product.

I would appreciate if anyone reading this can pass on this thread to any users who might be able to provide this service. Please send me a PM for more information or to get in touch.

if you feel you are a good fit for this task, please can you provide an initial estimate of project feasibility and cost per unit.

No idea if he'd be interested but you might try pinging JimboZA; as you might guess from the handle, he's at least in the same country.

Is the web API/site you mention existing or are you looking to get that built too as a part of the project?

Location? Is the company located in South Africa?

Timeframe?

What do you mean by excessively expensive? Ignoring the fact that you want it "As cheap as possible", vaguely what range is acceptable?

wildbill:
No idea if he'd be interested but you might try pinging JimboZA; as you might guess from the handle, he's at least in the same country.

Is the web API/site you mention existing or are you looking to get that built too as a part of the project?

Thanks, I will find JimboZA and talk to him. It may make things easier being in the same country. I am also posting this at http://jobs.arduinoexperts.com/

The website front-end will be built by myself, and I will get a freelance coder to build the web app and API for receiving the data. Since I have not built something like this before, I need to find out what is the most efficient coding language for accepting data from an arduino system. I really like AngularJS but when it comes to API's I am not sure what framework will work best.

Any pointers?

mirith:
Location? Is the company located in South Africa?

Timeframe?

What do you mean by excessively expensive? Ignoring the fact that you want it "As cheap as possible", vaguely what range is acceptable?

To be honest, the timeframe will depend on the designers estimation and ability. This is a startup in concept stage. The reason I ask for an estimate of project feasibility is to determine if it will be affordable and/or viable from a technical standpoint. I am still crunching numbers.

Striving for efficiency is all that matters :slight_smile:

The project looks feasible enough from a technical point of view: I assume your system will generate electricity eventually, so you'll need a current sensor to measure power and a wifi shield to let you transmit to the web server. Maybe a real time clock, although if you have connectivity, the web server can tell you the time. The only tricky bit will be joining the wifi network if you have to provide a password. I do something similar to record temp/humidity data to a LAMP server, but the wep key is hard coded. You might want to add a PC program that can talk to the Arduino over serial to provide the wifi network credentials and store them in EEPROM when the device is installed.

ChrisHurrell:
The website front-end will be built by myself, and I will get a freelance coder to build the web app and API for receiving the data. Since I have not built something like this before, I need to find out what is the most efficient coding language for accepting data from an arduino system. I really like AngularJS but when it comes to API's I am not sure what framework will work best.

Any pointers?

One thing to realize is that the Arduino is VERY limited CPU and RAM resources. Imagine a Commodore 64 from the 80s. Your API needs to be simple -- stupid simple -- dead simple. As in, ideally, your web server should accept a binary blob from the Arduino which contains the data you want in a proprietary format that's easy for the Arduino to handle, even if it's a headache on the web server side to decode. Putting the headache on the web server side is best, because the web server is orders of magnitude faster and has orders of magnitude more RAM.

Implementing JS, XML, or any of that high-level stuff on the Arduino adds significant development time and pushes the hardware limitations. If you really really don't want to deal with a proprietary binary blob, using CSV (Comma Separated Value) format is about as complex as you want to get on the microcontroller side.

Just my .02. :slight_smile:

wildbill:
The project looks feasible enough from a technical point of view: I assume your system will generate electricity eventually, so you'll need a current sensor to measure power and a wifi shield to let you transmit to the web server. Maybe a real time clock, although if you have connectivity, the web server can tell you the time. The only tricky bit will be joining the wifi network if you have to provide a password. I do something similar to record temp/humidity data to a LAMP server, but the wep key is hard coded. You might want to add a PC program that can talk to the Arduino over serial to provide the wifi network credentials and store them in EEPROM when the device is installed.

Thanks for the input. So in order to do this, an extra serial port will need to be installed.

How about this: Instead of adding an extra serial port, what about using a USB stick containing a very simple program that you can plug into windows/ linux/ mac which simply requests WiFi credentials. Once details are set, unplug from PC, plug into the Arduino USB port and the system uses that data to set its own WiFi credentials - allowing it to connect to the local WiFi.

Perhaps its the right time to ask: Is Arduino best for this or is there a better board to use for this application?

tylernt:

ChrisHurrell:
The website front-end will be built by myself, and I will get a freelance coder to build the web app and API for receiving the data. Since I have not built something like this before, I need to find out what is the most efficient coding language for accepting data from an arduino system. I really like AngularJS but when it comes to API's I am not sure what framework will work best.

Any pointers?

One thing to realize is that the Arduino is VERY limited CPU and RAM resources. Imagine a Commodore 64 from the 80s. Your API needs to be simple -- stupid simple -- dead simple. As in, ideally, your web server should accept a binary blob from the Arduino which contains the data you want in a proprietary format that's easy for the Arduino to handle, even if it's a headache on the web server side to decode. Putting the headache on the web server side is best, because the web server is orders of magnitude faster and has orders of magnitude more RAM.

Implementing JS, XML, or any of that high-level stuff on the Arduino adds significant development time and pushes the hardware limitations. If you really really don't want to deal with a proprietary binary blob, using CSV (Comma Separated Value) format is about as complex as you want to get on the microcontroller side.

Just my .02. :slight_smile:

CSV sounds simple enough and can easily be processed by Javascript, importing into a database.

http://pinocc.io/ looks quite interesting...

ChrisHurrell:
How about this: Instead of adding an extra serial port, what about using a USB stick ... which simply requests WiFi credentials. Once details are set, unplug from PC, plug into the Arduino USB port

Not quite, the Arduino's USB port cannot be used in this manner. However, what you propose is quite reasonable with an SD card (standard size or micro). Be aware, though, that the Arduino libraries to work with SD cards do take up a large-ish chunk of flash. This may or may not be an issue depending on how complex the Arduino code needs to be.

Perhaps its the right time to ask: Is Arduino best for this or is there a better board to use for this application?

We may be biased. :slight_smile: However I think an Arduino is up to this task.

The 'Spark Core' can be used as an independent controller for WiFi control that connects to the Arduino. So that makes it possible to shift the web API logic off the main Arduino board.

"The Core uses Wiring, the same programming language that Arduino uses. Plus, with an accessory called the Shield Shield, you can connect the Core to any standard Arduino shield."

Anybody used one before?

Thanks for the input. So in order to do this, an extra serial port will need to be installed.

Oops - my suggestion's worded badly. You can have a PC program that talks to the Arduino over it's serial port. It'll appear to the PC as a USB port. No need to add extra hardware, you can plug the two together with a USB cable just as you do when programming it. The PC app can ask the installing user for the wifi credentials and then push them down the wire to the arduino which stuffs them into EEPROM. Then,hey presto, wireless connectivity.

What you're asking is well within the capability of an arduino. In fact, you might want to add some additional code for it to solve chess problems so it doesn't get bored just measuring and reporting power metrics :wink:

wildbill:
No need to add extra hardware, you can plug the two together with a USB cable just as you do when programming it. The PC app can ask the installing user for the wifi credentials and then push them down the wire to the arduino which stuffs them into EEPROM. Then,hey presto, wireless connectivity.

Sounds very reasonable...