Contrôleur d’équipement de domotique Bonjour a tous Pierre DAVY
Qu’est ce que la domotique? Du latin Domus signifiant maison, domotique signifie les techniques de la maison 1
2
Sommaire Contexte du stage Présentation du sujet Réalisation du projet Apports du stage 3
Présentation de l’entreprise Société tunisienne fondée en 1994 par Mohamed Frikha Société de services Filiales à l’étranger Activité dans : Transport et multimédia Sécurité & carte à puce Défense & Avionique Industrie Systèmes d’information 4 Sites en Tunisie, 1 en France, 1 aux USA, 1 en Allemagne 2012 : ouverture de la Minia Tech Fillon 2008 : Signature d’une coentreprise avec ALTRAN Contexte du stage Présentation Réalisation Apports du stage 4
Présentation du projet Smart House Automatisation de la maison Contexte du stage Présentation Réalisation Apports du stage 5
L’application domotique Gestion des appels fixes Gestion des volets roulants Gestion des alarmes Gestion de l’éclairage Utilisateur Interface utilisateur Gestion de surveillance Contexte du stage Présentation Réalisation Apports du stage 6
Présentation du sujet But du projet : créer un contrôleur de climatisation Mon rôle : Partie serveur sur carte NETDUINO ----- Meeting Notes (09/06/12 18:14) ----- Refaire l'architecture du projet domotique Contexte du stage Présentation Réalisation Apports du stage 7
Problématique Respect du protocole UPnP Portabilité sur Netduino Capacités Framework Contexte du stage Présentation Réalisation Apports du stage 8
Matériel utilisé Contexte du stage Présentation Réalisation Netduino : Crée par Secret Labs, permet au novices de débuter dans la domotique Shield Arduino : permet la connexion au réseau local Visual Studio : C# : langage objet .NETMF 4.1 puis 4.2 ----- Meeting Notes (09/06/12 18:14) ----- Mettre les noms au dessus de chacun des composants. Contexte du stage Présentation Réalisation Apports du stage 9
Planification 02/04 - 20/04 : documentation 23/04 - 27/04 : étude de la problématique 30/04 - 04/05 : spécification des besoins 07/05 - 01/06 : conception & réalisation 04/06 - 08/06 : tests fonctionnels Contexte du stage Présentation Réalisation Apports du stage 10
Spécification des besoins Allumer Eteindre Régulation de la température Mode préprogrammés Mode nuit Lampe Vitesse Orientation Timer Régler l’heure Demander de quoi l’utilisateur aurait besoin? On a codé fonctions de la télécommande Contexte du stage Présentation Réalisation Apports du stage 11
Conception Contexte du stage Présentation Réalisation Apports du stage Réception d’une requête Interprétation de la requête Envoi d’une instruction vers la climatisation Message de réponse Parler des pins pour l’envoi du signal sur la climatisation ----- Meeting Notes (09/06/12 18:14) ----- Animations? + parler des pins, ajouter une flèche? Contexte du stage Présentation Réalisation Apports du stage 12
Protocole UPnP Universal Plug and Play Services Point de contrôle Six étapes: Adressage Découverte Description Contrôle Evènement Présentation Comme son nom l’indique Pas d’étape 6 pour nous Contexte du stage Présentation Réalisation Apports du stage 13
Protocole UPnP Contexte du stage Présentation Réalisation A supprimer? Contexte du stage Présentation Réalisation Apports du stage 14
Réalisation Adressage Contexte du stage Présentation Réalisation Apports du stage 15
Réalisation Découverte Contexte du stage Présentation Réalisation NOTIFY * HTTP/1.1 HOST: 239.255.255.250:1900 CACHE-CONTROL: max-age = (la durée d’expiration de la publicité) LOCATION: (l’URL du périphérique) NT: search target (type de la publicité( concernant le périphérique ou un service)) NTS: ssdp:alive (sous-type ssdp:alive pour les publicités et ssdp : byebye pour quitter) USN: (identifiant unique pour la publicité) M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: (ssdp:discover) MX: (temps d’attente) ST: (type d’élément recherché à comparer avec NT) Sans rentrer dans les details Header SSDP 3 msg + toute un fichier list pour ranger les différents devices intéréssés (200 lignes) HTTP/1.1 200 OK HOST: 239.255.255.250:1900 CACHE-CONTROL: max-age = (la durée d’expiration de la publicité) LOCATION: (l’URL du périphérique) ST: (type d’élément recherché) USN: (identifiant unique pour la publicité) Contexte du stage Présentation Réalisation Apports du stage 16
Réalisation Découverte Contexte du stage Présentation Réalisation HTTP/1.1 200 OK HOST: 239.255.255.250:1900 CACHE-CONTROL: max-age = (la durée d’expiration de la publicité) LOCATION: (l’URL du périphérique) ST: (type d’élément recherché) USN: (identifiant unique pour la publicité) 5 lignes ! Contexte du stage Présentation Réalisation Apports du stage 17
Réalisation Description Contexte du stage Présentation Réalisation <?xml version="1.0"?> <root xmlns="urn:schemas-upnp-org:device-1-0" configId="configuration number"> <specVersion> <major>1</major> <minor>1</minor> </specVersion> <device> <deviceType>urn:schemas-upnp-org:device:deviceType:v</deviceType> <friendlyName>short user-friendly title</friendlyName> <manufacturer>manufacturer name</manufacturer> <manufacturerURL>URL to manufacturer site</manufacturerURL> <modelDescription>long user-friendly title</modelDescription> <modelName>model name</modelName> <modelNumber>model number</modelNumber> <modelURL>URL to model site</modelURL> <serialNumber>manufacturer's serial number</serialNumber> <UDN>uuid:UUID</UDN> <UPC>Universal Product Code</UPC> <iconList> <icon> <mimetype>image/format</mimetype> <width>horizontal pixels</width> <height>vertical pixels</height> <depth>color depth</depth> <url>URL to icon</url> </icon> <!-- XML to declare other icons, if any, go here --> </iconList> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:serviceType:v</serviceType> <serviceId>urn:upnp-org:serviceId:serviceID</serviceId> <SCPDURL>URL to service description</SCPDURL> <controlURL>URL for control</controlURL> <eventSubURL>URL for eventing</eventSubURL> 43</service> <!-- Declarations for other services defined by a UPnP Forum working committee (if any) go here --> <!-- Declarations for other services added by UPnP vendor (if any) go here --> </serviceList> <deviceList> <!-- Description of embedded devices defined by a UPnP Forum working committee <!-- Description of embedded devices added by UPnP vendor (if any) go here --> </deviceList> <presentationURL>URL for presentation</presentationURL> </device> </root> <device> <deviceType>urn:schemas-upnp-org:device:deviceType:v</deviceType> <friendlyName>short user-friendly title</friendlyName> <manufacturer>manufacturer name</manufacturer> <manufacturerURL>URL to manufacturer site</manufacturerURL> <modelDescription>long user-friendly title</modelDescription> <modelName>model name</modelName> <modelNumber>model number</modelNumber> <modelURL>URL to model site</modelURL> <serialNumber>manufacturer's serial number</serialNumber> 2 Messages pour la demande et réponse au fichier Xml XML Contexte du stage Présentation Réalisation Apports du stage 18
Librairie DPWS Réalisation Device Profile for Web Service Adapté au protocole UPnP Simplifie grandement le programme Web Service Implémentée dans le .NETMF 4.2 ? Trouvée le jour de l’ascension Classes et méthodes adaptées et nommées après les étapes du protocole UPnP Discovery, contrôle… Contexte du stage Présentation du sujet Réalisation Apports du stage 19
Réalisation Contrôle Utilisation d’un Switch - Case Exemple d’instruction: // Envoi d’une impulsion sur D0 OutputPort P0 = new OutputPort(Pins.GPIO_PIN_D0, false); P0.Write(true); Thread.Sleep(200); P0.Write(false); Contexte du stage Présentation Réalisation Apports du stage 20
Réalisation Evènement // Add event source DpwsWseEventSource sampleEvent = new DpwsWseEventSource("smpl", "http://schemas.example.org/SampleService", "SampleEvent"); EventSources.Add(sampleEvent); // build the message and fire the event Dpws.Device.Services.DpwsWseSubscriptionMgr.FireEvent(sampleService, sampleEvent, sampleService.BuildSampleEventMessage()); Contexte du stage Présentation Réalisation Apports du stage 21
Quelques problèmes rencontrés Tri des informations Retard de livraison du shield Portabilité du micro Framework Classe URI URI Rapport microsoft ->fleche 4eme ligne Contexte du stage Présentation Réalisation Apports du stage 22
Apports du stage Apports personnels Apports techniques Monde du travail informatique Entreprise étrangère Autonomie Recherche de l’information Démarche d’un projet Apports techniques Langage C# Programmation embarquée Protocoles informatiques Connaissances réseau ----- Meeting Notes (09/06/12 18:15) ----- Parler du proxy ou pas? Contexte du stage Présentation Réalisation Apports du stage 23
Conclusion Expérience enrichissante Apports techniques et personnels Projet encore en cours de réalisation lors de mon départ 24
شكرا لاهتمامكم Merci ! Des Questions? هل لديكم أي أسئلة؟ 25 30/03/2017 Et afin de conclure cette soutenance Comme on dit là bas: Chokren léhtimemikom hell lédaykom ass_ila 25 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.