Air pollution is a major problem in large city ports. But accurate air quality measurements are expensive. Can we encourage a citizen science project deploying low cost sensors around the city and use Data Science to improve the accuracy of the measurements. This is the inspiration of the Solent Airwatch project (http://www.solentairwatch.co.uk/) Large City Sea Ports (Smart Ports) also have a need for a service catalogue which can manage services including IoT devices. We are trying to see if we can we combine both requirements to deliver a common platform which supports the air quality measurements as one service among many on a geneic IoT platform.
What it does
The smart IoT platform allows remote sensors to be built by hobbyists and registered with a core platform based upon the open source OpenNMS project. We deal with software deployment and update, secure registration of multiple services running on the same IoT device. The entire solution is highly scalable open source.
How I built it
The hack leveraged stable Open Source components which means that the solution is supportable and can scale. All of the components can be deployed into docker containers which makes repeatable deployment much easier. Most of the code is written in OSGi enabled Java.
The following components were developed (on Github)
- A mqtt client plugin for OpenNMS to allow OpenNMS to receive (json) mqtt messages from a broker. These messages can be treated as events or performance measurements
- A generic Plugin and licence manager for Java/Karaf based IoT devices ( Eclipse Kura, OpenHAB and OpenNMS Minions) - allows each karaf instance to query a catalog for what software it should be running and authenticate the software using a licence. The Karaf instance regularly contacts the catalogue to update licences or software configuration..
- A multi container docker-compose configuration to allow a simulation of multiple devices to be launched
Challenges I ran into
The problem space is complex with many moving parts. It would have been great to have a number of students to work on different components of the hack. Ultimately I ran out of time to complete all I set out to do but it is a work in progress.
Accomplishments that I'm proud of
Building a repeatable test bed which demonstrates the proof of concept. Showing how a TMForum catalogue could be integrated with a low level IoT features deployment mechanism in a production environment.
What I learned
docker, karaf feature management, mqtt brokers
What's next for Vancouver Airwatch
The project is gathering steam in Southampton and we want to deploy a second generation platform which can scale to multiple cities. The work of this hack has illustrated design choices for moving the project forwards.