Ceci est une ancienne révision du document !
Projets Objets Connectés et Services (OCS)
Unforgettable box
MAIN INFORMATIONS about the Project
At the beggining, we were about to develop a box storage for school books to help students remember which one they need to bring with them every day. A picture is worth a thousand words :
However atfer we had spoken with our teacher, we thought that we could improve our idea to expand the box storage for school books to a box strorage for “every thing we don’t want to forget”. That is to say we are going to create a box which is able to store objects in compartments, and switches a LED if we need it or not in the day, depending on the request' hour.
MEMBERS
Name of the members of the Group
- Victor Sallé, IAM, salle@polytech.unice.fr
- Loïc Seguin, IAM, seguin@polytech.unice.fr
Scenarios of the Project
Scenario 1
Alice doesn't see anything behind the wheel when there is sunshine. Alice is an airhead and she often forget many things of everyday life. The fact is that today the weather is great and Alice is preparing to go to the beach. Alice is about to leave her house when she takes a look at its storage box, that notifies her by a green LED that glasses should be taken. Alice takes the sunglasses out of the compartment and the keys in another compartment. Then, she leave her home without fear.
Scenario 2
Bob, a 12-year-old has just made his back-to-school. He has just received his school books and places each of them in a dedicated compartment of his Unforgettable Box. Bob wakes up at 8:30am instead of 8am and is therefore very late. He takes his shower, eats and dresses at full speed. He takes his bag and takes a look on the green LEDs storage boxes to fill his bag with the books that he needs today without worrying about the titles of books. The teacher will not be able to find any excuse to punish Bob.
Connected Object Description
Sketch of the object
Sketchup file : http://users.polytech.unice.fr/~salle/ocs/unforgettable-box.skp
3D - CAD description of the object
Then we received an modelisation like that :
The difference between the specifications and the modelisation we got is huge!
We accepted the offer modifying the height of the object and we told us that the hooks weren't good for the
sensor captors. We also removed the placing for the bag.
Real image of the object
Hardware Specifications and Distribution of the connected Object
Hardware specifications
Materially speaking, our object will manage some LEDs (to alert the user) and some thin force sensors (in order to decide whether or not the object is present).
We decide to build a 5-boxes object, so we need 5 LEDs and 5 thin force sensors. The software will run on a Phidget interface and we need a WiFi adapter to reach the local network in order to expose methods through UPnP protocol.
Array of the purchases
Type | reseller | Reference | Quantity | unit price | link on the Web page of the product | Total price |
Interface 8/8/8 + hub SBC1073 | GoTronic | 25445 | 1 | 143,50€ | http://www.gotronic.fr/art-interface-8-8-8-hub-sbc1073-19807.htm | 143,50€ |
Adaptateur WiFi 3703_0 pour SBC1073 | GoTronic | 25435 | 1 | 34,90€ | http://www.gotronic.fr/art-adaptateur-wifi-3703-0-pour-sbc1073-12055.htm | 34,90€ |
Capteur de force + adaptateur 1131 | GoTronic | 25539 | 5 | 14,30€ | http://www.gotronic.fr/art-capteur-de-force-adaptateur-1131-12151.htm | 71,50€ |
Led 5 mm verte L53GT | GoTronic | 3037 | 5 | 0,15€ | http://www.gotronic.fr/art-led-5-mm-verte-l53gt-2075.htm | 0,75€ |
Interrupteur DS12A | GoTronic | 7390 | 1 | 0,95€ | http://www.gotronic.fr/art-interrupteur-ds12a-4432.htm | 0,95€ |
TOTAL | 251,60€ |
Excel File of the purchases
Software Specifications and Distribution of the connected Object
Software Specifications of the connected Object
Web Service for Device Specifications
The web service embedded in the device is pretty simple. It just exposes three methods, reachable through UPnP protocol :
- turning on/off some LEDs using their unique ID;
- retrieve the LEDs' state (on/off);
- retrieve the thin force on each thin force sensor.
This may seems too simple, and it does. Actually, we need the embedded software to be as simple as possible. In this way, we will be able to improve the object later without modifying the object itself.
Software Distribution of the connected Object
Embedded Software in the connected object
How to embed
Read the following instructions if you want to embed this project in your own Phidget:
- download the binary archive;
- process the following instructions: http://stephane.lavirotte.com/teach/cours/oc/TD%20WComp%20et%20Phidget%20107x.pdf
Binary code
Download link: http://users.polytech.unice.fr/~salle/ocs/EmbeddedAppBin.zip
Source code
Download link: http://users.polytech.unice.fr/~salle/ocs/EmbeddedApp.zip
This archive contains:
- the container itself (unforgettablebox.wcc);
- the auto-generated container C# code (Container1.cs);
- source code of our beans:
- IfContainsStringThenElse.cs: check if a string contains a given element and throw and event as the result;
- LedValuesConcatenator.cs: retrieve the LEDs' state (WARNING: do not reuse, hardcoded values specifics to this project);
- ThinForceValuesConcatenator.cs: retrieve the thin force on a given thin force sensor and get the result in JSON format.
- GetThinForceSensorValue.cs: retrieve the thin force on a given thin force sensor (used in a former version).
Mobile Phone Software
The app we made runs under Android 4.4 KitKat and uses Cling Android client library for UPnP communications.
Binary code
Download link: http://users.polytech.unice.fr/~salle/ocs/unforgettable-box-android.zip
Source code
Download link: http://users.polytech.unice.fr/~salle/ocs/unforgettable-box.apk
Software Specifications and Distribution of the high level service for the user
Our orchestrator is located in the cloud. It owns a database that maps hours with objects the user wants to “don't forget”.
The orchestrator combines our data with the ones provided by webservices like weather webservice. For example, the user can map “10am” with “keys and water bottle”. If the weather is good, then the orchestrator will return “keys, water bottle and sunglasses”; if not, it returns “keys and water bottle”.
We decided to put the orchestrator in the cloud for one reason: we are able to improve it without requesting any update for the user. In this way, we can tomorrow decide to add an agenda webservice, and the user will benefit immediatly.
Software Specifications of the High Level Service for the user
We can imagine multiple improvements using existing webservices:
- Weather webservice: turn on the LED that stands for sunglasses or umbrella depending on the weather;
- Agenda webservice: map events with objects and automatically turn on LEDs without having to create “schedules” in our database;
- SMS webservice: a mother will be able to say his son “don't forget your keys today”.
Software Distribution of the High Level Service for the user
Here, put all the files needed to build, to compile and to deploy all your software developments for the high level service
- All the instructions on what must be installed before deployment of the developed software (ex. software stack and WComp):
- Binary distribution of the developed software for the object and how to install (ex. DLL of new beans and wcc of the WComp the assembly) :
- Sources distribution of the developed software and how to build the binary distribution (ex. sources of new beans in WComp):