I need some help figuring out a direction with this project. My background is in computer science but I have never worked with Arduino's before. I have very little "computer engineering" experience but I am a quick learner.
I have attached a diagram for a better explanation.
What I am wanting to accomplish:
Wireless transmission of diagnostic data from a field unit to a base receiver in a maintenance building. I need to have field units transmitting sensor data back to the maintenance building in real time (or near real time) to proactively monitor issues with the field unit. Field units can be up to a mile away from the maintenance building.
Initial sensors I would like to use:
Tire Pressure (3 - 4 tires for each unit)
Temperature (for engine)
Hour Meter
Oil Level
Fuel Level
Each field unit needs to have a unique identifier and transmit the sensor data back to the base station to some type of log file. I would prefer to use a MS SQL database but am open to other options (including flat file databases). Once I can get the data back to a database, I can handle the programming of the diagnostic software.
Is this something Arduino can do efficiently and effectively (including cost)? If so, could you point me in the right direction to get started? If not, then can you point me in the right direction to get started :).
The Arduino and sensors can collect the data, and send it to the serial port. Each can have a separate ID.
You'll need a XBee shield and high power XBee to send data that far.
On the receiving end, you'll need some application that collects the data from the serial port. That application can interact with a MS SQL database, flat files, whatever.
The most challenging part, aside from the distance, is going to be preventing two senders from sending at the same time, or managing the situation if that happens. Polling by the base unit will probably be required.
I'm not convinced that real time collecting of the data you list is essential. Every 10 seconds looks like often enough to me.
Your question contains nothing about what cost-effective means to you, so that part can't be answered.
I am not looking for someone to "do all the research" for me so please don't take the following questions as that.
Where do I start to look for and find the sensors I need?
Can you give me some guidance on XBee? What is it? Where can I buy it?
On the receiving end, would this "application" you suggest be collecting data from the serial port of a 2nd Arduino? I am a little confused as to what the transmitting Arduino will transmit to here. Would it be a PC application that would talk over XBee to all the Arduino's in the field?
With regards to distance, can XBee be extended in an outdoor environment? Similar to how you can extend WIFI...
Real time is not necessary. I consider even 30-60 seconds to acceptable. If the "base receiver" was a PC application, then would you have it poll each Arduino directly via the unique identifier to collect the sensor data?
How long would it take for the base receiver to collect the data from those sensor over XBee (I am assuming milliseconds)?
Finally, with regards to cost, I did not mean that I had a set amount I could spend. I meant compared to other potential solutions out there, can the Arduino and it's sensors compete price wise?
Thanks again so much and I hope you don't take this as me needing to be "babied"...just starting out and need a little guidance.
Where do I start to look for and find the sensors I need?
Google/Ebay
Can you give me some guidance on XBee? What is it? Where can I buy it?
http://www.digi.com Pay attention to Series 1 vs Series 2/2.5, so you get the right kind.
On the receiving end, would this "application" you suggest be collecting data from the serial port of a 2nd Arduino? I am a little confused as to what the transmitting Arduino will transmit to here. Would it be a PC application that would talk over XBee to all the Arduino's in the field?
No Arduino needed on the receiving end. An XBee and a [urlhttp://www.sparkfun.com/products/9819]USB Explorer[/url] are all that are needed. Sparkfun has XBees, too. Yes, the PC would talk, via XBee to the field units.
With regards to distance, can XBee be extended in an outdoor environment? Similar to how you can extend WIFI...
I don't know how you envision extending WiFi, so I can't answer this. Some XBees have a range of up to 15 miles, though.
Real time is not necessary. I consider even 30-60 seconds to acceptable. If the "base receiver" was a PC application, then would you have it poll each Arduino directly via the unique identifier to collect the sensor data?
Yes.
How long would it take for the base receiver to collect the data from those sensor over XBee (I am assuming milliseconds)?
That depends on how much data you transmit, and how. Binary data (integer) from 8 analog sensors could be sent in as little as 16 bytes, although more, to include the sender ID, start of packet and end of packet markers, etc. would be better. At 115200 bits per second, 20 bytes, or 160 bits (+40 for start and stop bits) wouldn't take long at all to transmit.
Finally, with regards to cost, I did not mean that I had a set amount I could spend. I meant compared to other potential solutions out there, can the Arduino and it's sensors compete price wise?
Compete with what? You can't ask at the Ford dealer to learn about the advantages of Chevy, can you? We can tell you what is possible, and define some of the costs. Sometimes, we can mention alternatives, but not in this case. It's up to you to add up the costs, and see if they are reasonable/better than the alternatives (whatever they are).
Google. Or search with the suppliers like Mouser, Farnell, Digikey. Be prepared for a 1000 results though.
Xbee is a simple wireless transmitter/receiver. In a nut shell you feed serial in one and and get serial out the other. You can buy them from just about everywhere, start with Sparkfun.
3,5. I would see a master Arduino that polls the slaves, collects the results and send the data to a PC via the USB port. However I guess a PC could do the work directly.
Yes up to several miles according to the blurb, but I haven't used them.
There will be overhead in you polling/handshaking protocol, but a few mS per sensor I would think.
Cost: your remote units can be very simple gadgets if that's important. You can buy an "Arduino" clone for maybe $15-20, the sensors will probably cost more than that and the Xbees more again.
Are all the things being sensed physically remote from each other? If not you can combine sensors and only use a single Xbee for several of them.
To answer your question, all sensors will be housed together on 1 field unit. Are the Arduino clone's inferior to Arduino or will they get the job done?
In that case you only need a single remote Arduino (and Xbee) and your protocol is basically nothing, the Arduino can just send when it likes. You should still have some error checking etc (depends on how critical this data is) but you don't have the issues multiple units would cause.
Are the Arduino clone's inferior to Arduino or will they get the job done?
I suppose there are varying qualities like anything else, but I would think any clone or original would do the job. The originals are pretty cheap anyway, especially as we're only talking one of them.
The Arduino has both digital and analogue inputs so it's quite likely you can read existing sensors with little or no extra circuitry. But you need to know exactly what these sensors output.
Some produce analogue voltages, some frequencies some just a digital level. This means that you need to get the data sheet for the sensors and hope that they have a readily available signal to read and that they properly describe the signal. Some are proprietary and don't like you dicking with them.