Hermes Project is an autonomous connected device in order to store alerts during shipping. This project is able to handle various form of data, including:
- Temperature
- Humidity
- GPS
- Acceleration and Angular Acceleration
- Angular Position
- DateTime
- Light level
Hermes Project is maintained by Exia CESI Toulouse A4L.
This repository is for educational purpose only and you can use it as an example for any
engineering project.
Each process and step are documented below.
A mind map is a diagram used to visually organize information. Often used during brainstorming session, Mind Maps are particulary suited in order to understand concept and ideas during team sessions.
The Mind Map below shows the entire project area, with all particularities and was drawn during the opening session of the project. The objective was to find the more constraints as possible in order to make easiest the future designing.
During the first phase, team's goal was to create the connected device used to collect data in order to proceed the further big data analysis.
The conception is in two parts : hardware conception and software conception.
During the hardware conception, we made 2D et 3D designing in order to make a box with a 3D printer. In the meantime, we also worked on Fritzing in order to create a virtual prototype of the electronic system.
Durign the software conception, we made an UML representation of the system and some mockups in order to represent the user interface.
The first step in casing designing was about measuring the dimension of the device in order to draw the plans. Plans were made with Catia and were used as references in order to make the 3D designing.
The second step was the 3D Designing, which was made with 123Design. Each part of the casing has been printed with a 3D Printer inside Exia Cesi Toulouse's Fablab.
Fritzing is an open source initiative to develop amateur or hobby CAD software for the design of electronics hardware, to support designers and artists ready to move from experimenting with a prototype to building a more permanent circuit. It was developed at the University of Applied Sciences of Potsdam.
We used it in order to design electronics hardware of Hermes Project.
During software conception, most of the time was UML Designing. The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering, that is intended to provide a standard way to visualize the design of a system.
In order to represent the whole system, we used an UML Component Diagram (thanks to StarUML) and represented interaction between components and artifacts. It is possible to see that the application is entirely threaded, so each sensor can work at its rythm without being bothered by the others.
A circular buffer was also developed in order to store data and alert awaiting for writter.
The following class diagram shows sensors classes and structures used inside the application.
The following class diagram shows buffer and alert manager classes used inside the application.
In order to get a full JSON File, a concatenation software has been developed. This software is able to browse inside a whole directory to concatenate all files inside in one big file which you can save wherever you please. Sources can be found inside this repository.
Finally, in order to retrieve indicator and statistics about shipping, an exploitation software has been developed. This software is able to browse inside JSON Collection stored into a CouchDB Database (NoSQL) and draw a map of the shipping with all major alerts displayed. Sources can be found inside this repository.
In addition to the previous work, a business analysis has also been made for this project.
This analysis demonstrates this project to be a typical case for Business Model development. By the way, many improvements can be made to this project, for example:
- Casing optimization in weight and size
- Software optimization for the connected device
- Full optimization of the product life circle
- Migration to a Service Oriented Software for the exploitation
Feel free to contribute to this repository by doing pull request.