Install an in-hub generator into one of the wheels of your bike. We used a Shimano 3N30 because it was (relatively) cheap on Amazon, but any Shimano or Sturmey Archer hub should work. A frame-mounted 12V generator should also work, but we haven't looked into this.
This hub should put out around 6-12 V, depending on your speed.
The general idea is to charge a 3.7 V lithium polymer battery with the bicycle dynamo, then to power a microcontroller with that battery.
Use the "Charger Circuit" schematic in the picture to safely charge a LiPo battery with little to no explosions. Alternatively, you can use the Sparkfun LiPo fast charger (http://www.sparkfun.com/products/8293), which also uses the MCP7384x chip.
Carbon content measurements are accompanied by GPS coordinates
Utilized Adafruit Ultimate GPS Breakout - MTK3339 chipset. It is a user friendly and reliable device with a very accurate time base that comes with a great library to start taking position measurements right out of the box: http://www.adafruit.com/products/746. (See left image for Adafruit schematic)
The devices was powered with 5V supplied by a battery, but can also take 3.3V.
The position accuracy is 1.8m
Modified the accompanying Adafruit_GPS library to record nicely-parsed data, including: hour, minute, seconds, day, month, year, latitude degrees, latitude minutes, longitude degrees, longitude minutes
The module must be outdoors to reach a fixed status from satellites. The time until a fixed status is reached will vary depending on factors such as the degree of interference from structures.
To send data over the cellular network a GSM/GPRS module is needed. We used one from Groundlab that had a Telit GE865, but you can find other modules on sparkfun and other places. You will also need a SIM card (make sure not to buy a micro SIM card) and a data plan. There are some companies that provide services specifically for M2M, but you should check your local cell companies.
The modules require power (specifically 3.7V from a battery for the Vbatt pin of the telit), ground, Rx, and Tx lines.
GPRS will allow you to interact with a webpage and use a request to send data to a server.
Groundlab provides an open source code that lets the Telit interact with the Arduino. We have a code available to the public on dropbox based on Groundlab's with modified libraries as well that will send data over the web, but it is untested.
Now all the parts must come together. For this part an Arduino Uno was used for prototyping, but other Arduino based microcontrollers and boards will work fine as well.
All of the code can be found in the publicly available dropbox folder.
The ethernet shield is designed to sit on top of the Uno. The Co2 sensor's data can be read back over an analog pin, and SoftwareSerial can be used to convert digital pins into Rx and Tx ones for communications.
The battery and dynamo can power the circuit independently of a computer. All of this can be placed in a package that sits on the front handle bars of a bike. For mobile datalogging, the Telit can be used if working or the SD card.
The next step is to test if the circuit works and will log the data.
We'll assume you're ok with this, but you can opt-out if you wish.