====== Floating speaker ====== ==== Name of the members of the Group 2 (Group 5 on adhoc) ==== * COLINET * Joël * SI5/IAM (Apprenticeship) * jcolinet@polytech.unice.fr * ZANOTTI * Guillaume * SI5/IAM (Apprenticeship) * zanotti@polytech.unice.fr ==== Scenario of the Project ==== The user is around/in his pool, the floating speaker is also in it and it allows to relay phone notifications (calls or sms). == The object we want to build == The float has the shape of a cylinder with a speaker at each end. A weight (the battery) is present inside the cylinder in order to prevent to roll on the water. Besides, another part will help the cylinder to not roll and not sink (as you can see on the first picture below). This part will also help in order to maintain speakers properly outside the water. On the emerged part of the cylinder, a switch and a light ring are also present. == The service we want to bring to the user == The floating speaker allows the user to be alerted to incoming notifications received on his phone (call or sms). The speaker transmits, for instance, the following message: "An incoming call is detected." or "A sms has been received." In a second version, it might be possible to know the sender, thus messages would be: "An incoming call from XXX is detected." or "A sms from XXX has been received.". About the light ring, it is mainly used to know the float current battery level and secondarily to embellish the pool. It might blink when incoming notifications are detected. == Example of use case == Joel is swimming in his pool and does not have his phone beside him (he left it in his house). Guillaume sends him an urgent sms to ask him a question about the OCS project deadline. The float blinks and emits a sound indicating "A sms from Guillaume has been received.". Joel then exits the pool, gets back his phone that he had left in his house, then he answers back to Guillaume. ==== Connected Object Description ==== == Specification == Find [[https://www.dropbox.com/s/3cqihs8elb4s2m3/Cahier%20des%20charges%20-%20Floating%20Speaker%20-%20COLINET%20-%20ZANOTTI.pdf?dl=0|here]] the whole document (specification) we give to Reims students. == Sketch of the object == {{http://img11.hostingpics.net/pics/354418Capturedcran20141216180419.png?550x400}} The first picture is the complete sketch of the float. The central cylinder is removable from the rest of the float. It is in it that we will put all the hardware. {{http://img11.hostingpics.net/pics/419330Capture.png?550x550}} {{http://img11.hostingpics.net/pics/293597Capturedcran20141216180534.png?300x350}} {{http://img11.hostingpics.net/pics/699506coupecentre.png?400x250}} The last three pictures describe the central cylinder with specific dimensions and the specific position of all components. The central cylinder is divided in three parts : a central part and two ends containing speakers. So, the float is composed of four parts : the central cylinder (in three parts) and the other part that you can see on the first picture. == 3D - CAD description of the object == {{http://img11.hostingpics.net/pics/668850Capturedcran20150113143309.png?400x200}} {{http://img11.hostingpics.net/pics/363454Capturedcran20150113144406.png?300x300}} {{http://img11.hostingpics.net/pics/925273Capturedcran20150113143553.png?300x300}} == Real image of the object == We are still waiting the picture from Reims students. ==== Hardware Specifications and Distribution of the connected Object ==== == Hardware specifications == We have no specific sensors on our object. == Array of the purchases == | Type | Reseller | Reference | Quantity | Unit price | Link on the Web page of the product | Total price | |Phidgets SBC 1073|GoTronic|25445|1|143.50€|http://www.gotronic.fr/art-interface-8-8-8-hub-sbc1073-19807.htm|143.50€| |Haut-parleurs WP5N|GoTronic|28082|1|15.30€|http://www.gotronic.fr/art-haut-parleurs-wp5n-13314.htm|15.30€| |Cordon jack CA35S05|GoTronic|48248|1|0.90€|http://www.gotronic.fr/art-cordon-jack-ca35s05-15030.htm|0.90€| |Adaptateur USB - audio 3401|GoTronic|25520|1|10.90€|http://www.gotronic.fr/art-adaptateur-usb-audio-3401-12133.htm|10.90€| |Interrupteur DS442B|GoTronic|7400|1|2.80€|http://www.gotronic.fr/art-interrupteur-ds442b-4439.htm|2.80€| |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€| |Batterie WP4-12|GoTronic|9533|1|20.60€|http://www.gotronic.fr/art-batterie-wp4-12-5663.htm|20.60€| |Flexible RF66100BL|GoTronic|3842|1|12.90€|http://www.gotronic.fr/art-flexible-rf66100bl-2528.htm|12.90€| |Chargeur VL12LA|GoTronic|9556|1|17.50€|http://www.gotronic.fr/art-chargeur-vl12la-5682.htm|17.50€| == Excel File of the purchases == Here is the [[https://docs.google.com/spreadsheet/ccc?key=0AuY9JyjKXRY0dHlzcjBSazM2WWZqUzNBa2cwSGV0LUE&usp=sharing|excel file]]. ==== Software Specifications and Distribution of the connected Object ==== === Software Specifications of the connected Object === == Web Service for Device Specifications == Our connected object exposes 4 services : * play sound with url in parameter * stop the current sound * turn light with boolean parameter for on/off * blink the light with parameter for number of blinks and duration between them (between on/off) The minimal logic is embedded in the object. It just provides access to its hardware (light and speakers in our case). Initially, the blink method was made from the orchestrator (with turn light on/off method), but we met some latency problem that forced us to add this method to our object. To keep the object the least intelligent as possible, we pass the number of blink and the duration between them in parameter (with default values set at 6 blinks and 1 second between them). About the parameter of blink method the format to respect is the following : ;. For example, "6;1000" corresponds to 6 blinks, each separated by 1 second. == Application Protocol over Bluetooth link of the object == We have no bluetooth interface for local area communications between the object and a smartphone. == Web Service for Mobile Phone == The mobile application that we developped fires 2 events : * incoming call * incoming sms The minimal logic is also embedded in the mobile phone application. We have added to the phone application the possibility to stop the sending of events. We met some problems with the latest version of Cling and his dependencies, so we have used an older version of this library (v1.0.3). === Software Distribution of the connected Object === * [[https://www.dropbox.com/sh/zhhxaw5fcuf30u6/AAC9KnqHh95CSFtD4igpU5waa?dl=0|Embedded Software in the connected object]] containing: * All the instructions on what must be installed before deployment of the developed software * Binary distribution of the developed software for the object and how to install * Sources distribution of the developed software and how to build the binary distribution * [[https://www.dropbox.com/sh/kytzvaw6mpi3iry/AADAP08aVPSk9_l4wktlvGgHa?dl=0|Mobile Phone Software]] (Android Nexus 5 - Android KitKat 4.4) containing: * All the instructions on what must be installed before deployment of the developed software * Binary distribution of the developed software for the phone and how to install * Sources distribution of the developed software and how to build the binary distribution ==== Software Specifications and Distribution of the high level service for the user ==== Our connected object alert the user which is around/in his pool about phone notifications (calls or sms notifications). Our connected object is only a part of the orchestration. Indeed, our orchestration is composed by our connected object (which provides access to his hardware => control speaker and light) and our mobile application (which fires events for call/sms notifications). So, all the intelligence of our object is in the orchestration part. === Software Specifications of the High Level Service for the user === == Description == The orchestration listens events from mobile phone and builds the Google Text to Speech url with contact name or phone number and calls adequate methods of the connected object. We have met some problems if the same people sent several sms (or phone), the sender didn't change and the event wasn't fired. So we add an automatic reset on the sender to solve this problem. == Web Services used to design new High Level functionalities for the user == We simply use the Google Text To Speech web service. To use it, you just have to concatenate your text to the following url: http://translate.google.com/translate_tts?tl=fr&q=VOTRE%20TEXTE and respect ascii code. For instance, a space will be written %20. === Software Distribution of the High Level Service for the user === * [[https://www.dropbox.com/sh/r3nig992trrzgh5/AAC_246CiUWjKpCQ0AA0KMzMa?dl=0|Orchestration]] containing: * All the instructions on what must be installed before deployment of the developed software * Binary distribution of the developed software for the object and how to install * Sources distribution of the developed software and how to build the binary distribution