...
One idea I have is for the Arduino to send a generic XML file to the serial port which is so easy using the Serial library built into the C language e.g. Serial.Print("Hello world"); We could hijack the Pachube XML schema or the weather station XML schemas.
You plug a laptop into the USB port, run a generic program with a command to extract the data to an XML file on disk. Then import that file into hundreds of applications that read XML. Its cheap and cheerful, minimum cost is the £12 Arduino and a USB cable...you could plumb in a fixed USB cable to a desktop PC but only read the data when the PC boots up and email it to a central server for example. Its a lot simpler than setting up a router...which quickly becomes rocket science for most people. It might not be real time, but mostly we are interested in historical data.
Paul, sadly, I don't think that would work (at least
not for Mac and Linux without a constant connection).
"Note that on Mac or Linux, the
Arduino board will reset (rerun your sketch from the beginning)
when you connect with the serial monitor."
http://arduino.cc/en/Guide/Environment Which I read as meaning that 'occasional' data transfer by 'occasional' serial monitor connection is a bit of a non-starter for my Mac or the old PC that continually reminds me that there are lots of pretty basic things in Ubuntu that I still haven't got to grips with - yet.
The appeal of Arduino is that its a cheap realworld/sensor/hardware "interface" for the Mac that is itself comprehensibly programmable thanks to a fairly high level language and accessible documentation.
However, the obvious limitation of Arduino is its scarcity of resources - though its kinda wonderful compared to a ZX81. In fact its more than a bit like an Acorn Atom (plus optional 6522) on a chip, and 16x faster for a fraction of the price.
But with just one k of RAM (total, for all program variables), there is a very low limit to the quantity of data one can "just hold" before offloading it, somehow.
And if data is stored simply as variables in a running program, its not possible to retrieve it "later" by serialmonitor to Mac or Linux.
However, if you stuff it into the built in EEPROM, then you do get data that survives the reset, but even that is just 500 characters-worth of unstructured data space.
Hence my readiness to shell out (a little) for the prospect of additional secure data storage. IMHO a PC/Mac/Linux readable usb flash drive seems easier than using an "unformatted" EEPROM on an I2C bus -- which seems to be the alternative. That or bog down the Arduino trying to do FAT16 DOS.
Even an ancient and economically near value-free 128Mb usb flash is on a whole different scale to the 'built-in' resources.
If only one can use it easily and without overtaxing the Arduino.
While I mentioned a CSV file for spreadsheet/database import, there's no reason one couldn't store the data in XML format in a file on the USB flash to transfer that data to computers (and thence the web).
And if you keep that data storage code together as a chunk, not mixed up with anything else, then its more straightforward to alter it to display the data, or store it in a different medium, like an SD card via the Arduino ethernet shield or via the Adafruit GPS logger shild's SD card, or that I2C connected EEPROM.