Open IoT Challenge 4.0
On november 2017, we decided to take part in the Open IoT Challenge 4.0 organized by Eclipse. Since then, we spend many hours of work to develop the best Poulpy version we could.
We would like to thank Thierry Monteil, Michel Groc, Joseph Shea, Francois Aïssaoui and Guillaume Garzone for the help that they provided to make this project possible.
Description of the project
Poulpy is a project that we created in cooperation with the Biodiversarium of Banyuls-sur-mer, which is both a marine life laboratory and one of the biggest aquariums on the Mediterranean coast. Our objective is to establish a network of connected aquariums all over France in the hope of providing a useful tool for learning about marine life.
The goal of our project is to develop a connected aquarium to be installed mainly in classrooms for students to become more aware of the relevance of aquatic life in the ecosystem. We decided upon the following architecture for our system.
Poulpy is meant to be added to an aquarium so it can monitor different parameters in real-time. Poulpy is composed of waterproof sensors, an Arduino shield and a Raspberry Pi. The sensors are connected to the Arduino shield and measure temperature, turbidity and water lever. The Raspberry Pi, with which the Arduino communicates via Bluetooth Low Energy, uses scripts to handle the detection of all sensors and their respective measurements.
Follow this link to read all our source code for the collection of data by the Arduino and the BLE communications handling:
Transmitting and storing data
We use OM2M to manage all the data generated by the connected aquariums. In each one, a Raspberry Pi runs an OM2M instance called MN (Middle Node) which handles the data generated by the sensors in the aquarium. A central server, which is located on a Virtual Machine at the Biodiversarium, runs an OM2M instance called IN (Infrastructure Node). The IN is connected to all the MNs and has therefore access to all their data.
All the data is also copied into an Influx DB database in the VM for further processing.
We implemented a Chronograph dashboard that has access to all the data collected in the network of connected aquariums to help Biodiversarium’s researchers to visualize this data. The dashboard looks up periodically the Influx DB database and displays the collected data.
A mobile app was also created to allow the user some basic data interaction. The app therefore helps to keep Poulpy low-cost: instead of investing on an expensive pHsensor, for example, the user can opt for pH strips and then add the new measurement through the app.
Advantages of Poulpy
Poulpy becomes a handy tool to learn both biology and technological studies by involving the users from the outset.
A Do-It-Yourself project
Our team conceived Poulpy from a low cost DIY perspective, so anyone can have their own connected aquarium thanks to open-source materials and a well-documented website.
This project is built upon the following open technologies and standards :
A community oriented website
The website also aims to get users in touch with each other by encouraging the development of a community and establishes a precious link with the Biodiversarium scientists. Since anybody can join the adventure we needed to develop a solution that supports a large community without the need for any major changes.
The website is not published yet but it has been handed over to the Biodiversarium for final approval.
Download our full report
For more details, download our full report! Just click on the pdf icon!
In this document we start by explaining the specificities of our project and the different development choices that they entailed, such as low cost and open-source. We then explain our proposed architecture starting by the collection of data and work our way up to the user. Following this logic, we explain how data recovery, transmission and publishing are accomplished.
Along the way, the usage of two different hardware modules, a mobile application, a website and two different middleware software are introduced. In the end we obtain a functional architecture that answers to the specifications.
* Please note that this report was written before we ruled out Agile IoT. When reading, just consider that Agile IoT was replaced by scripting. Read more on this replacement on the Lessons learned section below.
Overall, the whole project was a goldmine of knowledge and personal growth. Not only did we improved our technical skills but we also gained more experience on social and project management skills. We worked well as a team and we managed to take advantage of having a common field of studies but different experiences and domains of expertise.
How choices can affect the evolution of a project
This may come as no surprise but it is one thing to feel this seems obvious and actually experience its consequences. Well, we went through that while developing Poulpy.
Initially, to handle the detection of all sensors and their respective measurements we used AGILE IoT, an open-source framework from the Eclipse foundation.
AGILE builds a modular hardware and software gateway for the Internet of Things with support for protocol interoperability, device and data management, IoT app execution, and external Cloud communication. The hardware is based on the well-known Raspberry Pi. We were confident on the benefits of AGILE IoT for our project, specially its adaptability and modularity.
Unfortunately, late January 2018 we were informed that the AGILE project was discontinued. We had to adapt and quickly find an alternative solution that would still meet our needs without jeopardizing the work done on the other elements of the project.
In the end, we managed to develop scripts to replace what was previously handled by AGILE IoT.
This was probably the biggest challenge we encountered while working on Poulpy. It at least served as a reminder on how important it is to rely on durable foundations on any project development, but also on how small choices can evolve into risk taking decisions that could deeply affect any project.
What we have left to add are some improvements that we have thought of.
Overall, we would like to increase the security of the exchanges over the internet by adding an AES encryption, especially when it comes to the publishing to the laboratory.
The mobile app could also be extended for even greater user engagment. However our main focus would be the website and the community gathering so the project can come to life and further evolve.
Because we believe, that sometimes, an image can be worth a thousand words, here's a quick overview of the Poulpy project that you've just read about.
* Please note that this poster was written before we ruled out Agile IoT. When reading, just consider that Agile IoT was replaced by scripting. Read more on this replacement on the Lessons learned section below.
Thanks for reading and don't hesitate to engage with us if you have any questions or comments!