initiation à la domotique pdf

22.   (Vue) factory.getObject(Factory.COMMAND_VUE, (Object[]) null)); 23. Dans le second cas, asynchrone, l'UI reste disponible pour l'utilisateur qui peut lancer d'autres actions. L'événement [WORK_TERMINATED] va. •      ligne 6 : l'événement [WORK_INFO] est traité. Question 7 : en suivant le modèle qui vient d'être décrit pour la vue [blink], réalisez les vues [pinWrite], [pinRead] et [commands]. 15.   3.1.1.RELEASE, 16.   1.5.6, 21.   com.springsource.repository.bundles.release, 22.   SpringSource Enterprise Bundle Repository - Release, 30.      org.springframework, 31.      spring-webmvc, 32.      ${spring.version}, 35.      org.codehaus.jackson, 36.      jackson-mapper-asl, 37.      ${jackson.mapper.version}, 40.      .domotique.common, 41.      domotique-entities, 42.      1.0-SNAPSHOT. C'est bien la ligne attendue ; •   ligne 5 : le client (l'Arduino) a fermé sa connexion. •""3333333333333333" … PDF. Serge Tahé, Sébastien Lagrange avril 2013. 3. Son code est le suivant : 3.    // on récupère l'Ip et le port du serveur. c. Gestion de l’énergie UE46.1 2012-2013 Plan du cours 1. Initiation à la domotique avec le logiciel Scratch Équipe eduscience. Arduino est un circuit imprim é en matériel libre (dont les plans de la carte elle-même sont publiés en licence libre mais dont certains composants sur la carte, comme le microcontrôleur par exemple, ne sont pas en licence libre) sur lequel se trouve un microcontrôleur qui peut être programmé pour analyser et produire des signaux électriques, de manière à … La couche [DAO] est reliée aux arduinos via un réseau. Ce cours s’adresse à tout utilisateur expérimenté en informatique, souhaitant C'est par exemple le cas de Mcafee. Cela va connecter le client générique au port 102 de l'Arduino. La vue [pinWrite] [2] permet d'écrire une valeur sur une pin d'un Arduino. Toutes ces informations sont de type chaînes de caractères sauf le port qui est un nombre entier. Les autres dépendances en découlent ; •      en [3], les classes du projet : •      le paquetage [.beans] contient les trois beans JSF de l'application de portées respectives Application, Session et Request. 8.     super.onCreate(savedInstanceState); 9.   setContentView(R.layout.activity_main); 10. •      la fonction [setup] configure la pin n° 13 en sortie ; •      la fonction [loop] l'allume et l'éteint de façon répétée : la led s'allume et s'éteint toutes les secondes. •   lorsque le serveur reçoit une connexion d'un Arduino, il peut servir cette connexion lui-même ou lancer un autre thread pour le faire. 2.    protectedvoid showArduinos(ListView listArduinos, Boolean selectable, Arduino[] selectedArduinos) { 3. 3.    protectedvoid onCreate(Bundle savedInstanceState) { 4.  Â, 5.    // on fixe l'URL par défaut du service REST. Indiquez alors que le pilote est sur le disque à l'endroit /drivers où est le dossier d'installation. 56.   android:layout_width="wrap_content", 57.   android:layout_height="wrap_content", 58.   android:layout_alignParentLeft="true", 59.   android:layout_below="@+id/txt_MsgErreurIpPort", 61.   android:text="@string/titre_list_arduinos". 13.   <>${project.build.directory}/endorsed<>, 15.   1, 16.   3.1.1.RELEASE, 17.   1.5.6, 22.   com.springsource.repository.bundles.release, 23.   SpringSource Enterprise Bundle Repository - Release, 30.   org.springframework, 31.   spring-core, 32.   ${spring.version}, 35.   org.springframework, 36.   spring-beans, 37.   ${spring.version}, 40.   org.springframework, 41.   spring-web, 42.   ${spring.version}, 45.   org.springframework, 46.   spring-webmvc, 47.   ${spring.version}, 50.   org.codehaus.jackson, 51.   jackson-mapper-asl, 52.   ${jackson.mapper.version}, 55.   .domotique.server, 56.   server-metier. initiation domotique pdf epi initiation la domotique. Elle envoie à l'Arduino identifié par le 1er paramètre, la liste des commandes JSON identifiée par le second paramètre. Notez l'attribut for qui référence le composant d'id pin. A) Rappel sur les réseaux informatiques L'onglet [SECTION 1] est sélectionné ; •      il affiche en [2] son composant [TextView] avec le n° de l'onglet. 64.   edtUrlServiceRest = (EditText) activity.findViewById(R.id.edt_UrlServiceRest); 65.    edtUrlServiceRest.setText(R.string.edt_UrlServiceRest); 66. L'action lancera les tâches asynchrones nécessaires, mettra en forme leurs résultats et rendra à la vue un modèle pour que celle-ci se mette à jour. •      idArduino : l'identifiant de l'Arduino à qui est destinée la commande, •      pin : le n° de la pin à lire. 29 décembre 2018 cedcox Bien débuter et comprendre le Raspberry 0. navigation bash. 7.    8. La vue [home.xhtml] détaillée précédemment utilise des messages provenant du fichier [messages_fr.properties] : 2.  appli.titre=Mobilit\u00e9 & Domotique, 6.  menu.pinWrite=| Ecrire une valeur sur une pin, 7.  menu.pinRead=| Lire la valeur d'une pin, 8.  menu.clignoter=| Faire clignoter une led, 9.  menu.commande=| Envoyer une commande Json. 16.   android:id="@+id/edt_UrlServiceRest"..> 17. 25.   jsf-impl, 29.   org.primefaces, 35.   .domotique.webmobile, 36.   webmobile-restClient, 48.   PrimeFaces Maven Repository. Un clic sur ce bouton fait apparaître la vue [config.xhtml] (attribut href). 19.   public Collection getArduinos() {. •   ligne 2 : la méthode [beginWaiting] est utilisée pour afficher une attente ; •   ligne 4 : on affiche l'image animée qui indique qu'une opération est en cours ; •   ligne 6 : le bouton [Rafraichir] va être caché ; •   ligne 7 : le bouton [Annuler] est affiché ; •   ligne 11 : la méthode [cancelWaiting] est utilisée pour arrêter l'attente ; •   ligne 13 : on cache l'image animée qui indique qu'une opération est en cours ; •   ligne 15 : le bouton [Rafraichir] est affiché ; •   ligne 16 : le bouton [Annuler] est caché ; Avec le bouton [Annuler], l'utilisateur peut annuler l'action lancée. 21.// Enter a MAC address and IP address for your controller below. L'action [configAction] va rendre la liste des Arduinos connectés ou bien une exception si cette liste n'a pu être obtenue. 5. publicclass ConfigAction extends Action { 6. Cela contribue à libérer de la mémoire pour ces dernières ; •      lignes 97-102 : la fonction freeRam rend le nombre d'octets disponibles dans la mémoire. f. Simulation de présence. C'est ce qui explique la présence du bloc [4]. Certificats reconnus par des départements ou services de l’Etat de Genève ou par des organisations professionnelles genevoises. •      ligne 14 : la référence de la vue à associer à l'onglet qui vient d'être construit est demandé à la fabrique : •      1er paramètre : le n° de l'objet à construire. L’ensemble des modules KNX ainsi … •      le 1er paramètre de makeText est l'activité du fragment. C'est une classe d'exception standard si ce n'est qu'elle encapsule un code d'erreur, ligne 9. •   dans [ref4] : chapitre 6 [Les threads d'exécution], chapitre 7 [Programmation TCP / IP] ; •            le code du serveur TCP générique présenté page 23, paragraphe 4.2.2 ; •              le code du client TCP générique présenté page 31, paragraphe 4.3.2. Il y a une différence : la bibliothèque JSON utilisée est Jackson et non Gson. Ici, la classe [Main0] et le serveur d'enregistrement s'exécutent dans des threads différents ; •   lorsqu'un Arduino se connecte, le serveur appelle la méthode de la ligne 30 pour l'enregistrer. Avec le type String, rien n'est affiché. Il va exécuter toutes les commandes que la couche [DAO] va lui envoyer ; •   ligne 6 : la mémoire disponible. 4.    // on définit la source de données de la liste. (int) &__heap_start : (int) __brkval); Question 1 : Ecrire le code complet de l'Arduino. 4. public ModelAndView sendCommandesJson(@PathVariable("idArduino") String idArduino, @RequestBody List> commandes) {. •      en [2], visualiser les propriétés de la connexion ; •      en [4], visualiser les propriétés IP v4 [3] de la connexion ; •      en [5], donner l'adresse IP [192.168.2.1] à l'ordinateur hôte ; •              en [6], donner le masque [255.255.255.0] au réseau ; Avec l'IDE, chargez l'exemple [Exemples / Ethernet / WebServer] : 4.    A simple web server that shows the value of the analog input pins. Cette solution didactique permet l’acquisition et la validation des compétences du Bac pro MELEC dans un environnement simple de la domotique. Pour commander l'Arduino, il y aura deux opérations de base : •   écrire une valeur binaire / analogique sur une pin désignée par son numéro ; •   lire une valeur binaire / analogique sur une pin désignée par son numéro ; A ces deux opérations de base, nous en ajouterons une troisième : •      faire clignoter une led pendant une certaine durée et avec une certaine fréquence. Nous allons tout d'abord écrire la partie serveur du projet qui est commune aux deux types de clients : •   l'implémentation de la couche [DAO] ; •          l'implémentation de la couche [métier] ; •   l'implémentation du service REST. 4.    Android-Demo, 5.    Settings, 6.    Hello world! 7.    Section 1 8.    Section 2. Nous avons présenté les trois commandes cl, pw et pr. Au départ. 16.   public List sendCommandesJson(String idArduino, List commandes); 17.   // envoyer une suite de commandes à un Arduino, 18.   public List sendCommandes(String idArduino, List commandes); 19. Si un utilisateur déconnecte son câble réseau ou son alimentation, l'Arduino n'est plus accessible mais reste mémorisé dans la couche [DAO]. La méthodologie est participative et repose sur une implication importante de la Revoyez les couches [métier] au paragraphe 11.16, page 116  et [DAO] au paragraphe 11.17, page 118 du projet Android. La valeur postée sera affectée (attribut value) au champ suivant de [RequestData] : •   ligne 30 : la liste déroulante est alimentée (attribut value) par le champ suivant de [RequestData] : private String[] pins = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13" }; Le libellé affiché (itemLabel) ainsi que la valeur postée (itemValue) seront le n° de pin. A l'affichage de la première vue, le curseur se positionne sur le premier champ de saisie. Sur l'exemple,  le délai de 5 secondes fait que les N tâches sont lancées et toutes attendent 5 secondes avant de faire le travail qui leur est demandé ; •   en [5] remontent les informations produites par les tâches, nombre ou exception ; •   la ligne [6] récapitule ce qui a été reçu. Question 3 : écrire la classe [Metier] qui implémente l'interface [IMetier]. C'est une chaîne JSON avec les éléments suivants : •      id : un identifiant de la commande. T +41 22 807 30 00 | F +41 22 807 30 99 | E info(at)ifage.ch. c. ZIGBee 41.  // l'activité principale 42.  private Activity activity; 43. Pour chaque commande, elle reçoit une réponse JSON. Entre les lignes 21-23, on met les beans chargés de « convertir des messages ». Elle est exécutée dans le thread de l'interface comme le sont également l'activité, l'action et la vue ; •   ligne 19 : la tâche envoie à son boss la notification WORK_STARTED pour indiquer qu'elle a démarré ; •   ligne 24 : la méthode [doInBackGround] est exécutée dans un thread à part de celui de l'UI. •   lignes 4-12 : définition d'une servlet, une classe capable de traiter les requêtes HTTP des clients web ; •   ligne 5 : son nom restservices. Elle permet de choisir le mode d'exécution : en mode émulation avec une tablette logicielle ou en mode réel avec une tablette Android ; •      en [8], validez cette configuration ; •          en [9], exécutez-la ; •      en [8], un émulateur de tablette ; •      en [9], une tablette Android ; •      sélectionnez l'émulateur de tablette et exécutez l'application ; •      en [1], les trois onglets générés par l'application. Nous ne l'expliciterons pas ici. Niveau concerné : milieu de cycle 4 Compétences mobilisées : … La valeur postée sera l'identifiant de l'Arduino (attribut itemValue) ; •   ligne 24 : le bouton [4] qui demande au client REST, la liste des Arduinos connectés. Méthode. Idéale pour initier vos élèves de façon claire et rapide ! 14.   (Vue) factory.getObject(Factory.CONFIG_VUE, (Object[]) null)); TabVue(actionBar.newTab().setText(R.string.title_pinwrite).setTabListener(this).     Arduino[] arduinos = (Arduino[]) ("arduinos");     ArrayAdapter adapter = new ListArduinosAdapter(getActivity(), R.layout.listarduinos_item, arduinos. 86.       
87.  88. •   lignes 10-14 : l'entête [1] de la vue ; •   ligne 12 : l'icône [A] qui permet de revenir sur la vue [home] (attribut href) ; •   ligne 15 : le contenu de la vue ; •   ligne 16 : le formulaire de la vue ; •   ligne 19-21 : la liste de cases à cocher [3] ; •   ligne 19 : la liste des éléments cochés sera mémorisée dans le champ [selectedArduinosIds] du bean de portée [request] RequestData : •   ligne 20 : la liste est alimentée par la liste des Arduinos connectés. Peut être quelconque ; •      dans l'onglet [Target] [6], sélectionnez l'option [7]. 54.  public ModelAndView pinRead(@PathVariable("idCommande") String idCommande, 55.  @PathVariable("idArduino") String idArduino, @PathVariable("pin") String pin, @PathVariable("mode") String mode) {, 60.      @RequestMapping(value = "/arduinos/pinWrite/{idCommande}/{idArduino}/{pin}/{mode}/ {valeur}", method = RequestMethod.GET). • dans [ref2] : l'utilisation de bibliothèques JSON (Annexes, paragraphes 11.1 et 11.2) ; • dans l'IDE de l'Arduino, tester l'exemple d'un serveur TCP (le serveur web par exemple) et celui d'un client TCP (le client Telnet par exemple) ; • les annexes sur l'environnement de programmation … On pourra lancer l'IDE en double-cliquant sur l'exécutable [3]. 12.   fragmentTransaction.replace(R.id.container, tabVues[i - 1].getVue()); 16.   publicvoid onTabReselected(Tab arg0, FragmentTransaction arg1) { 17.    // onglet resélectionné - on ne gère pas 18.  } 19. 74.   int sensorReading = analogRead(analogChannel); 76.   client.print(analogChannel); 77.            client.print(" is "); 78.      client.print(sensorReading); 79.      client.println("
");     Â, 85.      // you're starting a new line, 89.      // you've gotten a character on the current line. , 36.   . Il faudra appeler régulièrement cette fonction dans votre code pour voir comment évolue la mémoire ; •      ligne 43 : la boucle infinie exécutée par l'Arduino ; •      lignes 47-70 : ce code est exécuté tant que l'Arduino n'a pas réussi à s'enregistrer auprès du serveur d'enregistrement de la couche [DAO] ; •      ligne 50 : on essaie de se connecter. 25.   Fragment fragment = new DummySectionFragment(); 27.   args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, tab.getPosition() + 1); 29.   getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment).commit(); 33.  publicvoid onTabUnselected( tab, FragmentTransaction fragmentTransaction) {, 37.  publicvoid onTabReselected( tab, FragmentTransaction fragmentTransaction) {, 41.   * A dummy fragment representing a section of the app, but that simply, 44.   publicstaticclass DummySectionFragment extends Fragment {. 22.   android:id="@+id/txt_MsgErreurIpPort"../> 23. De chaque vue, on peut revenir à la vue d'accueil avec l'icône [2]. On dit alors que la méthode [addArduino] est une ressource critique. Chaque projet a été traité par un groupe de deux étudiants sur une période d'environ 150 h. A la fin du projet, chaque groupe arrivait à allumer / éteindre une lampe connectée à un Arduino. L'adresse MAC de la ligne 23 est l'adresse MAC indiquée sur la carte réseau de l'Arduino. 28.   // ------------------ méthode run, 29.   @SuppressWarnings("resource") 30. publicvoid run() {, 35.   privatevoid trace(Level level, String message, Exception e) {, 36.   String msg = String.format("Recorder : [%s] : [%s]", new. machine learning; Reconnaissance faciale; Chapitre 6 : Initiation à la ligne de commande. Nous allons ainsi pouvoir cacher le client REST aux autres beans de l'application JSF. zelio ptoir de l automatisme. Ce qui précède [@+id] est obligatoire ; •   ligne 3 : sa largeur – aussi large que le nécessite le texte affiché ; •   ligne 4 : sa hauteur – aussi haut que le nécessite le texte affiché ; •   ligne 5 : le haut du composant sera aligné sur le haut du conteneur ; •   ligne 7 : le composant aura une marge haute de 20 pixels. Par exemple, on veut pouvoir faire clignoter une led placée sur deux Arduinos, en même temps et non pas l'une après l'autre. La couche [DAO] peut être améliorée de diverses façons. •   ligne 4 : l'URL saisie est récupérée ; •   ligne 7 : on essaie de créer une URI (Unique Resource Identifier) à partir de cette URL. Au-delà, elle lancera une exception [DomotiqueException] ; •   ligne 18 : un booléen qui indique si la couche [DAO] logue ou pas sur la console ce qu'elle fait ; Le serveur d'enregistrement est configuré par les lignes 7-12 : •   l'IP du serveur d'écoute. 38.        39. 43.   android:layout_width="wrap_content", 44.   android:layout_height="wrap_content", 45.   android:layout_alignBottom="@+id/editText_Nom". 29.   android:id="@+id/edt_UrlServiceRest", 31.   android:layout_height="wrap_content", 32.   android:layout_alignBaseline="@+id/txt_UrlServiceRest", 33.   android:layout_alignBottom="@+id/txt_UrlServiceRest", 35.   android:layout_toRightOf="@+id/txt_UrlServiceRest". Les activités [1] sont le coeur d'une application Android. 40.   // start the Ethernet connection and the server: 44.   Serial.println(Ethernet.localIP()); 45.} 47.   public Factory(Activity activity, Config config) {. Elle va échanger avec elle des lignes de texte JSON. Pratiquer l’algorithmique et la programmation dans le cadre d’un enseignement interdisciplinaire. Si on sérialise en JSON cette classe on aura une chaîne comme suit : Parce que l'Arduino a très peu de mémoire, on ne peut envoyer cette chaîne trop longue. 39. Â