Xively (formerly Cosm and before that Pachube) is a platform devoted to simplifying the interconnection of devices and data with applications on the Internet of Things. It is an on-line database service allowing developers to connect sensor-derived data (e.g. energy and environment data from objects, devices & buildings) to the Web and to build their own applications based on that data.
This embedded platform is a modular and configurable Xively data logger, built on an ATmega328 micro, usefull to send datapoints to your xively feed.
It has a network interface, so you can configure it using any browser, just pointing to the device address.
Network can be configured in two way:
- Static IP, Gateway, NET Mask
- DHCP
The Xively API Key and feed id can also be modified though the network interface.
Those parameters can be usefull if you want to build many devices with same sensors, and then connect it over different xively feed, without compiling and uploading a new hex.
To make this platform easly expandable, the portion of code that gets data from sensor has been divided from the other code.
Every sensor module must “implements” (we are not using class here, but i’m using a object oriented term) some functions. Every sensor module, must be registered it in the checkdata.c file.
Every module must implements a set of function with strongly name rules, every function name must ends with a terminal string, depending on what the function implements.

A PCB has been developed on top of the use of the Arduino Pro Mini board, to speed up the deploy of logger boards.
So i’ve written modules for many sensor:
- temperature
- AC current
- luminosity
- and many other
Code