After a few hectic months we are proud to release massive improvements to both parts of the project, the map site and Android as well, just in time for Tokyo Marathon tomorrow, where Joseph Tame will bravely carry our sensor kit, among other gadgets.
EcoCitizen Map improvements
- Real-time mode that can be enabled/disabled with a checkbox
- Graph can slide out/in, and other improvements
- Faster and more responsive user interface
- Several smaller improvements and bugfixes
EcoCitizen Android improvements
- File uploader tool with preview and delete options
- Show more GPS details: speed, altitude, accuracy, bearing
- Hexadecimal view for debugging sensors that send messages in binary format
- Reset settings to defaults option
- Several smaller improvements and bugfixes
Roadmap (short term)
- EcoCitizen Map
- Advanced filters / data selector controls
- User comments taken during data collection
- EcoCitizen Android
- Support for new sensor types (physiological)
- Support for multiple sensors connected at once
- User comment interface during data collection
Our friend was kind enough to carry one of our sensors while he ran the Tsukuba Marathon. Here’s the data!
Big Thank You to Yunosuke!
Web service API improvements
- New web service API v4
- Include Sensor ID in every /store request
- Include timezone offset for each date
- Several other minor improvements
- Architecture has been completely rewritten
- Sensor devices are managed by a proper Service: a remote process running in the background
- New framework of sensor data “consumers”: a “consumer” is a class that registers itself to the sensor device manager, and receives sensor data through a callback method
- New views can be implemented as “consumers”
- Consumers in this release:
– Tree view: shows CO2, tree image changes to reflect severity of the CO2 level
– Tabular View+: shows any type of data received from a sensor as a table
– Sentences View: shows all incoming raw sentences
– Sensor Map Uploader Service: uploads all incoming sentences to the Sensor Map
- Dirty hacks have been completely eliminated, the code is clean now
- Updated data model to support more data types not just CO2
- Lots of UI improvements and bugfixes
- CSV download
- Work on a brand new look has started, it will become the new official homepage with massive UI improvements
Note: Soon the website URL will be changed. The SenspodApp and SensorMap projects may also be rebranded.
Overall, the architecture has the following features:
- SenspodApp can receive data from any Bluetooth device that sends lines of data (“sentences”) via the serial port profile.
- GPS information is automatically attached to sentences received and broadcasted to sensor data “consumers”.
- Sentences in the format $PSEN,… can be interpreted and displayed on one of the existing screens. New screens (= “consumers”) can be easily added by implementing a callback method.
- Raw sentences are forwarded to the map server where they are stored even if the format is not yet supported. This way the measurements are never lost. Sentences in supported format can be displayed nicely; sentences in unsupported formats are simply stored for later use.
Let us know your comments, and if you have any questions or issues with the new release or the project in general. We are looking for collaborators of any kind, researchers, programmers or volunteer data collectors.
Just to give a quick update, the two components of the project, SenspodApp and SensorMap have undergone a major design change. With the current versions no data is lost, the SenspodApp can connect to any Bluetooth device, and the SensorMap can store data in any format.
At the moment we are working on one more major design change with two main points:
- SenspodApp complete architecture redesign with cleaner separation of components for significantly improved scalability and extensibility.
- SensorMap API improvements to store additional details.
Both projects are still in a flux, especially the Android project, but available here:
In a few more weeks we should be able to clean up the code nicely, after which we can start planning how to attract more contributors—coders and data collecting volunteers alike.
- Now you can adjust the maximum number of markers shown.
- Use satellite view as the default map view.
- More gradations to show CO2 levels.
We really want to open-source this as soon as possible, but some ugly parts still remain to be cleaned up, and we’re thinking to overhaul the database design to make it more scalable and suitable for arbitrary types of measurements, for example NOx, humidity, temperature and whatnot. So stay tuned still!
Yes, it is very spartan, but it works! The SensorMap (or Pollution Map) is created, now the measurements can be visible on the internet. After a bit of cleaning up, we will open up the repository of course, until then, stay tuned!
This took a couple of steps:
- API design for exchanging data between the Android app and the map server
- Implementation of the web service calls from Android to the map server API
- Smart data management in the Android app: the thing is, we cannot use the 3G network, because the subscription is too expensive. However we use wifi without subscription. We just needed to make the Android app smart enough to cache data when there is no wifi around, and send everything when it finds a wifi.
We are still working on the “Sensor Map”, where you can see and browse the data we measured. We are developing it in django, the repository will be open source just like the Android app, stay tuned!