Trousses à outils - Apprendre en pratiquant http://toolbox.hub-charleroi.be/ en Fabriquer votre propre système domotique open source http://toolbox.hub-charleroi.be/fiche/fabriquer-votre-propre-systeme-domotique-open-source <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Fabriquer votre propre système domotique open source</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Connectivit%C3%A9R%C3%A9seaux" hreflang="en">Connectivité/réseaux</a></div> <div class="field__item"><a href="/IoT" hreflang="en">IoT</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Fri, 11/20/2020 - 15:33</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://toolbox.hub-charleroi.be/sites/default/files/2020-09/Fiche%20syst%C3%A8me%20domotique%20pdf.pdf" type="application/pdf; length=2075584" title="Fiche système domotique pdf.pdf">Fiche système domotique</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><p dir="ltr">A l’ère de la domotique, les objets connectés se mettent en place, tant dans votre maison que dans votre entreprise, et touchent chaque domaine du quotidien : du pot de fleur au luminaire, tout peut être connecté. Vous désirez trouver une solution pour remédier au dysfonctionnement de vos locaux? Gérer votre consommation et éviter des dépenses inutiles? Améliorer le confort de vos employés, de vos clients ou de votre famille?</p> <p dir="ltr">Cette fiche va vous expliquer comment mettre en place <strong>un système de pilotage d’un réseau de capteurs et actionneurs (OpenZWave)</strong>, ou comment votre Raspberry Pi va vous permettre de domotiser vous-même votre maison ou votre entreprise, de façon simple et  à moindre coût.</p> <h2 dir="ltr"><strong>Prérequis  </strong></h2> <p dir="ltr">Expérience de base en utilisation de Raspberry PI </p> <p dir="ltr">Connaissances générales en Linux</p> <h2 dir="ltr"><strong><img alt="goal" data-entity-type="file" data-entity-uuid="77c20541-9cb9-4349-a94e-5d4a0e062c6c" height="33" src="/sites/default/files/inline-images/goal2_3.png" width="33" class="align-left" /> Pour quoi faire?</strong></h2> <p dir="ltr">L'appellation Smart Building désigne un bâtiment intelligent, c’est-à-dire connecté. Cette connectivité est réalisée à l’aide de capteurs et d’actionneurs déployés au sein du bâtiment :</p> <ul><li dir="ltr"> <p dir="ltr">Les capteurs réagissent à un phénomène physique de l’environnement (chaleur, lumière, son, mouvement,...),</p> </li> <li dir="ltr"> <p dir="ltr">en parallèle, les actionneurs permettent d’exécuter des commandes (par exemple, pour piloter les équipements électriques auxquels ils sont connectés)</p> </li> </ul><p dir="ltr">Vous allez donc pouvoir  ajuster et réaliser automatiquement des actions telles que le réglage d’un équipement de chauffage à une certaine température, d’un éclairage en fonction de la présence/absence de personne dans la pièce, ...</p> <p dir="ltr">Un tel système de pilotage vous permettra une meilleure gestion énergétique de votre bâtiment : en effet, la visualisation des données collectées par les différents capteurs provenant des appareils connectés va vous permettre de comprendre où et comment l’énergie de votre bâtiment est (mal) utilisée. Grâce à cela, vous pourrez réduire votre consommation en optimisant les ressources énergétiques, tout en vous permettant un certain confort.</p> <p dir="ltr">Cette fiche vous propose de déployer et configurer un système de pilotage d’un réseau de capteurs OpenSource (OpenZWave), extrêmement adaptable à vos besoins en capteurs IoT. </p> <h2 dir="ltr"><strong><img alt="recherche" data-entity-type="file" data-entity-uuid="b306ef61-90a1-4539-9600-fc09a57b173e" height="30" src="/sites/default/files/inline-images/search_loupe_0.png" width="30" class="align-left" /> Recherche d’une solution appropriée</strong></h2> <h3 dir="ltr"><strong>Solution open source : </strong></h3> <p dir="ltr">L’avantage de travailler avec un modèle open source par rapport à l'utilisation de matériels propriétaires et fermés est que vous pourrez gérer localement vos données sans dépendre d’un service externe. Vous ne risquez pas de perdre vos données avec le système que nous vous proposons, par exemple.</p> <h3 dir="ltr"><strong>Capteurs-Actionneurs  :</strong></h3> <p dir="ltr">Pour faciliter le déploiement de capteurs et d’actionneurs, nous conseillons une solution sans fil. Sachant cela, nous avons établi quelques critères supplémentaires afin de nous permettre de statuer sur le protocole de communication à choisir, ces critères sont :</p> <ul><li dir="ltr"> <p dir="ltr">La consommation : la puissance de communication doit être faible.</p> </li> <li dir="ltr"> <p dir="ltr">La disponibilité : le marché doit offrir de nombreux appareils utilisant ce protocole.</p> </li> <li dir="ltr"> <p dir="ltr">L’interopérabilité :  le protocole ne doit pas dépendre d’un fournisseur particulier.</p> </li> </ul><p dir="ltr">Voici les protocoles smart building de communication sans-fils les plus répandus:</p> <ul><li dir="ltr"> <p dir="ltr">Wifi : ce protocole est trop énergivore et complexe à re-configurer,</p> </li> <li dir="ltr"> <p dir="ltr">Bluetooth 5, 6LowPAN : peu d'appareils disponible sur le marché,</p> </li> <li dir="ltr"> <p dir="ltr">Zigbee : il y a une mauvaise interopérabilité (en cours de debug),</p> </li> <li dir="ltr"> <p dir="ltr">Z-Wave : ce protocole domotique est largement répandu.</p> </li> </ul><p dir="ltr">Au vu de ces différentes constatations, nous conseillons l’utilisation du protocole domotique Z-Wave.</p> <h2 dir="ltr"><strong><img alt="matériel" data-entity-type="file" data-entity-uuid="5c9a9bfa-fc60-4331-8d3d-7e2e52a7ecd5" height="29" src="/sites/default/files/inline-images/outils_1.png" width="29" class="align-left" /> Matériel requis </strong></h2> <p dir="ltr">Un ordinateur Linux. Dans notre cas, nous utiliserons un micro-ordinateur, <a href="https://www.raspberrypi.org/products/raspberry-pi-4-model-b/">Raspberry Pi</a>. Ce micro-ordinateur en plus d'être peu cher, est très répandu parmi la communauté des développeurs open source, des makers et des prototypeurs. Existant en plusieurs versions, nous vous conseillons, pour des raison de prix et de puissance, d’identifier le modèle le plus adapté à votre besoin :</p> <ul><li> <p dir="ltr">pi 0W (low cost mais peu puissant),</p> </li> <li> <p dir="ltr">pi 3B+ (modèle intermédiaire),</p> </li> <li> <p dir="ltr">pi 4B (assez cher mais puissant).</p> </li> </ul><p dir="ltr">Dans la suite de cette fiche, nous considérons avoir opté pour une carte Raspberry Pi 0W.</p> <p dir="ltr">Matériel nécessaire pour la configuration du Raspberry Pi (micro-ordinateur) : </p> <ul><li> <p dir="ltr"><a href="https://www.amazon.fr/microSDXC-SanDisk-Adaptateur-homologu%C3%A9e-Nouvelle/dp/B073JYVKNX">1 carte mémoire de type µSD</a> de 8Go minimum pour installer l’OS linux (Raspbian),</p> </li> <li> <p dir="ltr">Un lecteur de carte micro SD,</p> </li> <li> <p dir="ltr">Une alimentation pour le Raspberry Pi,</p> </li> <li> <p dir="ltr">Un ordinateur</p> </li> </ul><p dir="ltr">Matériel pour les capteurs - actionneurs Z-Wave : </p> <ul><li> <p dir="ltr">Une antenne Z-Wave (dongle USB)  : </p> <ul><li> <p dir="ltr">AEOTEC <a href="https://www.amazon.fr/Contr%C3%B4leur-Z-Wave-Plus-Z-Stick-GEN5/dp/B00YETCNOE">Z-Wave USB dongle</a> : dongle offrant le plus de performance</p> </li> <li> <p dir="ltr"><a href="https://www.amazon.fr/Zwave-ZME_UZB1-Z-Wave-Me-Centrale-USB-Stick/dp/B00VKEH1BQ">ZME_UZB1</a> : modèle low cost</p> </li> </ul></li> <li> <p dir="ltr">Prises intelligentes :</p> <ul><li> <p dir="ltr"><a href="https://www.amazon.fr/Fibaro-FGWPE-102-ZW5-EU-Murale/dp/B01HM0MQ98/">Fibaro Plug</a> : l’avantage est le côté esthétique</p> </li> <li> <p dir="ltr"><a href="https://www.aliexpress.com/item/32824757235.html">Neo CoolCam Plug</a> : modèle low cost</p> </li> </ul></li> <li> <p dir="ltr">Capteurs Z-Wave optionnels : </p> <ul><li> <p dir="ltr"><a href="https://www.amazon.fr/Fibaro-FGMS-001-Capteur-de-Mouvement/dp/B01CPR7VX4/">Fibaro motion sensors</a> : capteur de température, de luminosité, de vibration et de présence</p> </li> <li> <p dir="ltr"><a href="https://www.aliexpress.com/item/32998046094.html">Neo CoolCam PIR sensor</a> : capteur de présence (possède une faible autonomie)</p> </li> </ul></li> </ul><h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="ef33ffac-4bba-4772-a826-ff49563c0ddd" height="35" src="/sites/default/files/inline-images/pieds_0.png" width="35" class="align-left" /> ETAPE 0 - Quick start (mode développeur)</strong></h2> <p dir="ltr">Cette section va vous permettre de mettre en oeuvre l'outil d'home-automation Z-Wave rapidement. </p> <p dir="ltr">Pour se faire, aller sur le Github du CETIC : https://github.com/cetic/zwave2mqtt </p> <p dir="ltr">Il vous permettra de disposer des différents Add-ons qui vous permettront d'agrémenter votre système domotique/immotique. </p> <p dir="ltr">Dans ces fonctionnalités supplémentaires, vous trouverez comment: </p> <p dir="ltr">    1) Passer votre Raspberry Pi en hotspot wifi (+ bridge sur ethernet),</p> <p dir="ltr">    2) Interagir avec l'outil Z-Wave via des lignes de commandes,</p> <p dir="ltr">    3)  Gérer votre réseau Z-Wave via l'outil Node-Red </p> <p dir="ltr">Une fois déployé, passez directement à l'étape 2 pour maîtriser vos outils.</p> <h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="ef33ffac-4bba-4772-a826-ff49563c0ddd" height="35" src="/sites/default/files/inline-images/pieds_0.png" width="35" class="align-left" /> ETAPE 1 - Configuration logicielle</strong></h2> <p dir="ltr">Cette étape, contrairement à l'étape 0, va vous permettre d'instancier l'outil Z-Wave de façon détaillée. </p> <h3 dir="ltr"><strong>1.1. Installation de la dernière image du logiciel du Raspberry-Pi</strong></h3> <p dir="ltr"> A cette étape, il vous faut “flasher” une image du système d'exploitation Raspberry Pi (Raspbian par exemple) sur la carte micro SD. Vous trouverez les instructions complètes pour faire cela <a href="https://www.raspberrypi.org/documentation/installation/installing-images/README.md">ici</a> (attention, la méthode diffère selon votre système d’exploitation) mais en résumé, vous pouvez :</p> <p dir="ltr">1. <a href="https://downloads.raspberrypi.org/raspbian_full_latest">Télécharger</a> le fichier d’image et le décompresser,</p> <p dir="ltr">2. Installer un logiciel d’écriture d’image ISO sur un volume. Il est conseillé d'utiliser <a href="https://www.balena.io/etcher/">Balena Etcher</a> car c'est un logiciel fonctionnant sur Mac et Windows.</p> <p dir="ltr">3. Dans Etcher, sélectionnez l’image du point 1 et écrivez-là sur la carte micro SD.</p> <h3 dir="ltr"><strong>1.2. Configurer votre Raspberry Pi</strong></h3> <p dir="ltr">A ce stade ci, votre Raspberry est prête à l’emploi.  Les points suivants décrivent la manière dont vous pouvez commencer à installer les outils qui permettront de gérer votre bâtiment selon que vous utilisez un écran et un clavier, ou non. </p> <h3 dir="ltr"><strong>1.2.1. Si vous utilisez un écran et un clavier :</strong></h3> <p dir="ltr">    1. Branchez votre clavier et votre écran,</p> <p dir="ltr">          2. Alimentez la Raspberry,</p> <p dir="ltr">          3. Sur votre ordinateur, ouvrez un terminal (raccourci clavier : ctrl + alt + t),</p> <p dir="ltr">          4. Connectez-vous à internet en utilisant :</p> <p dir="ltr">               a. soit un câble ethernet</p> <p dir="ltr">               b. soit avec le Wi-Fi.</p> <p dir="ltr">                   b1. encodez  la commande suivante dans le terminal :</p> <pre> <code>sudo raspi-config</code></pre> <p dir="ltr">                  b2.Sélectionnez l'option “Network Options”,</p> <p dir="ltr">                   b3. Sélectionnez l'option “Wi-Fi”. </p> <p dir="ltr">Vous avez maintenant accès à votre Raspberry.</p> <h3 dir="ltr"><strong>1.2.2. Si vous n’utilisez pas d’écran et de clavier</strong></h3> <p dir="ltr">Pour les personnes n’utilisant pas d’écran et de clavier, il vous faut donc configurer la Raspberry pour une utilisation “headless”. La connexion se fera sur un terminal de lignes de commandes via SSH. Pour activer la fonctionnalité SSH, vous devez la configurer. Pour cela, nous vous conseillons de suivre le tutoriel officiel : <a href="https://raspberry-pi.fr/raspberry-pi-sans-ecran-sans-clavier/">https://raspberry-pi.fr/raspberry-pi-sans-ecran-sans-clavier/</a></p> <p dir="ltr">          1. Ensuite, connectez-vous en SSH :</p> <p dir="ltr">                a) Si vous utiliser un environnement UNIX, vous pouvez utiliser la commande  suivante dans une console :</p> <pre> <code>ssh pi@YOUR_PI_ADDR</code></pre> <p dir="ltr">                b) Si vous voulez vous connecter à l‘aide d’un ordinateur Windows, vous aurez besoin d’utiliser un outils comme <a href="https://www.ssh.com/ssh/putty/windows">Putty</a>.</p> <p dir="ltr">          2. Une fois connecté à la Raspberry pi, encodez le nom utilisateur par défaut qui est "pi",</p> <p dir="ltr">          3. Encodez le mot de passe par défaut qui est "raspberry",</p> <p dir="ltr">Vous avez maintenant accès à votre Raspberry.</p> <h3 dir="ltr"><strong>1.3. Installation des logiciels nécessaires à la gestion des capteurs</strong></h3> <p dir="ltr">Nous avons besoin d'installer le logiciel <a href="https://github.com/OpenZWave/Zwave2Mqtt">Zwave2Mqtt</a>, une passerelle IoT OpenSource pour vos objets Z-WAVE. Pour cela, vous pouvez utiliser Docker. Ce <a href="https://dev.to/rohansawant/installing-docker-and-docker-compose-on-the-raspberry-pi-in-5-simple-steps-3mgl">tutoriel</a> donne des informations de contexte et d'installation de l'outil Docker sur Raspberry-Pi.</p> <ol dir="ltr"><li> <p>Branchez votre Dongle sur le Raspberry et installez la dernière version Docker et Docker-Compose avec les commandes shell suivantes :</p> <pre> <code>echo "&gt;&gt;&gt;Install dependancies" sudo apt-get install apt-transport-https echo "&gt;&gt;&gt;Create /etc/apt/sources.list.d/docker.list" sudo sh -c 'echo "deb [arch=armhf] https://download.docker.com/linux/raspbian $(lsb_release -c -s) stable" &gt; /etc/apt/sources.list.d/docker.list' echo "&gt;&gt;&gt;Get the apt key :" wget -O - https://download.docker.com/linux/raspbian/gpg | sudo apt-key add - sleep 3 echo "&gt;&gt;&gt;Install Docker &amp; Docker-ycompose:" sudo apt-get update sudo apt-get install docker-ce=18.06.1~ce~3-0~raspbian sudo apt-get install docker-compose -y echo "&gt;&gt;&gt;Optionnal : allow some users to use Dls /e ocker (for example, user pea) :" sudo usermod -G docker pi </code></pre> <p> </p> </li> <li> <p>Configurez l’application Z-Wave Control Panel qui permettra de gérer votre réseau Z-Wave en entrant les commandes suivantes  :</p> <pre> <code>$ nano docker-compose.yml version: "2" services: zwave2mqtt: container_name: zwave2mqtt image: robertslando/zwave2mqtt:latest restart: always tty: true stop_signal: SIGINT networks: - zwave devices: - "/dev/ttyACM0:/dev/ttyACM0" volumes: - ./conf/zwave/store:/usr/src/app/store ports: - "8091:8091" mosquitto: container_name: mosquitto image: eclipse-mosquitto restart: always ports: - "1883:1883" networks: zwave: </code></pre> <p> </p> </li> <li> <p>Lancez le Z-Wave Control Panel avec la commande suivante  :</p> <pre> <code>$ docker-compose up -d</code></pre> <p> </p> </li> <li> <p>Vous pouvez vérifier que le Z-Wave Control Panel est bien installé en entrant <a href="http://raspberrypi.local:8091/">http://raspberrypi.local:8091</a> dans votre navigateur web (voir illustration ci-dessous).</p> </li> </ol><!-- THEME DEBUG --><!-- THEME HOOK: 'filter_caption' --><!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><figure role="group" class="caption caption-img align-center"><img alt="control panel" data-entity-type="file" data-entity-uuid="60d25328-bffb-48f2-8af0-6c305aa50422" height="449" src="/sites/default/files/inline-images/Illustration%202%20%20interface%20du%20Z-Wave%20Control%20Panel.png" width="946" /><figcaption>Interface du Z-Wave Control Panel</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="ef33ffac-4bba-4772-a826-ff49563c0ddd" height="35" src="/sites/default/files/inline-images/pieds_0.png" width="35" class="align-left" /> Etape 2 - configuration de l’application Z-Wave Control Panel </strong></h2> <p dir="ltr">Cliquez sur le deuxième icône (“Settings”) qui se trouve dans le menu de gauche de l’interface (voir l’illustration ci-dessous). L'interface comme illustrée ci-dessous s'affiche.</p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="setting" data-entity-type="file" data-entity-uuid="0e60b9c8-8bda-46cf-b7b2-6d7ac9e4f3bf" height="268" src="/sites/default/files/inline-images/Illustration%203%20%20interface%20de%20l%27onglet%20%20Settings%20du%20Z-Wave%20Control%20Panel.png" width="1143" /><figcaption>Interface de l'onglet "Settings" du Z-Wave Control Panel</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p dir="ltr">Configurez comme suit:</p> <ul><li dir="ltr"> <p dir="ltr">ZWave Panel :</p> <ul><li dir="ltr"> <p dir="ltr">Serial Port : /dev/ttyACM0</p> </li> <li dir="ltr"> <p dir="ltr">Network Key :  0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01</p> </li> <li dir="ltr"> <p dir="ltr">Poll interveal : 2000</p> </li> </ul></li> <li dir="ltr"> <p dir="ltr">MQTT Panell : </p> <ul><li dir="ltr"> <p dir="ltr">Name : my-zwave</p> </li> <li dir="ltr"> <p dir="ltr">Host URL : 172.17.0.1</p> </li> <li dir="ltr"> <p dir="ltr">port : 1883</p> </li> <li dir="ltr"> <p dir="ltr">Reconnect period : 3000</p> </li> <li dir="ltr"> <p dir="ltr">prefix : zwave</p> </li> <li dir="ltr"> <p dir="ltr">QoS : 1 </p> </li> </ul></li> <li dir="ltr"> <p dir="ltr">Gateway Panel :</p> <ul><li dir="ltr"> <p dir="ltr">Type : Named topics</p> </li> <li dir="ltr"> <p dir="ltr">Payload type : Entire Z-Wave value Object</p> </li> </ul></li> </ul><h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="ef33ffac-4bba-4772-a826-ff49563c0ddd" height="35" src="/sites/default/files/inline-images/pieds_0.png" width="35" class="align-left" /> Etape 3 -  Installation des Sensors &amp; Plugs</strong></h2> <p dir="ltr">Le but de cette opération est de réaliser la connexion des périphériques Z-Wave au Raspberry Pi 0W via le Z-Wave Control Panel.</p> <p dir="ltr">Pour inclure une prise dans votre réseau Z-Wave : </p> <p dir="ltr">1. Sélectionnez la première icône dans le menu de gauche de l’interface (voir l'illustration 4 ci-dessous) pour afficher l’interface du Control Panel,</p> <p dir="ltr">2. Cliquez sur le champ “Actions”, sélectionnez  “Add Node”,</p> <p dir="ltr">3. Cliquez sur l’icône “Envoyer”,</p> <p dir="ltr">4. Réalisez un triple clique sur la prise intelligente.</p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="noeud" data-entity-type="file" data-entity-uuid="b0fd0550-e50b-44f0-8371-aa07f989385b" height="311" src="/sites/default/files/inline-images/Illustration%204%20%20Ajouter%20un%20noeud%20%C3%A0%20votre%20r%C3%A9seau.png" width="1111" /><figcaption>Ajouter un noeud à votre réseau</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="ef33ffac-4bba-4772-a826-ff49563c0ddd" height="35" src="/sites/default/files/inline-images/pieds_0.png" width="35" class="align-left" /> Etape 4 - Vérification des données</strong></h2> <p dir="ltr">La première solution est de vérifier vos données sur l’interface graphique : </p> <p dir="ltr">1.Cliquez sur le noeud que vous venez d’inclure (voir étape 3),</p> <p dir="ltr">2. Dans le Panel en dessous (voir l'illustration 5) , cliquez sure “Node”,</p> <p dir="ltr">3. Puis cliquez sur “User”, les informations s’affichent.</p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="vérification des données" data-entity-type="file" data-entity-uuid="77068b23-a77d-445b-89fb-a3bfff34f630" height="717" src="/sites/default/files/inline-images/Illustration%205%20%20interface%20de%20v%C3%A9rification%20de%20vos%20donn%C3%A9es.png" width="849" /><figcaption>Interface de vérification des données</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p dir="ltr">Note : vous pouvez également configurer vos équipements. Par exemple :</p> <ul><li dir="ltr"> <p dir="ltr">Vous pouvez modifier le nom  (ex : Name: “my first wall plug”).</p> </li> <li dir="ltr"> <p dir="ltr">Cliquez sur l’icône “Envoyer” pour que les modifications soient prises en compte.</p> </li> </ul><p dir="ltr">La deuxième solution consiste à s’abonner aux messages. Pour ce faire, vous devez installer un “subscriber” pour vous abonner aux messages du collecteur de données (Z-Wave Control Panel). Pour cela, vous devez : </p> <p dir="ltr">       1. Installer le “client”  avec la commande :</p> <pre> <code>sudo apt isntall mosquitto-clients</code></pre> <p dir="ltr">       2. Exécuter le “subscriber” :</p> <pre> <code>mosquitto_sub -t ‘#’ -v</code></pre> <p dir="ltr">        3. Option du subscriber :</p> <pre> <code>mosquitto_sub --help</code></pre> <ul><li dir="ltr"> <p dir="ltr">-t : pour fixer les “topic”. Dans notre cas, # = tous les topics</p> </li> <li dir="ltr"> <p dir="ltr">-v : verbose, pour avoir un maximum d’information.</p> </li> <li dir="ltr"> <p dir="ltr">-h : Si besoin pour fixer l’adresse IP ou l’URL (par défaut : localhost)</p> </li> <li dir="ltr"> <p dir="ltr">-p : Si besoin, pour fixer le port (par défaut : 1883)</p> </li> </ul><p dir="ltr">Bonus : pour contrôler l'état d'un module type “prise de courant”, vous pouvez entrer la commande shell suivante :</p> <pre> <code>mosquitto_pub -t 'zwave/$LOCATION$/$NODE-NAME$/switch_binary/switch/set' -m '0'</code></pre> <p> </p> <p>Votre système domotique est maintenant installé, configuré et prêt à être utilisé!</p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Fri, 20 Nov 2020 14:33:56 +0000 laurie 27 at http://toolbox.hub-charleroi.be Airberry : fabriquer votre moniteur de qualité d’air http://toolbox.hub-charleroi.be/fiche/airberry-fabriquer-votre-moniteur-de-qualite-dair <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Airberry : fabriquer votre moniteur de qualité d’air</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Connectivit%C3%A9R%C3%A9seaux" hreflang="en">Connectivité/réseaux</a></div> <div class="field__item"><a href="/IoT" hreflang="en">IoT</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Thu, 11/19/2020 - 14:30</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://toolbox.hub-charleroi.be/sites/default/files/2020-09/Fiche%20Airberry_1.pdf" type="application/pdf; length=5137738" title="Fiche Airberry_1.pdf">Fiche Airberry</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><h2 dir="ltr">Mesurer la qualité de l'air</h2> <p dir="ltr">Vous doutez de la qualité de l’air dans votre entreprise, vos bureaux ou même à votre domicile ? Vous désirez mesurer la teneur en particules fines de votre environnement??</p> <p dir="ltr"><strong>Airberry</strong> est fait pour vous ! </p> <p dir="ltr">Nous savons tous qu'une mauvaise qualité de l'air influence directement la santé : l'exposition à la pollution de l'air, à court ou à long terme, augmente fortement le risque de développer des maladies respiratoires aiguës, chroniques et cardio-vasculaires. Mais pas de panique, cette fiche vous permet de construire vous-même l'Airberry, une solution efficace et peu coûteuse qui vous permettra de monitorer la qualité de l'air intérieur de vos bureaux, vos entrepôts, vos lieux de productions,...</p> <h2 dir="ltr">Prérequis </h2> <p dir="ltr">Connaissances basiques en soudure</p> <p dir="ltr">Expérience de base en utilisation de Raspberry PI </p> <h2 dir="ltr"><strong><img alt="goal" data-entity-type="file" data-entity-uuid="209fea19-7b22-44f5-beae-28e1fe78e764" height="33" src="/sites/default/files/inline-images/goal2_4.png" width="33" class="align-left" /> Pour quoi faire? </strong></h2> <p dir="ltr">Cette fiche présente la mise en oeuvre du projet Airberry, c’est-à-dire l’installation d’un moniteur de qualité d’air basé sur les variables suivantes ; </p> <ul><li dir="ltr"> <p dir="ltr">la température,</p> </li> <li dir="ltr"> <p dir="ltr">l’humidité,</p> </li> <li dir="ltr"> <p dir="ltr">les <a href="https://fr.wikipedia.org/wiki/Particules_en_suspension%20,%20https://www.respire-asso.org/particules-en-suspension-pm10-/pm-25">particules fines</a> : il s’agit des PM10 - PM pour Particulate Matter - et des PM25, soit les particules fines ayant un diamètre inférieur à 10 micromètres (PM10) et à 2.5 micromètres (PM25). </p> </li> <li dir="ltr"> <p dir="ltr">la variation de la concentration de gaz spécifiques. Les gaz spécifiques mesurés peuvent être l'ammoniac (NH3, rejeté par exemple lors de la production d’engrais azotés), le CO2, le CO, l’éthanol, etc.</p> </li> </ul><h2 dir="ltr"><strong><img alt="matériel" data-entity-type="file" data-entity-uuid="5d7e0110-d63c-4145-a742-213019661ad2" height="32" src="/sites/default/files/inline-images/outils_2.png" width="32" class="align-left" /> Matériel requis </strong></h2> <p dir="ltr">L'Airberry est un ensemble de senseurs pilotés par une Raspberry Pi qui envoie ses données vers un serveur centralisé. Afin de construire le détecteur, il vous faut le matériel suivant :</p> <ul><li dir="ltr"> <p dir="ltr">Une <a href="https://shop.mchobby.be/fr/pi-zero-w/1228-raspberry-pi-zero-w-v13-3232100012288.html">Raspberry Pi Zero W</a>  (notre choix s'est porté sur ce modèle pour une question de coût, mais vous pouvez réaliser ce tutoriel avec une Raspberry Pi 3 par exemple),</p> </li> <li dir="ltr"> <p dir="ltr">Un senseur de la <a href="https://www.mysensors.org/build/gas,%20https://tutorials-raspberrypi.com/configure-and-read-out-the-raspberry-pi-gas-sensor-mq-x/">famille MQ-X</a> pour mesurer la concentration en gaz. Cette famille regroupe les capteurs physicochimiques pouvant détecter une grande variété de gaz, polluants et fumées dans l’atmosphère. Nous avons choisi un senseur  <a href="https://de.aliexpress.com/wholesale?catId=0&amp;initiative_id=SB_20200114013749&amp;SearchText=capteur+MQ135">MQ-135</a> car celui-ci est sensible à l'ammoniac (NH3), au CO2, à l’alcool, au Benzène et à l’oxyde d’azote (NOx). Bref, il détecte les principaux polluants dans l'atmosphère de votre maison.</p> </li> <li dir="ltr"> <p dir="ltr">Un senseur de particules fines <a href="http://de.aliexpress.com/wholesale?site=deu&amp;SortType=price_asc&amp;shipCountry=de&amp;SearchText=sds011&amp;CatId=523%C2%A0">SDS011</a> pour mesurer la concentration en particules fines, typiquement mesurée en μg/m3. Cette mesure sera déterminée par diffusion laser. Pour plus de détails sur les mesures des particules fines, voir par exemple : <a href="https://www.fierceelectronics.com/components/particulate-matter-sensing-for-air-quality-measurements">https://www.fierceelectronics.com/components/particulate-matter-sensing-for-air-quality-measurements</a>.  </p> </li> </ul><p dir="ltr">Une mesure précise de la concentration des gaz en ppm (partie par million) peut être obtenue à l’aide de senseurs de la famille MQ-X, mais nécessite une calibration avec un gaz de concentration précisément connue, ce qui est difficile à réaliser en dehors d’un laboratoire. Cependant, la courbe de réponses de ces capteurs est telle qu’ils sont parfaitement indiqués pour surveiller la variation relative de ces gaz.</p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-right"><img alt="illustration du matériel pour l'Airberry" data-entity-type="file" data-entity-uuid="3a841512-1cad-4bb8-9597-4c9a447dac77" height="372" src="/sites/default/files/inline-images/PSX_20200113_135926.jpg" width="279" /><figcaption>Illustration du matériel nécessaire</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><ul><li dir="ltr"> <p dir="ltr">un <a href="https://de.aliexpress.com/wholesale?catId=0&amp;initiative_id=SB_20191108012004&amp;SearchText=dht22">thermomètre et hygromètre DHT 22</a>, </p> </li> <li dir="ltr"> <p dir="ltr">un <a href="https://shop.mchobby.be/en/electronics/618-2-x-36-pin-header-normal-3232100006188.html">pin header 2 rangs 40 broches</a>, </p> </li> <li dir="ltr"> <p dir="ltr">un <a href="https://de.aliexpress.com/wholesale?catId=0&amp;initiative_id=SB_20191108014410&amp;SearchText=mcp3008%C2%A0">convertisseur analogique digital MCP3008</a>, </p> </li> <li dir="ltr"> <p dir="ltr">une résistances de 330 et 680 Ohms,</p> </li> <li dir="ltr"> <p dir="ltr">un PCB Airberry Rev 2.0. Vous pouvez télécharger les fichiers Gerber <a href="https://github.com/terence-bigtt/airBerry/raw/master/design/AirBerry-Rev-2-0-Gerber.zip%C2%A0">ici</a>, ils sont à compléter avec des headers femelles et des câbles sertis ou par des soudures directes. Néanmoins, le PCB peut être remplacé par des soudures directes selon le câblage décrit ci-après.</p> </li> </ul><p dir="ltr">Afin d’utiliser et d’installer le logiciel sur la Raspberry, il vous faudra également : </p> <ul><li dir="ltr"> <p dir="ltr">une <a href="https://de.aliexpress.com/wholesale?catId=0&amp;initiative_id=AS_20191108012429&amp;SearchText=micro+sd+16gb">carte micro SD d'au moins 8 Gb</a>, </p> </li> <li dir="ltr"> <p dir="ltr">un adaptateur secteur micro USB (type chargeur de téléphone),</p> </li> <li dir="ltr"> <p dir="ltr">un lecteur de carte micro SD,</p> </li> <li dir="ltr"> <p dir="ltr">un ordinateur,</p> </li> <li dir="ltr"> <p dir="ltr">un fer à souder.</p> </li> </ul><h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="858e0f89-d237-405f-ad59-a86dc6b9a534" height="40" src="/sites/default/files/inline-images/pieds_1.png" width="40" class="align-left" /> ETAPE 1 - Montage du détecteur</strong></h2> <p dir="ltr">La notice ci-après propose un montage sur une carte imprimée. Il n'est cependant pas indispensable d'utiliser une telle carte car l'important est de connecter les différentes pins entre elles, tel qu'indiqué sur le schéma plus bas. </p> <p dir="ltr">Les détecteurs utilisés dans ce projet exploitent plusieurs types de communication :</p> <p>      - Le <em>détecteur de particules fines</em> communique avec la Raspberry par UART, grâce à deux connections : une pour la transmission (Tx) et l'autre pour la réception (Rx). Le détecteur et la Raspberry échangent des bits, une suite de 0 et 1 afin de, par exemple, ordonner l'acquisition d'une mesure ou d'en transmettre le résultat.</p> <p>      - Les <em>senseurs "MQ-X"</em> sont essentiellement des résistances variables, dont la valeur dépend de la concentration en gaz dans l'environnement proche du senseur. Cette résistance variable est montée comme un pont diviseur de tension. La tension est donc divisée différemment selon la teneur en gaz. Mesurer cette tension divisée revient donc à mesurer la teneur en gaz. Cependant, cette mesure est une mesure analogique : il ne s'agit pas d'acquérir une série structurée de bits, mais de mesurer une valeur continue. Malheureusement, les Raspberry n'ont pas de convertisseur Analogique/Digital (DAC) intégré. Le senseur MQ-X est donc raccordé à un DAC, qui a pour rôle de convertir la mesure continue en une valeur sur une échelle donnée. Dans notre projet, nous utiliserons un DAC 10 bits, c'est à dire que la valeur continue sera rapportée sur une échelle de 1024 (2 exposant 10) mesures possibles.</p> <p>      - Le <em>DAC </em>est quant à lui raccordé à la Raspberry par le port SPI. Il s'agit d'un protocole de communication digital permettant d'utiliser les même ports pour relier plusieurs détecteurs. Ce protocole exploite 3+1 pins : MISO (Master In Slave Out), MOSI (Master Out Slave In), Clk (clock) et Cs (channel selector). MISO et MOSI sont les équivalents de Rx, Tx dans le cas UART, tandis que Clk permet une synchronisation précise de la communication et Cs permet de sélectionner le senseur qui communiquera (c'est un interrupteur).</p> <p>      - Les <em>senseurs DHT</em>, pour la température, utilisent un protocole de communication propre qui exploite une seule pin pour la communication.</p> <h2 dir="ltr"><strong>1.1. Pinout </strong></h2> <p dir="ltr">Les entrées / sorties des éléments de la liste d'achats sont représentés sur les illustrations suivantes :</p> <p dir="ltr">Le thermomètre et hygromètre DHT 22 :</p> <p dir="ltr"><img alt="DHT22" data-entity-type="file" data-entity-uuid="fcdcc504-8555-4a19-a263-d6a0fa399e49" height="131" src="/sites/default/files/inline-images/1_0.png" width="212" class="align-left" /></p> <p> </p> <p> </p> <p> </p> <p> </p> <p>Le convertisseur analogique digital MCP3008 :</p> <p><img alt="MCP3008" data-entity-type="file" data-entity-uuid="93a3b28a-831d-4601-a734-0af219273a1e" height="240" src="/sites/default/files/inline-images/2_0.png" width="297" /></p> <p>La Raspberry Pi Zero W (il a le même pinout que RPi3) :</p> <p><img alt="Rasp PI Zero" data-entity-type="file" data-entity-uuid="81452022-1c27-484e-b785-5e7e0eda56e0" height="268" src="/sites/default/files/inline-images/3_0.png" width="383" /></p> <p>Le senseur MQ-X :</p> <p><img alt="MQ-X" data-entity-type="file" data-entity-uuid="dbdacd6a-d909-4326-810f-745ff0d1f5fd" height="185" src="/sites/default/files/inline-images/senseurMQX_airberry.png" width="333" /></p> <p>Le capteur de particules fines SDS011  :</p> <p dir="ltr"><img alt="SDS011" data-entity-type="file" data-entity-uuid="ac6ad029-5042-41d0-a3d2-78b02a4e2420" height="188" src="/sites/default/files/inline-images/capteurparticulesfines_aiberry.jpg" width="188" /></p> <h2 dir="ltr"><strong>1.2. Raccordements</strong></h2> <p dir="ltr">Le câblage à effectuer est détaillé sur le schéma ci-dessous, celui-ci représente les connections à effectuer. Les étiquettes portant le même nom doivent être physiquement connectées. Il s’agit en réalité du schéma de connexion de la carte du circuit imprimé décrit en début de fiche. </p> <p dir="ltr">Le schéma de câblage est bien entendu le même sur carte ou par raccordements directs. Par exemple,  la sortie de la résistance R2 est connectée au canal 0 du MCP 3008, puisque ils sont tout deux reliés à l’étiquette "ch0".</p> <p dir="ltr">Les blocs “JST” représentent des connecteurs vers les senseurs ou la Raspberry. Vous pouvez directement les souder à la Raspberry.</p> <p dir="ltr"><img alt="soudures" data-entity-type="file" data-entity-uuid="160a8907-4daa-4612-afb0-1567cba94a79" height="386" src="/sites/default/files/inline-images/raccordements_airberry.png" width="627" /></p> <p dir="ltr">Sur l'illustration ci-dessous, les connexions vers la Raspberry se font au niveau des trois composants représentés sur le coté gauche :</p> <p dir="ltr"><img alt="connexions" data-entity-type="file" data-entity-uuid="3f42601c-75c1-46f9-b2f4-33a9fbbb05f3" height="451" src="/sites/default/files/inline-images/connexionsraspberry.png" width="446" /></p> <p dir="ltr">On peut voir que : </p> <p dir="ltr">Gnd se connecte à Ground sur la Raspberry (pin 6)</p> <p dir="ltr">VCC se connecte à 5V sur la Raspberry (pin 2 ou 4)</p> <p dir="ltr">V33 se connecte à 3V3 sur la Raspberry (pin 1)</p> <p dir="ltr"> </p> <p dir="ltr">rx se connecte à Tx sur la Raspberry (pin 8)</p> <p dir="ltr">tx se connecte à Rx sur la Raspberry (pin 10)</p> <p dir="ltr">dht se connecte à GPIO 18 sur la Raspberry (pin 12)</p> <p dir="ltr"> </p> <p dir="ltr">clk se connecte à SPI CLK sur la Raspberry (pin 23)</p> <p dir="ltr">dout se connecte à MISO sur la Raspberry (pin 21)</p> <p dir="ltr">din se connecte à MOSI sur la Raspberry (pin 19)</p> <p dir="ltr">cs se connecte à GPIO22 sur la Raspberry (pin 15)</p> <p dir="ltr">Une fois ces raccordements effectués, votre détecteur se trouve prêt à être configuré.</p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-left"><img alt="Illustration du montage final" data-entity-type="file" data-entity-uuid="6949eede-b070-4ac0-bf30-b372e73150bd" height="285" src="/sites/default/files/inline-images/PSX_20200113_135235_0.jpg" width="346" /><figcaption>Illustration du montage final</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-left"><img alt="PCB" data-entity-type="file" data-entity-uuid="8e7a6981-0906-4e78-aa01-2186ef2abfd7" height="294" src="/sites/default/files/inline-images/PSX_20200113_140056_0.jpg" width="441" /><figcaption>Illustration du PCB</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <h2><strong><img alt="etape" data-entity-type="file" data-entity-uuid="858e0f89-d237-405f-ad59-a86dc6b9a534" height="40" src="/sites/default/files/inline-images/pieds_1.png" width="40" class="align-left" /> ETAPE 2 -  Configuration et installation du logiciel</strong></h2> <p dir="ltr">Cette partie décrit comment installer la Raspberry Pi Zero W et comment la connecter à internet. </p> <h2 dir="ltr">2.1. Matériel utilisé </h2> <p dir="ltr">Les composants nécessaires au fonctionnement de la Raspberry sont : </p> <ul><li dir="ltr"> <p dir="ltr">Une Raspberry Pi Zero W</p> </li> <li dir="ltr"> <p dir="ltr">Une alimentation pour la Raspberry Pi</p> </li> <li dir="ltr"> <p dir="ltr">Une carte micro SD d’au moins 8Go</p> </li> <li dir="ltr"> <p dir="ltr">Un lecteur de carte micro SD</p> </li> <li dir="ltr"> <p dir="ltr">Un ordinateur</p> </li> </ul><h2 dir="ltr"><strong>2.2. Installation initiale de la Raspberry</strong></h2> <p dir="ltr">Pour le bon déroulement du projet Airberry, il est nécessaire de disposer d’une Raspberry fonctionnelle. A cette fin, il faut “flasher” une image du système d'exploitation Raspberry Pi (RaspBian par exemple) sur la carte micro SD. Vous trouverez les instructions complètes pour faire cela <a href="https://www.raspberrypi.org/documentation/installation/installing-images/README.md">ici</a> mais en résumé, vous pouvez :</p> <p dir="ltr">      1. Sur votre ordinateur, <a href="https://www.raspberrypi.org/downloads/raspberry-pi-os/">télécharger</a> le fichier d’image et le décompresser,</p> <p dir="ltr">      2. Installer un logiciel d’écriture d’image ISO sur un volume. Il est conseillé d'utiliser <a href="https://www.balena.io/etcher/">Balena Etcher</a> car c'est un logiciel fonctionnant sur Mac et Windows.</p> <p dir="ltr">      3. Dans Etcher, sélectionnez l’image du point 1 et écrivez-là sur la carte micro SD.</p> <p dir="ltr">      4. Configuration initiale de la Raspberry : si vous avez un écran et un clavier à connecter, reportez-vous au point 1 ci-dessous, sinon le point 2 décrit une configuration "headless", c’est à dire sans écran ni clavier sur la Raspberry.</p> <p>      a) Pour une installation avec écran et clavier : mettez la Raspberry sous tension, puis suivez ce <a href="https://www.raspberrypi.org/documentation/configuration/raspi-config.md">lien</a> afin de configurer une connexion WiFi.  A la suite de cela, vous pouvez passer directement à la section 2.4 "installation du logiciel de mesure". </p> <p dir="ltr">      b) Pour une installation "headless", la connexion se fera sur un terminal de ligne de commandes via SSH. Pour activer la fonctionnalité SSH et connecter la Raspberry au Wifi local afin de pouvoir effectuer l’installation de l’Airberry, il faut ajouter quelques informations sur la carte SD configurée au point précédent. pour cela : </p> <p dir="ltr">            1. Débranchez et rebranchez la carte micro SD.</p> <p dir="ltr">            2. Parcourez le volume "boot".</p> <p dir="ltr">            3. Créez un fichier nommé "SSH" (pas d’extension ni de contenu) dans le volume "boot".</p> <p dir="ltr">            4. Créez un fichier "wpa_supplicant.conf" avec le contenu suivant :</p> <pre> <code>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country="be" network={ ssid="&lt;Name of your WiFi&gt;" psk="&lt;Password for your WiFi&gt;" } </code></pre> <p dir="ltr">N'oubliez pas d'indiquer votre nom de réseau et mot de passe WiFi dans les variables "ssid" et "psk". Vous trouverez davantage de  détails sur cette procédure <a href="https://www.raspberrypi.org/documentation/configuration/wireless/headless.md">ici</a>.</p> <h2 dir="ltr">2.3. Connexion de la Raspberry au WiFi</h2> <p dir="ltr">A ce stade ci, votre Raspberry devrait être reliée à votre réseau WIFI. Il faut à présent se connecter dessus, pour cela :</p> <p dir="ltr">      1. Ouvrez un terminal</p> <p dir="ltr">      2. Encodez :</p> <pre> <code>ssh pi@raspberrypi.local</code></pre> <p dir="ltr">      3. Encodez le mot de passe  qui est "raspberry".</p> <h2 dir="ltr"><strong>2.4. Installation du logiciel de mesure</strong></h2> <p dir="ltr">Réalisé par un membre du CETIC, un logiciel de mesure est disponible sur <a href="https://github.com/terence-bigtt/airBerry">Github</a>.</p> <p dir="ltr">      1. Clonez le dépôt dans le répertoire de votre choix sur votre ordinateur :</p> <pre> <code>git clone https://github.com/terence-bigtt/airBerry.git</code></pre> <p dir="ltr">      2. Copiez le contenu du répertoire backend / scripts vers le raspberry (<a href="https://success.tanaza.com/s/article/How-to-use-SCP-command-on-Windows">utilisateurs windows</a>) :</p> <pre> <code>scp backend/scripts pi@raspberrypi.local:~</code></pre> <p dir="ltr">      3. Connectez-vous au terminal de la Raspberry en ssh:</p> <pre> <code> ssh pi@raspberrypi.local</code></pre> <p dir="ltr">      4. Entrez la commande ci-dessous : </p> <pre> <code>sudo bash install.sh</code></pre> <p dir="ltr">Ce script va effectuer les opérations suivantes :</p> <p dir="ltr">    1. Désactiver le bluetooth (qui occupe l’interface UART matérielle).</p> <p dir="ltr">    2. Activer le support UART (pour la communication avec le SDS011).</p> <p dir="ltr">    3. Activer le Support SPI (pour la communication avec le MCP3008).</p> <p dir="ltr">    4. Installer le serveur de configuration et de mesures.</p> <p dir="ltr">    5. Installer la vue de configuration.</p> <p dir="ltr">    6. Installer un point d'accès Wifi (RaspAP, voir section 2.5). </p> <p dir="ltr">    7. Servir la vue de configuration via le serveur minihttp installé par RaspAP.</p> <p dir="ltr">Le serveur de mesure effectue une mesure sur tous les capteurs connectés à intervalle régulier (par défaut, toutes les 15 minutes). Après cette mesure, il envoie ces données au serveur central, grâce à un token (voir l'étape 4 de cette fiche) et à l’adresse de ce serveur. Si il ne parvient pas à réaliser cette étape, le serveur de mesure stocke localement la donnée datée. Dès qu’une connexion avec le serveur est établie, le Airberry envoie les données qu’il a stockée localement afin d’éviter de perdre des mesures. En parallèle, il stocke en interne un certain nombre de mesures passées (100 par défaut), lesquelles peuvent être visualisées dans l’onglet “Dashboard” de l’interface, disponible à l'adresse http://raspberrypi.local/air ou http://&lt;adresse ip du Airberry&gt;/air (disponible que le même wifi que le Airberry).</p> <p dir="ltr">Une fois les mesures effectuées, le serveur re-planifie une nouvelle mesure après le délai configuré.</p> <h2 dir="ltr"><strong>2.5. Configuration d’un Access Point</strong></h2> <p dir="ltr">L'installation et l'utilisation du Airberry peut avoir lieu dans des endroits à priori différents. Par conséquent, il est utile de pouvoir configurer l'accès internet de manière simple. A cette fin, nous utiliserons le logiciel RaspAp, qui a été installé automatiquement lors de l'étape précédente.</p> <p dir="ltr">Afin de configurer la connectivité, veuillez suivre les étapes suivantes :</p> <p dir="ltr">      1. Redémarrez la Raspberry en la débranchant et rebranchant. Après un petit moment, le réseau “raspi-webgui” doit devenir disponible.</p> <p dir="ltr">      2. Connectez-vous à ce réseau avec le mot de passe “ChangeMe”, et dans un navigateur, demandez l’adresse 10.3.141.1. Cette adresse sert une interface accessible avec les user/mots de passe suivants : </p> <ul><li> <p dir="ltr">Username : admin</p> </li> <li> <p dir="ltr">Password : secret</p> </li> </ul><p dir="ltr">      3. Dans l’onglet “Configure HotSpot / avancé”, activez l’option “Wifi client AP mode”.</p> <p dir="ltr">      4. Redémarrez (System / Reboot). Attention, après cette opération, l’adresse de la  Raspberry sur le hotspot (réseau raspi-webgui) change et devient 192.168.50.1.</p> <p dir="ltr">      5. Si tout s’est bien passé, la Raspberry devrait être connectée à internet.</p> <h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="858e0f89-d237-405f-ad59-a86dc6b9a534" height="40" src="/sites/default/files/inline-images/pieds_1.png" width="40" class="align-left" /> ETAPE 3 - Configuration d’un serveur de récolte de données (optionnel)</strong></h2> <p dir="ltr">Le CETIC met à disposition l’accès à un serveur de récolte de données pour le projet AirBerry. <a href="https://www.cetic.be/Contact">Contactez-le</a> si vous souhaitez obtenir une clé d’identification pour votre appareil de mesure.</p> <p dir="ltr">Si vous souhaitez configurer votre propre serveur, vous trouverez la documentation concernant les étapes à suivre sur le site <a href="https://thingsboard.io/docs/user-guide/">ThingsBoard</a> (nous avons également une <a href="https://toolbox.hub-charleroi.be/node/29">fiche</a> expliquant comment installer et prendre en main cette plateforme).</p> <h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="858e0f89-d237-405f-ad59-a86dc6b9a534" height="40" src="/sites/default/files/inline-images/pieds_1.png" width="40" class="align-left" /> ETAPE 4 - Configuration finale </strong></h2> <p dir="ltr">      1. Connectez-vous à l'interface de configuration du Airberry : http://raspberrypi.local/air ou http://&lt;adresse ip du Airberry&gt;/air,</p> <p dir="ltr">      2. Cliquez sur l'onglet "Admin", qui vous permettra de configurer : </p> <p dir="ltr">                  - l’intervalle de temps entre les mesure,</p> <p dir="ltr">                 - l’adresse du serveur central : entrez l'adresse de récolte de données de votre serveur ThingsBoard, celui du CETIC est https://air.ext.cetic.be/api/v1/{}/telemetry,</p> <p dir="ltr">                 - le token d’identification pour le serveur central : entrez le token device généré par ThingsBoard  ou celui fournit par le CETIC,</p> <p dir="ltr">                  - le nombre de dernières mesures à conserver.</p> <h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="858e0f89-d237-405f-ad59-a86dc6b9a534" height="40" src="/sites/default/files/inline-images/pieds_1.png" width="40" class="align-left" /> ETAPE 5 - Fonctionnement local et customisation</strong></h2> <p>L’Airberry conserve une partie de ses mesures localement et permet de les afficher sur un graphique. Il est tout à fait envisageable de modifier le logiciel de configuration et de pilotage de l’ Airberry pour conserver systématiquement toutes les mesures, et de n’utiliser le moniteur que dans un mode local. De même, il est envisageable de publier les données vers un autre système que ThingsBoard (Grafana, par exemple), moyennant quelques modifications mineures. Le code est opensource et disponible sur le <a href="https://github.com/terence-bigtt/airBerry">dépôt Github</a>.</p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Thu, 19 Nov 2020 13:30:12 +0000 laurie 26 at http://toolbox.hub-charleroi.be La gestion des réseaux de capteurs http://toolbox.hub-charleroi.be/fiche/la-gestion-des-reseaux-de-capteurs <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">La gestion des réseaux de capteurs</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Connectivit%C3%A9R%C3%A9seaux" hreflang="en">Connectivité/réseaux</a></div> <div class="field__item"><a href="/IoT" hreflang="en">IoT</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Wed, 11/18/2020 - 16:07</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://toolbox.hub-charleroi.be/sites/default/files/2020-12/Fiche%20gestion%20r%C3%A9seau%20de%20capteurs.pdf" type="application/pdf; length=1484217" title="Fiche gestion réseau de capteurs.pdf">Fiche La gestion des réseaux de capteurs</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><h2>Découvrez les plateformes IoT</h2> <p dir="ltr">Vous ne déployez pas encore d’objets connectés? Aujourd’hui l’IoT est la réponse qu’il vous faut afin de plonger dans l’ère du numérique, d’améliorer la qualité de vos services et de proposer de nouvelles stratégies et approches! </p> <p dir="ltr">Cette fiche traite principalement des besoins de <strong>gestion des réseaux de capteurs</strong> : dans un premier temps, nous allons introduire les concepts d’Iot et d’IIoT, deux notions importantes à l’heure actuelle, surtout pour le monde industriel, pour ensuite aborder les besoins et les problématique liés à ces concepts. </p> <p dir="ltr">Suite à cela, nous nous focaliserons sur les différents types de plateforme IoT et nous décrirons les critères de sélection à prendre en compte lors du choix d’une plateforme. Ces critères nous permettront de choisir la plateforme IoT qui nous semble la plus pertinente.</p> <h2 dir="ltr"><strong><img alt="goal" data-entity-type="file" data-entity-uuid="dbc9962d-1eeb-4912-af09-48aa15574019" height="40" src="/sites/default/files/inline-images/goal2_2.png" width="40" class="align-left" /> Pourquoi utiliser une plateforme IoT?</strong></h2> <h2 dir="ltr">1. Introduction à l’Internet des Objets (IoT)  </h2> <p dir="ltr">Depuis quelques années, l’Internet des Objets (IoT) est l’un des piliers, avec l’intelligence artificielle, la réalité augmentée et bien d’autres technologies disruptives, qui accompagne  l’évolution des industries dans leur 4ème phase d’évolution (autrement dit, l’Industrie 4.0). </p> <p dir="ltr">Du capteur de la station météo au smartphone, l’Internet des Objets est de plus en plus présent dans notre quotidien. Son essor est lié à notre besoin de numériser notre environnement afin de l'analyser, le comprendre, le prédire et si possible, l’optimiser. </p> <p dir="ltr">Un réseau de capteurs IoT représente un ensemble d’objets connectés capable de numériser leur environnement puis de transmettre cette information sur internet. Une plateforme IoT représente quant à elle un ensemble de services : elle permet de collecter, stocker, corréler, analyser et exploiter les données générées par les capteurs. D’une certaine façon, elle rend des données inexploitées, exploitables et permet, à partir du traitement de celles-ci, de créer de la valeur en générant et en mettant à disposition de nouvelles informations. </p> <p dir="ltr">Cette technologie est mise en oeuvre dans de nombreux secteurs d’activités comme l’industrie avec le monitoring environnemental (voir notre fiche sur l’<a href="https://toolbox.hub-charleroi.be/node/26">Airberry</a>), la santé avec les capteurs cardiaques connectés ou encore dans nos maisons avec les prises intelligentes (voir la fiche <a href="https://toolbox.hub-charleroi.be/node/27">Fabriquer votre propre système domotique open source</a>), la sécurité,...</p> <h2 dir="ltr">2. L’IoT et le monde industriel</h2> <p dir="ltr">L’IIoT (Industrial Internet of Things) est une sous-catégorie de l’IoT :  il s’agit de l’IoT appliqué au secteur industriel. Alors que l’IoT vise à répondre aux besoins d’un large public, l’IIoT se focalise sur les besoins des professionnels et des entreprises.  Ces derniers doivent pouvoir disposer d’indicateurs concrets et de données permettant d’analyser et de comprendre les comportements des systèmes industriels. Les capteurs et détecteurs ne sont pas seulement interconnectés, ils sont également connectés aux autres équipements de l’entreprise afin de générer un maximum d’informations tout au long de la chaîne de production. Tous les maillons de la chaîne industrielle de valeur (les machines, les produits, les collaborateurs, les fournisseurs, les infrastructures,...) peuvent désormais communiquer entre eux, ce qui rend l’usine plus intelligente.</p> <h2 dir="ltr">3. Quelques usages et avantages de l’IIoT</h2> <p dir="ltr">De façon générale, cette technologie permet de fluidifier et de simplifier la gestion des données, ainsi que de remonter facilement les données stratégiques pour l’entreprise, étant donné que le flux d’information est en temps réel.</p> <h3 dir="ltr">3.1. Gestion du processus de production, des ressources et des stocks</h3> <p dir="ltr">L’IIoT améliore nettement la gestion des opérations industrielles à chaque étape du processus de production :  il y a une surveillance et un suivi beaucoup plus performant, le contrôle qualité est automatisé, les ressources et les stocks sont gérés de manière plus responsable et anticipée, la production est adaptable en temps réel, les ajustements des équipements techniques du bâtiment (éclairage, chauffage, climatisation,...) répondent aux besoins réels de l’entreprise,... Celle-ci peut désormais contrôler plus précisément ses coûts de financements et diminuer les gaspillages.</p> <h3 dir="ltr"><strong>3.2. Amélioration de la maintenance</strong></h3> <p dir="ltr">Un autre avantage est que l’analyse constante des données liées au fonctionnement des différentes machines et systèmes rend la planification et l’exécution des interventions plus efficaces, notamment grâce à la mise en place d’un système de maintenance prédictive ou à l’automatisation d’alertes.</p> <h3 dir="ltr"><strong>3.3. Plus de réactivité, plus de sécurité</strong></h3> <p dir="ltr">L’IIoT représente également un atout en ce qui concerne la sécurité des bâtiments, ainsi que du personnel, car celles-ci se trouvent renforcées par les systèmes de surveillances qui augmentent la vitesse de réactivité face à une menace potentielle, qui préviennent des risques d’accidents, qui évaluent l’usage ou la mauvaise utilisation du système de sécurité, qui détectent des chutes, qui envoient des messages à des centres de secours, qui peuvent accorder l’accès ou non aux zones de l’entreprises (via des contrôles d’accès biométriques par exemple), … Cela contribue à renforcer le bien-être des employés et à éviter les interruptions de production.</p> <h2 dir="ltr"><strong>4. L’IoT et l’IIot, des solutions pour l’avenir</strong><img alt="IIot" data-entity-type="file" data-entity-uuid="865ea53e-c639-48ac-9c7b-bbe06b6da13a" height="336" src="/sites/default/files/inline-images/my-visual_47602927.png" width="317" class="align-right" /></h2> <p dir="ltr">Comme ont peut le constater, l’IIoT vient bouleverser les prises de décisions, le fonctionnement et l’organisation d’une entreprise en simplifiant ses processus et en y ajoutant de l’intelligence.  Cette technologie représente une nouvelle source de revenus et crée des avantages concurrentiels indéniables. Elle n’apporte pas seulement des gains financiers en améliorant le bénéfice net et le retour sur investissement de l’entreprise, il y a également des gains de temps, de qualité de travail, de confort et sécurité des employés, de flexibilité, de productivité et de traçabilité importants qui favorisent la transition numérique de l’entreprise vers l’Industrie 4.0.</p> <p dir="ltr">Bien que le monde de l’Internet des Objets soit toujours en pleine expansion et  que de nombreuses technologies émergent encore sur le marché, il existe de nombreuses problématiques liées à cette thématique, notamment concernant le rapatriement des informations collectées sur le terrain. En effet, il existe des contraintes comme la couverture réseau ou encore l’autonomie énergétique de ces objets déployés. Il est donc nécessaire de gérer ces différentes solutions IoT existantes à l’aide de l’outil de management de réseaux de capteurs, les plateformes IoT.</p> <h2 dir="ltr"><strong>5. Les problématiques de L’IoT  </strong></h2> <p>L’enjeu des plateformes IoT réside dans leurs capacités à gérer un parc de capteurs connectés. La gestion est divisible en plusieurs catégories : </p> <ul><li dir="ltr"> <p dir="ltr">La gestion des connecteurs : API pour collecter les données</p> </li> <li dir="ltr"> <p dir="ltr">La gestion des flux : le filtrage des données collectées et l’extraction des informations</p> </li> <li dir="ltr"> <p dir="ltr">La gestion du stockage : la sauvegarde des informations</p> </li> <li dir="ltr"> <p dir="ltr">La gestion des utilisateurs : le droit d’accès des utilisateurs</p> </li> <li dir="ltr"> <p dir="ltr">La gestion des capteurs : le cycle de vie des capteurs</p> </li> <li dir="ltr"> <p dir="ltr">La gestion des actions &amp; alertes : la prise de décision automatisée  </p> </li> </ul><p dir="ltr">Pour répondre à ces besoins, nous allons fixer les critères de sélection d’une plateforme IoT dans la deuxième partie de cette fiche.</p> <h2 dir="ltr"><strong><img alt="choisir sa plateforme IoT" data-entity-type="file" data-entity-uuid="c7b0d018-a16a-45c8-9324-6d4a54e783b4" height="41" src="/sites/default/files/inline-images/checkbox_marked_outline_icon_139811_0.png" width="41" class="align-left" /> Comment choisir sa plateforme IoT ?</strong></h2> <h2 dir="ltr"><strong>1. Définition de la plateforme IoT </strong></h2> <p dir="ltr">La plateforme IoT est un ensemble de services qui a pour objectifs de gérer :</p> <ul><li dir="ltr"> <p dir="ltr">la collecte des données des objets connectés,</p> </li> <li dir="ltr"> <p dir="ltr">le cycle de vie de capteurs, </p> </li> <li dir="ltr"> <p dir="ltr">le partage des informations (à des utilisateurs et/ou à des applications).</p> </li> </ul><h2 dir="ltr"><strong>2. Les types de plateformes  : open source vs propriétaires</strong></h2> <p dir="ltr">Il existe deux types de plateformes IoT : les plateformes open source et les plateformes propriétaires.</p> <ul><li dir="ltr"> <p dir="ltr">Les plateformes open-source : le logiciel est distribué librement et le code-source est ouvert à tous. Vous devez développer l’ensemble des services et vous occuper de la maintenance de la plateforme vous-même, il vous faut donc assez bien de connaissances et de ressources pour faire cela. Cela peut prendre un certain temps , mais heureusement, vous pouvez compter sur la communauté pour vous aider. </p> </li> <li dir="ltr"> <p dir="ltr">Les plateformes propriétaires : généralement, vous souscrivez aux services et vous partagez la responsabilité avec le prestataire qui fournit et maintient les environnements.</p> </li> </ul><p dir="ltr">Pour aller plus en détails, voici les avantages et inconvénients de 4 modèles de plateformes IoT existants : </p> <ol><li dir="ltr"> <p dir="ltr">Les solutions PaaS (Plateforme as a Service) : ces plateformes sont des services proposés par des acteurs du Cloud (Azur IoT, IBM Watson IoT ou encore AWS IoT) ou par des opérateurs téléphoniques comme Orange Live Objects ou encore EnCo de Proximus).</p> </li> <li dir="ltr"> <p dir="ltr">Les solutions SaaS (Software as a Service) : ces logiciels sont des services proposés par des entreprises visant à offrir une solution clé en main pour les utilisateurs, comme par exemples : AllThingsTalks, ThingsPlay, Opinum DataHub, WeSmart. </p> </li> <li dir="ltr"> <p dir="ltr">Les solutions open source : ces solution communautaires sont des services de gestion IoT génériques et adaptables aux besoins, comme ThingsBoard CE ou MainFlux.</p> </li> <li dir="ltr"> <p dir="ltr">Les solutions sur mesure : cette approche vise les besoins spécifiques. Il n’existe donc pas de solution plateforme IoT en soi mais il s’agit d’outils, tel que FADI, qui vous permettront de mettre oeuvre et de maintenir plus aisément votre propre plateforme IoT.</p> </li> </ol><p dir="ltr">Les avantages et inconvénients de ces approches sont :</p> <p dir="ltr"><img alt="plateformes iot avantages et inconvénients" data-entity-type="file" data-entity-uuid="340781fb-fba3-4a10-806f-2e5659fc444e" height="282" src="/sites/default/files/inline-images/plateformesIoT.PNG" width="537" /></p> <h2 dir="ltr"><strong>3. Les critères de sélection </strong></h2> <p dir="ltr">Pour comparer des services de plateformes IoT, nous avons basés nos études comparatives sur les critères suivants :</p> <ul><li dir="ltr"> <p dir="ltr">Device management : il s’agit de la déclaration et gestion du parc d’objets connectés, de la gestion des configurations et des protocoles de communication, de la gestion des firmwares (systèmes d’exploitation) et de la gestion des droits d’accès à la plateforme. </p> </li> <li dir="ltr"> <p dir="ltr">Sécurité : il s’agit d’être protégé des risques d’hacking, de garantir la confidentialité des données de bout en bout, de proposer un cryptage fort des données, de fournir un système d’authentification sécurisé, de permettre la séparation des données dans l’écosystème commun. </p> </li> <li dir="ltr"> <p dir="ltr">Capacité de récupération des données : il s’agit du type et du nombre de protocoles de communication gérés par la plateforme (MQTT, CoAP...), des types d’accès autorisés (LoRa, Sigfox …).</p> </li> <li dir="ltr"> <p dir="ltr">Visualisation des données : ce sont les interfaces, les écrans, les modules d’affichage des informations à disposition par défaut, mais également de la modélisation et des processus de provisioning des objets (capteurs), des fonctionnalités de gestion des flottes ainsi que la capacité à bufferiser les messages descendants.</p> </li> <li dir="ltr"> <p dir="ltr">Stockage des données : cela se rapporte à l’historisation de l’ensemble des données transmises (messages, logs...) basé sur les capacités de stockage offertes par l’utilisation des technologies cloud.</p> </li> <li dir="ltr"> <p dir="ltr">Rule engine : il s’agit de la mise à disposition d’un moteur de règles et d’alertes, celles-ci sont envoyées via SMS ou par mail en cas d’intrusion dans un environnement privé par exemple.</p> </li> </ul><h2 dir="ltr"><strong><img alt="comment identifier" data-entity-type="file" data-entity-uuid="10911b1f-fc48-4aea-b13f-1da75df564f0" height="37" src="/sites/default/files/inline-images/search_loupe.png" width="37" class="align-left" /> Comment identifier la PoV d’une plateforme IoT?</strong></h2> <p dir="ltr">Afin d’identifier la Proof of Value (PoV, c’est-à-dire la preuve de viabilité économique d’un concept ou d’un service) d'une plateforme IoT, il est désirable de maîtriser les coûts de déploiement et d'utilisation tout en minimisant les besoins de développement. En effet, l’open source répond parfaitement au besoin d’interopérabilité et permet, simplement et rapidement, de développer, de déployer et de tester vos solutions IoT. Il n’y a pas de risques de dépendance par rapport à un fournisseur et vous pouvez partager vos réalisations (applications, améliorations du code,...) avec la communauté. Un autre avantage est que si vous rencontrez des bugs, la communauté peut vous apporter une multitude de points de vue et de solutions par rapport à ceux-ci. </p> <h2><strong>1. Comparaison de plusieurs plateformes IoT open source </strong></h2> <p dir="ltr">Il existe actuellement de nombreux projets de plateformes IoT open source. Pour réaliser notre sélection, nous avons pris le parti d’étudier les plateformes IoT avec de fortes communautés : Kaa IoT Platform, SiteWhere, ThingSpeak, ThingsBoard CE, Mainflux, DeviceHive et Thinger et WSo2.</p> <h2 dir="ltr"><strong>2. Identification des besoins de notre plateforme IoT open source </strong></h2> <p dir="ltr">Pour être capable de collecter les données de l’ensemble des réseaux de capteurs déployés, la plateforme IoT open source devra satisfaire aux critères suivants :</p> <ul><li dir="ltr"> <p dir="ltr">Supporter la gestion des appareils,</p> </li> <li dir="ltr"> <p dir="ltr">Collecter les données via les protocoles HTTP, MQTT et CoAP,</p> </li> <li dir="ltr"> <p dir="ltr">Posséder au minimum une authentification de base (identifiant + mot de passe) ou un échange de jetons sécurisés (JWT),</p> </li> <li dir="ltr"> <p dir="ltr">Inclure un outil de visualisation des données,</p> </li> <li dir="ltr"> <p dir="ltr">Inclure une base de données “IoT”,</p> </li> <li dir="ltr"> <p dir="ltr">Inclure un moteur de règles.</p> </li> </ul><h2 dir="ltr"><strong>3. Conclusions à propos de la plateforme IoT open source adéquate </strong></h2> <p dir="ltr">Suite aux critères précédemment cités, notre choix s’est centré sur les plateformes IoT ThingsBoard et Mainflux. La plateforme ThingsBoard est finalement préférée à Mainflux car elle constitue une solution supportée par davantage d’utilisateurs (sur Github : 4500 stars pour Thingsboard contre 686 stars pour Mainflux). Cet aspect doit toujours être pris en compte car une forte  communauté open source permet de garantir une meilleure pérennité de l’application. De plus, si après une période de test de ThingsBoard CE (Community Edition), vous désirez pérenniser l’application et garantir une maintenance, il est possible d’acheter une licence ou de souscrire à un abonnement à la solution ThingsBoard PE (Professional Edition). </p> <p><img alt="thingsboard" data-entity-type="file" data-entity-uuid="6a93a6ea-2c4e-49f1-b452-3687094009cf" height="55" src="/sites/default/files/inline-images/thingsboard_logo%20%282%29_1.jpg" width="241" class="align-right" /></p> <p dir="ltr">Pour en apprendre plus au sujet de la plateforme ThingsBoard, depuis l'installation jusqu'à sa prise en main, rendez-vous sur la <a href="https://toolbox.hub-charleroi.be/node/29">fiche</a> qui lui est dédiée!</p> <p dir="ltr"> </p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Wed, 18 Nov 2020 15:07:34 +0000 laurie 28 at http://toolbox.hub-charleroi.be ThingsBoard : gérer les données de vos appareils connectés http://toolbox.hub-charleroi.be/fiche/thingsboard-gerer-les-donnees-de-vos-appareils-connectes <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">ThingsBoard : gérer les données de vos appareils connectés</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Connectivit%C3%A9R%C3%A9seaux" hreflang="en">Connectivité/réseaux</a></div> <div class="field__item"><a href="/Gestion%20de%20donn%C3%A9es" hreflang="en">Gestion de données</a></div> <div class="field__item"><a href="/IoT" hreflang="en">IoT</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Tue, 11/17/2020 - 11:23</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://toolbox.hub-charleroi.be/sites/default/files/2020-09/fiche%20installation%20Thingsboard.pdf" type="application/pdf; length=723217" title="fiche installation Thingsboard.pdf">Fiche Thingsboard</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><h2>Installation et prise en main de la plateforme IoT <img alt="thingsoard" data-entity-type="file" data-entity-uuid="98c733e2-8ca2-4420-9369-4f428a6a0b4c" height="52" src="/sites/default/files/inline-images/thingsboard_logo%20%282%29_0.jpg" width="227" /></h2> <p>Cette fiche vous explique comment mettre en place ThingsBoard, une plateforme IoT open source, qui vous permet de gérer vos appareils connectés, collecter, traiter et visualiser les données de télémétries provenant de vos capteurs. </p> <h2 dir="ltr">Prérequis </h2> <p dir="ltr">Connaissances de base en linux</p> <h2 dir="ltr"><img alt="matériel" data-entity-type="file" data-entity-uuid="e525953b-3312-49fe-b3d7-f184a2761525" height="28" src="/sites/default/files/inline-images/outils_0.png" width="28" class="align-left" /> Matériel requis</h2> <p dir="ltr">Avoir un réseau de capteurs déployé.</p> <p dir="ltr">La configuration matérielle requise dépend de la base de données choisie et du nombre d’appareils connectés au système :</p> <ul dir="ltr"><li> <p>ThingsBoard + base de données Postgres : environnement de production minimal (2Go de RAM minimum;4 Go de Ram recommandés).</p> </li> <li> <p>ThingsBoard + base de données Cassandra : environnement de production optimisé (4Go de RAM minimum; 8 Go sont recommandés).</p> </li> <li> <p>ThingsBoard + base de données HSQLDB embarquée : environnement de développement (Non recommandé).</p> </li> </ul><h2 dir="ltr"><strong><img alt="goal" data-entity-type="file" data-entity-uuid="5cf7f2c7-e68d-4305-813e-32f95f765998" height="29" src="/sites/default/files/inline-images/goal2_0.png" width="29" class="align-left" /> Pour quoi faire? </strong></h2> <p>Comme expliqué dans notre précédente fiche relative aux plateformes IoT, ThingsBoard nous semble être la solution la plus pertinente par rapport aux critères de sélection que nous avions énoncés (besoin d’être open source, de supporter la gestion des appareils, de collecter les données via les protocoles HTTP, MQTT et CoAP, d’inclure un outil de visualisation des données et une base de données “IoT”,...).</p> <h2><strong><img alt="étape" data-entity-type="file" data-entity-uuid="7bb9ba54-2d90-4291-a330-3993be0c9b19" height="31" src="/sites/default/files/inline-images/pieds.png" width="31" class="align-left" /> Get Started - ThingsBoard CE &amp; Docker</strong></h2> <p>Pour effectuer l’installation de la plateforme IoT Open Source ThingsBoard, plusieurs solutions s’offrent à vous. Il est possible d’installer ThingsBoard sur plusieurs plateformes comme indiqué sur <a href="https://thingsboard.io/docs/user-guide/install/installation-options/">la documentation officielle</a>. Dans notre cas, nous installerons ThingsBoard sur Docker, dans une machine virtuelle Debian.</p> <h2><strong><img alt="étape" data-entity-type="file" data-entity-uuid="7bb9ba54-2d90-4291-a330-3993be0c9b19" height="31" src="/sites/default/files/inline-images/pieds.png" width="31" class="align-left" /> Etape 1 -  Installation de Docker</strong></h2> <p dir="ltr">Docker est un outil qui permet de packager des applications afin de faciliter leurs partages et leurs utilisations. </p> <p dir="ltr">Pour effectuer l’installation sur une machine Linux, il vous faut télécharger le fichier docker-install.sh puis l'exécuter avec la commande suivante :</p> <pre> <code>wget get.docker.com -o docker-install.sh &amp;&amp; sudo sh docker-install.sh</code></pre> <p dir="ltr">Si des erreurs surviennent, veuillez effectuer l’installation pas à pas avec la documentation officielle de Docker disponible sur ce <a href="https://docs.docker.com/get-docker/">lien</a>.</p> <h2 dir="ltr"><strong><img alt="étape" data-entity-type="file" data-entity-uuid="7bb9ba54-2d90-4291-a330-3993be0c9b19" height="31" src="/sites/default/files/inline-images/pieds.png" width="31" class="align-left" /> Etape 2 -  Installation et prise en main de ThingsBoard</strong></h2> <p dir="ltr">Pour l’installation de ThingsBoard, trois configurations de base de données s’offrent à vous :</p> <ul><li dir="ltr"> <p dir="ltr">ThingsBoard + base de données Postgres : environnement de production minimal (2Go de RAM minimum;4 Go de Ram recommandés).</p> </li> <li dir="ltr"> <p dir="ltr">ThingsBoard + base de données Cassandra : environnement de production optimisé (4Go de RAM minimum; 8 Go sont recommandés).</p> </li> </ul><ul><li dir="ltr"> <p dir="ltr">ThingsBoard + base de données HSQLDB embarquée : environnement de développement (Non recommandé).</p> </li> </ul><p dir="ltr">Dans ce tutoriel, nous utiliserons la configuration légère ThingsBoard Postgres car elle répond parfaitement à notre besoin de démonstration.</p> <h2 dir="ltr"><strong>2.1 Installation de ThingsBoard CE</strong></h2> <p>Maintenant que Docker est opérationnel, vous pouvez installer et exécuter l’outil via la commande suivante :</p> <pre> <code>docker run -it -p 9090:9090 -p 1883:1883 -p 5683:5683/udp -v ~/.mytb-data:/data -v ~/.mytb-logs:/var/logs/thingsboard --name mytb --restart always thingsboard/tb-postgres </code></pre> <h2><strong>2.2 Login</strong></h2> <p dir="ltr">Pour accéder à l’outil ThingsBoard, il est nécessaire d’identifier votre adresse IP (par exemple, si vous avez installé ThingsBoard sur votre odinateur, l’adresse est “localhost”) :</p> <ul><li dir="ltr"> <p dir="ltr">http://$YOUR-IP$:9090</p> </li> </ul><p dir="ltr">Une fois sur l’interface ThingsBoard, il vous faut vous connecter au compte administrateur avec les informations suivantes : </p> <ul><li dir="ltr"> <p dir="ltr">Email par défaut : tenant@thingsboard.org,</p> </li> <li dir="ltr"> <p dir="ltr">Mot de passe par défaut : tenant.</p> </li> </ul><h2 dir="ltr"><strong>2.3 Création d’un device</strong></h2> <p dir="ltr">Pour créer votre premier appareil connecté, vous devez : </p> <p dir="ltr">      1. vous rendre sur l’onglet “Dispositifs” ou “Devices”,</p> <p dir="ltr">      2. cliquez ensuite sur le “+” en bas à droite puis “Ajouter un nouveau dispositif”, </p> <p dir="ltr">      3. donnez-lui un nom et attribuez-lui un type,</p> <p dir="ltr">      4. cliquez sur “Ajouter”.</p> <p dir="ltr">Votre device est désormais créé.</p> <h2 dir="ltr"><strong>2.4 Simulation d’un device</strong></h2> <p>Afin de simplifier la démonstration, nous utiliserons dans ce tutoriel un appareil connecté simulé. Pour simuler le senseur, nous allons utiliser le système de “Chaîne de règle” de ThingsBoard :</p> <p dir="ltr">      1. Cliquez sur l’onglet “Chaîne de règles” (ou “Rule chains” en anglais), puis créez une nouvelle chaîne de règles.</p> <p dir="ltr">      2. Donnez-lui  un nom et cliquez sur “Ajouter”.</p> <p dir="ltr">Il faut désormais configurer cette chaîne de règles : </p> <p dir="ltr">      1. Pour simuler un device, nous allons avoir besoin d’un “Generator” : sélectionnez, dans la catégorie “Action”, le bloc rouge nommé “Générator”,</p> <p dir="ltr">      2. Dans son écran de configuration, attribuez-lui un nom,</p> <p dir="ltr">      3. Choisissez le nombre de secondes entre chaque message généré par le device. Dans notre exemple nous prendrons 2 secondes. </p> <p dir="ltr">      4. Sélectionnez ensuite “Dispositif” comme origine et choisissez le device créé précédemment. Enfin,  notre fonction de démonstration est la suivante :</p> <pre> <code>var msg = { temp: 25+Math.floor(Math.random() * Math.floor(5)), humidity: 77 }; var metadata = { data: 40 }; var msgType = "POST_TELEMETRY_REQUEST"; return { msg: msg, metadata: metadata, msgType: msgType };</code></pre> <p dir="ltr">      5. Cliquez ensuite sur “Ajouter”,</p> <p dir="ltr">      6. Ensuite, sélectionnez dans la catégorie “Action”, un bloc rouge “Save timeseries”, ajoutez-le, nommez-le et cliquez sur “Ajouter”. Ce bloc va vous permettre de stocker vos données.</p> <p dir="ltr">      7. Reliez le bloc “Generator” au bloc “Save timeseries” en choisissant “Success” comme “Étiquette de liens” et cliquez sur “Ajouter”. Ne vous préoccupez pas du bloc vert “Input”.</p> <p dir="ltr">Votre device est maintenant simulé et vous pouvez le vérifier comme suit :</p> <p dir="ltr">      1. Cliquez sur l’onglet “Dispositif”, </p> <p dir="ltr">      2. Cliquez sur le device créé précédemment,</p> <p dir="ltr">      3. Cliquez sur  l’onglet “Dernière télémétrie”. Vous pouvez désormais observer la température et l’humidité qui sont mises à jour toutes les deux secondes.</p> <h2 dir="ltr"><strong>2.5 Visualisation des données dans le dashboard</strong></h2> <p dir="ltr">Maintenant que vous avez un appareil simulé opérationnel, vous allez pouvoir visualiser les informations qu’il renvoit sur un écran de contrôle appelé “Dashboard” grâce aux étapes suivantes :</p> <p dir="ltr">      1. Cliquez sur l’onglet “Tableaux de bord“ (ou “Dashboards” en anglais).</p> <p dir="ltr">      2. Cliquez ensuite sur le “+” en bas à droite puis “Créer un nouveau tableau de bord”,</p> <p dir="ltr">      3. Nommez-le et cliquez sur “Ajouter”. Il est possible d’attribuer ce Dashboard à un utilisateur en cliquant sur l'icône “Gérer les clients affectés” à côté de l'icône supprimer.</p> <p dir="ltr">Après avoir cliqué sur le dashboard, il faut définir l’alias qui sera utilisé. Il s’agit d’un nom secondaire qui va être attribué à un certain device. Pour se faire : </p> <p dir="ltr">      1. cliquez sur le bouton orange “Edition” en bas à droite,</p> <p dir="ltr">      2. cliquez ensuite sur l’icône “Alias d’entité” à gauche du bouton plein écran. Vous pouvez alors ajouter votre alias en saisissant un nom. </p> <p dir="ltr">      3. Dans votre cas, sélectionnez le filtre “Entité unique” puis le type dispositif avec le nom de votre device.</p> <p dir="ltr">Votre alias est désormais créé. Vous pouvez désormais ajouter des éléments à votre dashboard en cliquant sur “Ajouter un nouveau widget” (une carte, une jauge de température, un graphique temporel...).</p> <h2 dir="ltr"><strong><img alt="vidéo" data-entity-type="file" data-entity-uuid="c2797e27-acac-42c9-867b-0da74ebf320b" height="28" src="/sites/default/files/inline-images/camera_0.png" width="28" class="align-left" /> La démonstration en vidéo</strong></h2> <p>Retrouvez la démonstration de la plateforme IoT ThingsBoard grâce cette <a href="https://youtu.be/NUhlmcJDy1s">vidéo</a></p> <h2><strong>Pour aller plus loin</strong></h2> <p>Si vous désirez en savoir plus sur ThingsBoard, nous vous invitons à consulter la documentation officielle disponible<a href="https://thingsboard.io/docs/"> ici</a>.</p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Tue, 17 Nov 2020 10:23:53 +0000 laurie 29 at http://toolbox.hub-charleroi.be Tsimulus : un générateur de séries chronologiques réalistes open source http://toolbox.hub-charleroi.be/fiche/tsimulus-un-generateur-de-series-chronologiques-realistes-open-source <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Tsimulus : un générateur de séries chronologiques réalistes open source </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Cloud" hreflang="en">Cloud Computing</a></div> <div class="field__item"><a href="/Gestion%20de%20donn%C3%A9es" hreflang="en">Gestion de données</a></div> <div class="field__item"><a href="/IoT" hreflang="en">IoT</a></div> <div class="field__item"><a href="/Logiciel" hreflang="en">Logiciel</a></div> <div class="field__item"><a href="/Tutoriel" hreflang="en">Tutoriel</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Sun, 11/15/2020 - 10:32</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://toolbox.hub-charleroi.be/sites/default/files/2021-03/Fiche%20TSimulus.pdf" type="application/pdf; length=1467118" title="Fiche TSimulus.pdf">Fiche Tsimulus</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><h2><img alt="TSimulus" data-entity-type="file" data-entity-uuid="c123ccb4-c94b-463f-b23c-d3de6882bc31" height="123" src="/sites/default/files/inline-images/logo%20tsimulus.png" width="303" /></h2> <p>Vous devez tester à grande échelle le bon comportement des outils de traitement de données, y compris dans un contexte big data ?  Vous manquez de données en temps réel ?</p> <p dir="ltr">Nous avons la solution ! Cette fiche vous présente TSimulus, l’outil qui vous permet de simuler des données, sous forme de séries temporelles, de manière très réaliste. </p> <p>Après l’énonciation des différents concepts nécessaires à sa compréhension, nous vous proposons une démonstration de son utilisation en simulant des températures externes pour la ville d’Uccle. Nous y détaillons les différentes étapes qui permettent de les rendre aussi réalistes que possible. </p> <p>Cette bibliothèque fait partie du projet de recherche EAM-SDI, fondé par la Région Wallonne.</p> <h2 dir="ltr"><strong>Prérequis </strong></h2> <p dir="ltr">Connaissances basiques en JSON</p> <p dir="ltr">Savoir écrire des lignes de commandes dans un terminal</p> <h2 dir="ltr"><img alt="goal" data-entity-type="file" data-entity-uuid="62bbc1fc-7ce5-416e-a0c3-e2f1ae856bd2" height="35" src="/sites/default/files/inline-images/goal2.png" width="35" class="align-left" /> Pour quoi faire ? </h2> <p dir="ltr">Les séries chronologiques sont utilisées dans une grande variété de domaines, notamment l’industrie, l’économie, les finances, la démographie, les prévisions météorologiques et le traitement du signal. Elles répondent à de nombreux objectifs dont les principaux sont la prévision, l’estimation d’une tendance ou encore l’évaluation de l’impact d’un événement. </p> <p>La bibliothèque TSimulus vous permet de simuler différents capteurs et de générer une quantité suffisante de données pour effectuer des tests par exemple. Vous spécifiez la forme d'une série chronologique (modèles généraux, cycles, importance du bruit ajouté, etc. - ces différents concepts sont décrits dans la section suivante) et TSimulus convertit cette spécification en valeurs de séries chronologiques. </p> <p>Concrètement, cet outil propose :</p> <ul><li> <p>Un moyen d'exprimer des contraintes de séries chronologiques à l'aide de documents JSON, ainsi qu'une API Scala pour exprimer programmatiquement ces contraintes.</p> </li> <li dir="ltr"> <p dir="ltr">Un moyen pratique de combiner des contraintes afin d'exprimer des contraintes de niveau supérieur.</p> </li> <li dir="ltr"> <p dir="ltr">Un moteur qui génère des valeurs de séries temporelles en fonction des contraintes décrites.</p> </li> <li dir="ltr"> <p dir="ltr">Un outil en ligne de commande qui s'appuie sur le moteur pour générer des séries chronologiques.</p> </li> <li dir="ltr"> <p dir="ltr">Un microservice sans état qui fournit des services de génération de séries chronologiques.</p> </li> </ul><h2 dir="ltr"><img alt="concepts" data-entity-type="file" data-entity-uuid="a041bebb-6f07-4cc2-85ae-01ae3fd7625c" height="37" src="/sites/default/files/inline-images/book-open-shape_icon-icons.com_70792.png" width="37" class="align-left" /> Quelques concepts </h2> <h2 dir="ltr">Une série chronologique (ou série temporelle)</h2> <p dir="ltr">Il s’agit d’une séquence de points ordonnée dans le temps, chacun d'eux étant associé au plus à une valeur. </p> <h3 dir="ltr">1. Évaluation de la série</h3> <p dir="ltr">Les séries chronologiques peuvent être évaluées à tout moment. Cette évaluation est rapide, sans effet secondaire et référentiellement transparente (en particulier, l'évaluation d'une série chronologique fournit toujours la même valeur pour un horodatage donné).</p> <p>De plus, la bibliothèque TSimulus prend en charge la génération de valeurs de séries chronologiques sous forme de flux numériques (potentiellement illimités). </p> <h3 dir="ltr">2. Les valeurs manquantes </h3> <p dir="ltr">Une série chronologique peut ne pas avoir de valeur à fournir pour un horodatage donné. Ce cas est géré par la bibliothèque comme des valeurs «manquantes». Les valeurs manquantes peuvent être remplacées par des valeurs «par défaut» et peuvent être supprimées d'une collection de valeurs avant d'opérer une agrégation.</p> <h2 dir="ltr">Les générateurs</h2> <p dir="ltr">L'objectif principal des générateurs est de décrire les contraintes qui façonnent la série temporelle générée.</p> <p>Alors que les générateurs de nombres aléatoires peuvent facilement être utilisés pour produire des séquences de nombres non liés (ou, du moins, dont les relations sont difficilement prévisibles), générer des séquences de nombres qui semblent respecter certains modèles évidents est également intéressant dans de nombreuses circonstances, y compris la simulation de l'acquisition de données dans les domaines mentionnés dans la section précédente.</p> <h3 dir="ltr">1. Une simulation de données réaliste</h3> <p dir="ltr">Afin de créer des séries chronologiques réalistes, un bruit convaincant doit généralement être ajouté à certains modèles spécifiés. De plus, les valeurs d'une série chronologique peuvent être liées à celles d'une autre série chronologique.</p> <h3 dir="ltr">2. Les différents types de générateurs </h3> <p dir="ltr">Voici une description succincte de trois types de générateurs. Vous trouverez davantage d’informations sur ceux-ci ainsi que sur les autres types existants <a href="https://tsimulus.readthedocs.io/en/latest/generators.html#about-generators">ici</a>. </p> <h3 dir="ltr"><strong>2.1. Les générateurs primaires</strong></h3> <p dir="ltr">Les séries chronologiques primaires génèrent des valeurs qui n’ont de relation avec aucune autre série chronologique. Un utilisateur peut contraindre la forme générale d'une série chronologique primaire en spécifiant certains points de données (qui correspondent à des points dans les temps associés à des valeurs spécifiques) et en spécifiant que la série chronologique générée doit contenir ces points de données. Pour avoir plus d’informations sur les générateurs primaires, cliquez <a href="https://tsimulus.readthedocs.io/en/latest/generators.html#primary-generators">ici</a>.</p> <h3 dir="ltr"><strong>2.2. Les générateurs composites</strong></h3> <p dir="ltr">Les générateurs peuvent être combinés de diverses manières afin de produire des générateurs plus complexes. De tels générateurs, appelés générateurs composites, expriment des séries chronologiques dont les valeurs sont le résultat de l'agrégation, de la comparaison, de la corrélation, etc. des valeurs générées par des séries temporelles décrites par d'autres générateurs. Vous en saurez davantage en cliquant <a href="https://tsimulus.readthedocs.io/en/latest/generators.html#composite-generators">ici</a>.</p> <h3 dir="ltr"><strong>2.3.  Les générateurs binaires</strong></h3> <p dir="ltr">Les valeurs des séries temporelles générées peuvent être numériques ou binaires. Des opérations booléennes peuvent être appliquées à des valeurs binaires, qui peuvent être utilisées pour décrire des séries chronologiques conditionnelles. Les valeurs numériques peuvent être combinées et comparées de différentes manières, afin de créer des séries chronologiques complexes en combinant des séries simples. Vous en saurez davantage sur les générateurs binaires en cliquant <a href="https://tsimulus.readthedocs.io/en/latest/generators.html#binary-generators">ici</a>.</p> <h3 dir="ltr"><strong>3. Le document de configuration</strong></h3> <p dir="ltr">Comme expliqué précédemment, la forme des séries temporelles générées est définie à l'aide de générateurs. Votre travail, en tant qu'utilisateur de TSimulus, est donc de modifier les descriptions de ces générateurs afin d'obtenir un résultat aussi réaliste que possible. Ces générateurs peuvent être spécifiés de manière déclarative dans un document dit de configuration, qui est un document JSON respectant une structure donnée. Ce document est composé d'une section “generators”, dans laquelle les générateurs sont déclarés, d'une section “exported” contenant la liste des générateurs qui doivent être convertis en séries chronologiques, ainsi que d'une paire de dates délimitant la période pour laquelle des valeurs de séries chronologiques doivent être générées.</p> <h3 dir="ltr"><strong>3.1. La section “generators”</strong></h3> <p dir="ltr">L'utilisation de la section “generators” dans un document de configuration, bien que facultative, est fortement recommandée afin de décrire la spécification des générateurs décrivant la série temporelle à générer. La section “generators” est donc essentiellement une liste de générateurs qui pourraient être convertis en séries chronologiques. </p> <h3><strong>3.2. La section “exported”</strong></h3> <p dir="ltr">Cette section du document de configuration répertorie les générateurs qui doivent être convertis en séries chronologiques. Il s'agit essentiellement d'une liste d'objets JSON contenant les attributs suivants :</p> <ul><li dir="ltr"> <p dir="ltr">name : le nom qui doit être associé à la série chronologique.</p> </li> <li dir="ltr"> <p dir="ltr">generators : une description du générateur représentant la série temporelle à générer. Cela peut être une description en ligne.</p> </li> <li dir="ltr"> <p dir="ltr">frequency : la période, en millisecondes, à laquelle les valeurs de séries temporelles doivent être générées.</p> </li> </ul><h3 dir="ltr"><strong>3.3. Les sections “from” et “to”</strong></h3> <p dir="ltr">Alors que la bibliothèque entière peut générer des valeurs pour tout moment valide, et malgré le fait que les séries temporelles soient considérées en interne comme des flux de valeurs potentiellement illimités, une telle génération illimitée ne peut pas être traitée dans un temps limité. Par conséquent, deux champs supplémentaires, exprimant le début et la fin de la période pour laquelle des valeurs doivent être générées, sont nécessaires dans le document de configuration afin de pouvoir générer des séries temporelles.</p> <h2 dir="ltr"><img alt="demonstration" data-entity-type="file" data-entity-uuid="f13565b8-8698-4a82-a94c-00ac454757ce" height="31" src="/sites/default/files/inline-images/note_list_icon_124054.png" width="31" class="align-left" /> Démonstration de TSimulus</h2> <p dir="ltr">Dans le cadre de cette fiche, nous vous proposons une démonstration de l’utilisation de TSimulus réalisant une simulation des températures externes pour la ville d’Uccle.  Après avoir détaillé le matériel nécessaire, nous décrivons les différentes manières d’installer TSimulus et expliquons comment l’utiliser.</p> <p>La démonstration à proprement parler commence lors de la troisième étape où vous pouvez créer un générateur de données et ensuite le rendre plus réaliste par le biais d’autres générateurs. </p> <h2 dir="ltr"><img alt="matériel" data-entity-type="file" data-entity-uuid="16d535da-0245-4eb9-96ee-362152f6a3e4" height="28" src="/sites/default/files/inline-images/outils.png" width="28" class="align-left" /> Matériel requis </h2> <p dir="ltr">Concernant le CLI, il vous faut : </p> <ul><li dir="ltr"> <p dir="ltr">une machine virtuelle <a href="https://www.java.com/fr/">Java</a></p> </li> <li dir="ltr"> <p dir="ltr">installer un fichier de configuration</p> </li> <li dir="ltr"> <p dir="ltr">taper la ligne de code suivante : java -jar tsimlus-cli.jar</p> </li> </ul><h2 dir="ltr"><img alt="étape1" data-entity-type="file" data-entity-uuid="e5797bb1-ff59-418d-a01a-9cf451aee5da" height="29" src="/sites/default/files/inline-images/footprint.png" width="29" class="align-left" /> Étape 1  - Comment utiliser la bibliothèque Tsimulus ? </h2> <p>Les séries chronologiques peuvent être générées selon les règles décrites dans un document de configuration. Vous pouvez envisager d'utiliser <a href="https://github.com/cetic/tsimulus-cli/releases">notre application CLI</a> qui lit les documents de configuration à partir d'un fichier JSON standard.</p> <p>Vous pouvez également envisager d'utiliser <a href="https://github.com/cetic/tsimulus-ms/releases">notre microservice</a> qui écoute les requêtes HTTP. Dans ce cas, le document de configuration est soumis en tant que paramètre d'une requête POST.</p> <h2 dir="ltr"><img alt="étape1" data-entity-type="file" data-entity-uuid="e5797bb1-ff59-418d-a01a-9cf451aee5da" height="29" src="/sites/default/files/inline-images/footprint.png" width="29" class="align-left" /> Étape 2 - Getting started</h2> <h3 dir="ltr"><strong>2.1. Une première génération de données</strong></h3> <p dir="ltr">Le moyen le plus simple de tester le projet TSimulus est de télécharger <a href="https://github.com/cetic/tsimulus-cli/releases">la dernière version d'un fichier Jar</a> exécutable contenant une application basée sur la bibliothèque TSimulus. Comme décrit dans la section “Matériel requis”, vous aurez besoin d'une machine virtuelle Java installée sur votre environnement.</p> <p>Pour votre première génération de séries chronologiques, nous allons spécifier un générateur qui proposera un simulateur de températures externes de base pour la ville d’Uccle, en Belgique. Selon l'<a href="https://www.meteo.be/fr/climat/atlas-climatique">Institut royal de météorologie de Belgique</a>, les températures moyennes à cet endroit sont les suivantes :</p> <p><img alt="Températures Uccle" data-entity-type="file" data-entity-uuid="c161951c-8eb7-43d2-b5e8-30401fec84c2" height="446" src="/sites/default/files/inline-images/donn%C3%A9es_temp.PNG" width="346" /></p> <h3 dir="ltr"><strong>2.1.1. Création d’un générateur qui décrit l'évolution de la température mois par mois </strong></h3> <p dir="ltr">    1. Encodez ceci dans un fichier JSON : </p> <pre> <code>{ "generators":[ { "name": "monthly-basis", "type": "monthly", "points": {"january": 3.3, "february": 3.7, "march": 6.8, "april": 9.8, "may": 13.6, "june": 16.2, "july": 18.4, "august": 18, "september": 14.9, "october": 11.1, "november": 6.8, "december": 3.9} }], "exported":[ {"name": "temperature", "generator": "monthly-basis", "frequency": 3600000} ], "from": "2016-01-01 00:00:00.000", "to": "2017-12-31 23:59:59.999" }</code></pre> <p>Nous rappelons que le nom et les attributs de chaque objet dans ce document JSON sont décrits dans la section précédente dédiée aux concepts (voir le paragraphe sur les générateurs). </p> <p dir="ltr">    2. Enregistrez la configuration dans un fichier texte à côté de l'application téléchargée et exécutez l'application avec le fichier fraîchement créé :</p> <pre> <code>java -jar rst-gen-cli get_started_1.json</code></pre> <p>Après quelques secondes, vous obtenez une séquence de lignes, chacune d'elles étant une entrée de valeur composée d'une date, d'un nom de série et d'une valeur séparée par des points-virgules. Dans cette démonstration, le nom de la série est toujours «temperature». Si vous tracez les valeurs de série avec votre outil préféré, vous devriez obtenir quelque chose comme le graphique suivant :</p> <p><img alt="graph 1" data-entity-type="file" data-entity-uuid="2c975f94-1fef-41d1-855a-a141b6fe0c99" height="208" src="/sites/default/files/inline-images/get_started_1.png" width="346" /></p> <h3><strong>2.2. Vers un modèle plus réaliste</strong></h3> <p>Comme le montre l’illustration ci-dessus, la température varie en permanence, et pour le milieu de chaque mois, elle est conforme aux valeurs spécifiées dans la configuration. Cependant, vous pouvez vous sentir frustré par la régularité des valeurs obtenues : elles augmentent ou diminuent de façon monotone d'un mois à l'autre, ce qui n'est pas un comportement très réaliste. En réalité, au fil des jours, les températures sont globalement plus élevées pendant la journée et plus basses pendant la nuit.</p> <h3><strong>2.2.1. Création d’un nouveau générateur qui exprime la variation de la température sur les heures d'un jour calendaire </strong></h3> <p><strong><img alt="données heures" data-entity-type="file" data-entity-uuid="3757945a-3fc7-4980-acb9-c03fcd19782b" height="456" src="/sites/default/files/inline-images/donn%C3%A9es_heures_0.PNG" width="183" /></strong></p> <p> </p> <pre> <code> { "generators": [ { "name": "monthly-basis", "type": "monthly", "points": { "january": 3.3, "february": 3.7, "march": 6.8, "april": 9.8, "may": 13.6, "june": 16.2, "july": 18.4, "august": 18, "september": 14.9, "october": 11.1, "november": 6.8, "december": 3.9 } }, { "name": "daily-variation", "type": "daily", "points": { "00:00:00.000": -3, "02:00:00.000": -3.9, "04:00:00.000": -5, "06:00:00.000": -4.6, "08:00:00.000": -5.7, "10:00:00.000": -2.2, "12:00:00.000": 1, "14:00:00.000": 3, "16:00:00.000": 2.3, "18:00:00.000": 0.9, "20:00:00.000": -2.3, "22:00:00.000": -2.7 } }, { "name": "result", "type": "aggregate", "aggregator": "sum", "generators": [ "monthly-basis", "daily-variation" ] } ], "exported": [ { "name": "temperature", "generator": "result", "frequency": 600000 } ], "from": "2016-01-01 00:00:00.000", "to": "2017-12-31 23:59:59.999" } </code></pre> <p dir="ltr">Veuillez noter que les valeurs de ce deuxième générateur sont relatives à une valeur arbitraire «neutre». Le tracé de ces valeurs n'est donc pas pertinent. Cependant, si nous additionnons les températures mensuelles avec les températures quotidiennes, nous obtenons un comportement plus complexe. Les séries chronologiques résultantes sont davantages réalistes et résultent en le graphe suivant :</p> <p><img alt="graph 2" data-entity-type="file" data-entity-uuid="f96c4aed-3717-4b8d-8831-0d7b37c8fb5b" height="295" src="/sites/default/files/inline-images/get_started_2.png" width="516" /></p> <p>Sur cette figure, seules les valeurs du 1er et du 2 janvier 2016 sont affichées. Un modèle de base quotidien est facilement observable, tandis que les valeurs sont assez similaires (bien que légèrement différentes) d'un jour à l'autre.</p> <h3><strong>2.2.2.  Création d’un nouveau générateur qui décrit une série chronologique bruitée</strong></h3> <p dir="ltr">Un examen plus approfondi des valeurs générées révèle que la variation de température reste insatisfaisante: pendant un jour civil, les températures varient de manière irréaliste, et deux jours identiques dans des années différentes (par exemple, 2016-02-03 et 2017-02-03) ont la même séquence de valeurs. Dans la vie réelle, la température change légèrement au fil du temps en raison de modifications complexes des conditions atmosphériques.</p> <p>Afin de simuler ces petits changements, nous introduisons un générateur qui décrit une série chronologique bruitée, et nous le sommons avec les générateurs définis précédemment.</p> <pre> <code> { "generators": [ { "name": "monthly-basis", "type": "monthly", "points": { "january": 3.3, "february": 3.7, "march": 6.8, "april": 9.8, "may": 13.6, "june": 16.2, "july": 18.4, "august": 18, "september": 14.9, "october": 11.1, "november": 6.8, "december": 3.9 } }, { "name": "daily-variation", "type": "daily", "points": { "00:00:00.000": -3, "02:00:00.000": -3.9, "04:00:00.000": -5, "06:00:00.000": -4.6, "08:00:00.000": -5.7, "10:00:00.000": -2.2, "12:00:00.000": 1, "14:00:00.000": 3, "16:00:00.000": 2.3, "18:00:00.000": 0.9, "20:00:00.000": -2.3, "22:00:00.000": -2.7 } }, { "name": "noise", "type": "arma", "model": { "std": 0.2, "c": 0, "seed": 1234 }, "timestep": 300000, "origin": "2016-01-01 00:00:00.000" }, { "name": "result", "type": "aggregate", "aggregator": "sum", "generators": [ "monthly-basis", "daily-variation", "noise" ] } ], "exported": [ { "name": "temperature", "generator": "result", "frequency": 600000 } ], "from": "2016-01-01 00:00:00.000", "to": "2017-12-31 23:59:59.999" } </code></pre> <p>Le résultat final est maintenant suffisamment réaliste pour une simulation de base de la température dans le temps. En observant le tracé de ses valeurs sur l’illustration ci-dessous, on peut constater que des tendances claires et réalistes émergent, tandis qu'un bruit réaliste est également clairement présent.</p> <p><img alt="graph 3" data-entity-type="file" data-entity-uuid="57841ff8-95d7-4373-ad92-42028525d15b" height="427" src="/sites/default/files/inline-images/get_started_3.png" width="651" /></p> <p>Vous n’êtes toujours pas satisfait du réalisme des valeurs générées? N'hésitez pas à modifier les paramètres des générateurs décrits dans le fichier de configuration ou à en essayer d'autres (voir le point sur les générateurs dans la section “quelques concepts”).</p> <p> </p> <h2 dir="ltr"><strong><img alt="vidéo" data-entity-type="file" data-entity-uuid="c2797e27-acac-42c9-867b-0da74ebf320b" height="28" src="/sites/default/files/inline-images/camera_0.png" width="28" />  La démonstration en vidéo</strong></h2> <p dir="ltr">Voici <a href="https://www.youtube.com/watch?v=IBTTtiZtU1o">le replay du webinaire </a>organisé par le Hub-C le 24 mars 2021 afin de faire une démonstration de l'utilisation de Tsimulus presentée par Mathieu Goeminne, expert en science de données au sein du CETIC. </p> <h2 dir="ltr"><strong><img alt="aide supplémentaire" data-entity-type="file" data-entity-uuid="c3f03cf9-540b-4f39-96ca-1aec98d53b0d" height="34" src="/sites/default/files/inline-images/question.png" width="34" /> Besoin d’une aide supplémentaire ?  </strong></h2> <p dir="ltr">Le Hub-C dans le cadre de ses services d’accompagnement numérique organise des workshops et groupes de travail en lien avec les nouvelles technologies de prototypages.  Vous souhaitez un accompagnement pour votre projet innovant ou vous souhaitez participer à un prochain workshop ? N'hésitez pas à contacter <a href="https://www.hub-charleroi.be/fr/team">un membre du Hub</a>! </p> <p><br /> Vous avez une question spécifique à propos d’une fiche ? Elles sont réalisées par les experts du <a href="https://www.cetic.be/">CETIC</a> (Centre d'Excellence en Technologies de l'Information et de la Communication), un  centre de recherche appliquée en informatique situé à Charleroi. Vous trouverez toutes les coordonnées <a href="https://www.cetic.be/Contact">ici</a>.</p> <p dir="ltr"> </p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Sun, 15 Nov 2020 09:32:09 +0000 laurie 32 at http://toolbox.hub-charleroi.be Restauration d’images par réseaux de neurones profonds http://toolbox.hub-charleroi.be/fiche/restauration-dimages-par-reseaux-de-neurones-profonds <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Restauration d’images par réseaux de neurones profonds</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Logiciel" hreflang="en">Logiciel</a></div> <div class="field__item"><a href="/Tutoriel" hreflang="en">Tutoriel</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Sat, 11/14/2020 - 16:06</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://toolbox.hub-charleroi.be/sites/default/files/2020-09/Fiche%20restauration%20image.pdf" type="application/pdf; length=6852050" title="Fiche restauration image.pdf">Fiche restauration d'images</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><p dir="ltr">Vous êtes responsable marketing et devez assurer l’attrait d’un lieu ou d’un site web servant de vitrine à votre entreprise ?</p> <p dir="ltr">Vous êtes féru d’histoire, ou disposez d’une vieille collection d’images de famille ? </p> <p dir="ltr">Vous exercez un métier lié de près ou de loin aux médias visuels ? Imprimeur, journaliste, écrivain, artiste ?</p> <p dir="ltr">Si votre travail ou hobby nécessite l’utilisation et éventuellement le traitement d’images de toute sorte (archives photographiques, imagerie médicale, images satellites, microscopiques, infrarouges, ou simplement des images trouvées sur le web), vous vous retrouvez souvent avec des images de faible qualité, rendant votre travail plus fastidieux, ou votre hobby moins appréciable.</p> <p>Sachez qu’il existe aujourd’hui des techniques, bien qu’encore imparfaites et expérimentales, permettant de <strong>restaurer les images</strong>, et de tenter d’<strong>améliorer leur qualité</strong>. De nombreuses techniques de pointe, basées sur les dernières avancées en intelligence artificielle, peuvent aujourd’hui vous aider à :</p> <ul><li dir="ltr"> <p dir="ltr">Augmenter artificiellement la résolution de vos images trop petites</p> </li> <li dir="ltr"> <p dir="ltr">Réduire le bruit, dû à la détérioration du papier, ou à la mauvaise qualité des appareils photos</p> </li> <li dir="ltr"> <p dir="ltr">Donner des couleurs à vos vieilles images monochromes</p> </li> <li dir="ltr"> <p dir="ltr">Rendre vos images plus nettes et plus vives</p> </li> </ul><p dir="ltr">L’utilisation de ces tous nouveaux produits de la recherche scientifique, encore purement expérimentaux, nécessite de solides connaissances informatiques et une sérieuse maîtrise du domaine de l’intelligence artificielle. Même pour les chercheurs et informaticiens les plus aventureux, une utilisation concrète de ces outils demande du temps et des efforts considérables, tant les contributions sont dispersées dans la jungle du web scientifique, et sont à priori difficilement compatibles entre elles.</p> <p>Au Cetic, nous avons créé un outil permettant de faciliter l’utilisation de ces techniques, les rendant ainsi accessibles au plus grand nombre. Nous espérons que cet outil permettra de montrer et susciter l’intérêt de ces nouvelles technologies émergentes, encore très peu connues du grand public et imparfaites, mais d’un grand potentiel.</p> <h2><strong>Prérequis</strong></h2> <p dir="ltr">Dans cette fiche, nous adopterons une solution facile à appréhender, même pour les plus débutants. Ainsi, aucun prérequis n’est essentiel pour suivre cette fiche. Des bases éventuelles en informatique et en programmation peuvent aider à la compréhension du système, et une expérience avec Jupyter et Google Colab en particulier peuvent faciliter la lecture de cette fiche.</p> <p>Nous proposerons ultérieurement une deuxième fiche plus technique, pour aborder plus en profondeur le fonctionnement de l’outil. Cette deuxième fiche nécessitera cette fois certaines connaissances techniques en informatique.</p> <h2 dir="ltr"><strong>Comment restaurer vos images ?</strong></h2> <p dir="ltr">Cette fiche présente comment installer le toolkit de restauration d’image, et comment l’utiliser sur vos propres images. La méthode proposée dans cette fiche est plutôt à destination des particuliers amateurs de photographie, permettant d’utiliser un environnement Python déjà préconfiguré (Google Colab), puissant et gratuit, permettant de réaliser rapidement des programmes d’intelligence artificielle. Nous installerons directement le toolkit de restauration d’image dans cet environnement, et utiliserons l’interface proposée pour restaurer nos images.</p> <p>L’outil est encore en développement, et se limite actuellement à l’intégration de quelques techniques encore imparfaites de restauration d’image. Vous pourrez trouver plus d’information sur le toolkit et la restauration d’image aux adresse suivantes:</p> <p dir="ltr">Le <a href="https://github.com/titsitits/open-image-restoration">Répertoire Github</a> du toolkit</p> <p dir="ltr">Les articles de blog sur la restauration d’images:</p> <ul><li> <p dir="ltr"><a href="https://www.cetic.be/Restauration-d-image-par-reseaux-de-neurones-profonds">https://www.cetic.be/Restauration-d-image-par-reseaux-de-neurones-profond</a></p> </li> <li> <p dir="ltr"><a href="http://www.mickaeltits.be/image_restoration/">http://www.mickaeltits.be/image_restoration/</a></p> </li> <li> <p dir="ltr"><a href="http://www.mickaeltits.be/super_resolution/">http://www.mickaeltits.be/super_resolution/</a></p> </li> </ul><h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="498879cf-57e1-4572-93b1-6a791c648640" height="29" src="/sites/default/files/inline-images/footprint_0.png" width="29" class="align-left" /> Etape 0 - Compte Google</strong></h2> <p dir="ltr">Afin de pouvoir installer et utiliser facilement le toolkit de restauration d’image, nous allons utiliser la plateforme Google Colab. Son utilisation nécessite un compte Google. Si vous n’en avez pas déjà un, vous pouvez en créer un par <a href="https://www.google.com/account/about/">ici</a>.</p> <h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="498879cf-57e1-4572-93b1-6a791c648640" height="29" src="/sites/default/files/inline-images/footprint_0.png" width="29" class="align-left" /> Etape 1 - Google Colab</strong></h2> <p dir="ltr">Si vous avez un compte Google, vous pouvez maintenant accéder à la plateforme Google Colab par <a href="https://colab.research.google.com/">ici</a>.</p> <p dir="ltr">Google Colab peut être vu comme un éditeur en ligne, semblable à Google Docs et Google Sheet. Vous pouvez y créer des documents, qui sont directement liés à votre compte Google, ou vous pouvez accéder à des documents créés et partagés par d’autres utilisateurs. La différence principale de Google Colab avec les outils de bureautique en ligne, c’est qu’elle permet d’éditer des documents spéciaux : des “Notebook Jupyter”. Ces documents permettent à la fois d’insérer du texte et des images, mais aussi et surtout des blocs de code informatique (généralement dans le langage de programmation Python). Et lorsqu’on exécute un bout de codes dans Google Colab, ils sont en fait exécutés sur une machines virtuelle, éventuellement équipée d’une carte graphique puissante (GPU) hébergée par Google. Et tout ça gratuitement. C’est grâce à un de ces GPU, que nous allons pouvoir utiliser correctement le toolkit de restauration d’image. Car en effet, l’utilisation de programmes utilisant du Deep Learning nécessite généralement une machine puissante, pouvant supporter du calcul intensif, et massivement parallèle. Et les GPUs hébergés chez Google sont particulièrement taillés pour cette tâche.</p> <p>Passons maintenant au vif du sujet: commencez par vous connecter à votre compte Google si ce n’est pas déjà fait.</p> <img alt="Connectez-vous à votre compte Google" data-entity-type="file" data-entity-uuid="26bdeaf0-8cf8-4d11-b82d-c89b63d53515" height="392" src="/sites/default/files/inline-images/1.PNG" width="512" class="align-center" /><p><br /> Lorsque vous vous êtes connecté, vous devriez voir apparaître une fenêtre similaire à l’image ci-dessous. Si ce n’est pas le cas, dans le menu, allez à File &gt; Open notebook (ou appuyez sur Ctrl + O). Nous allons utiliser cette interface pour accéder aux notebooks permettant de tester le toolkit. </p> <img alt="notebooks" data-entity-type="file" data-entity-uuid="0ed56ae0-1ab6-4908-80b0-cd559a79b2e4" height="321" src="/sites/default/files/inline-images/2.PNG" width="460" class="align-center" /><ol><li> <p>Allez à l’onglet “GitHub”, ce qui vous permettra d’indiquer le répertoire où est hébergé le toolkit.</p> </li> <li> <p>Entrez l’URL du toolkit de restauration d’image: <a href="https://github.com/titsitits/open-image-restoration">https://github.com/titsitits/open-image-restoration</a> </p> </li> <li dir="ltr"> <p dir="ltr">Cliquez sur le notebook suivant: <a href="https://colab.research.google.com/github/titsitits/open-image-restoration/blob/master/Colab_Notebooks/Demo_Image_Restoration.ipynb">Colab_Notebooks/Demo_Image_Restoration.ipynb</a></p> </li> </ol><img alt="code" data-entity-type="file" data-entity-uuid="887481ac-51ae-4089-b419-6efcf74f4973" height="420" src="/sites/default/files/inline-images/3.PNG" width="432" class="align-center" /><p>Pour une plus grande facilité d’utilisation, Google Colab permet d’ajouter une surcouche au notebook, qui permet de créer une interface graphique simple avec des boutons de contrôle, tout en cachant le code. En double-cliquant sur une des cellules du notebook, vous devriez voir apparaître le code.</p> <h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="498879cf-57e1-4572-93b1-6a791c648640" height="29" src="/sites/default/files/inline-images/footprint_0.png" width="29" class="align-left" /> Etape 2 - Configuration de Google Colab (optionnel)</strong></h2> <p dir="ltr">Dans cette étape, nous allons vérifier que Google colab est correctement configuré pour exécuter votre notebook de manière optimale. Il faut pour cela que le noyau Python auquel Google Colab vous donne accès dispose d’un GPU. Pour cela, allez au menu “Runtime &gt; Change runtime type”, et sélectionnez l’accélérateur matériel “GPU”. </p> <img alt="runtime" data-entity-type="file" data-entity-uuid="57624bb5-3125-4261-a4a4-143062dbe26e" height="473" src="/sites/default/files/inline-images/4.PNG" width="398" class="align-center" /><p dir="ltr">Bonus: En réalité, les machine virtuelles avec GPU mises à disposition gratuitement par Google Colab sont de qualité variable. Vous pouvez vérifier quel GPU vous a été mis à disposition, grâce à une simple ligne de commande linux. Pour cela, vous pouvez lancer une cellule de code volante via le raccourcis Ctrl+Alt+N, ou via le menu “Insert &gt; Scratch code cell”. Vous devriez voir apparaître une cellule à droite de la fenêtre.</p> <p>Vous pouvez y écrire la commande:</p> <pre> <code>!nvidia-smi</code></pre> <p>Le symbole ! permet d’exécuter des commandes linux (du script shell) plutôt que du code python. La commande nvidia-smi permet de vérifier la configuration et l’utilisation du GPU installé sur une machine. </p> <p dir="ltr">Appuyez ensuite sur le bouton start à gauche de la cellule pour l’exécuter (voir illustration ci-dessous).</p> <img alt="start" data-entity-type="file" data-entity-uuid="a4570d55-8eef-4449-ad12-68e9e045ba33" height="96" src="/sites/default/files/inline-images/5.PNG" width="487" class="align-center" /><p dir="ltr">A la première exécution d’une cellule du notebook, il vous sera peut-être demandé si vous voulez vraiment l’exécuter. Appuyez simplement sur “Run anyway”.</p> <img alt="run away" data-entity-type="file" data-entity-uuid="9b02c976-4b7a-4850-af78-e2e20fce5289" height="166" src="/sites/default/files/inline-images/6.PNG" width="415" class="align-center" /><p dir="ltr">Vous devriez voir un résultat similaire à l’image ci-dessous.</p> <img alt="result" data-entity-type="file" data-entity-uuid="a29e862a-f21f-4877-a8fe-bdaa95b04872" height="276" src="/sites/default/files/inline-images/7.PNG" width="438" class="align-center" /><p dir="ltr">Nous avons lors de cet essai eu droit à une VM disposant d’un GPU Tesla K80. C’est en réalité un GPU assez vieux, et avec un peu de chance vous devriez pouvoir bénéficier d’un GPU plus puissant (Tesla T4 ou P100 par exemple). La Tesla K80 devrait néanmoins suffire pour traiter décemment des images de petite taille.</p> <p dir="ltr">Vous pouvez fermer à présent la cellule volante (scratch cell).</p> <h2 dir="ltr"><strong><img alt="etape" data-entity-type="file" data-entity-uuid="498879cf-57e1-4572-93b1-6a791c648640" height="29" src="/sites/default/files/inline-images/footprint_0.png" width="29" class="align-left" /> Etape 3 - Utilisation du toolkit</strong></h2> <p dir="ltr">Grâce au notebook de démonstration, l’utilisation de base du toolkit de restauration d’images est très simple. Il vous suffit de suivre le notebook et d’exécuter une à une les cellules, en cliquant sur le bouton “start” apparaissant à gauche de celles-ci. </p> <img alt="start" data-entity-type="file" data-entity-uuid="4f7a84f5-4e77-4ea8-b7ce-e9dead1892a4" height="347" src="/sites/default/files/inline-images/8.PNG" width="447" class="align-center" /><h2 dir="ltr"><strong>3.1 Sélection des images</strong></h2> <p dir="ltr">Lancez la cellule 1. Upload images to restore. Sous la cellule, un bouton devrait apparaître, vous permettant de choisir des images à transférer.</p> <img alt="sélection d'images" data-entity-type="file" data-entity-uuid="92af9c11-5af4-4579-970c-a4201b1f8422" height="111" src="/sites/default/files/inline-images/9.PNG" width="533" class="align-center" /><p>Il est préférable d’utiliser des images de petite taille (de faible résolution) pour tester l’outil, non seulement parce que les modèles sont en principe plus efficaces sur ces images, mais aussi parce que le processus sera plus rapide. En outre, si les images utilisées sont trop grandes, vous risquez de rencontrer des erreurs d’allocation de mémoire dans le carte graphique (encore une fois, le traitement d’image par Deep Learning est généralement un processus gourmand en ressources computationnelles).</p> <p>Pour la démonstration, nous utiliserons les deux images historiques ci-dessous </p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="image" data-entity-type="file" data-entity-uuid="6ead6d55-a62f-441e-8158-b64db2c50ef0" height="279" src="/sites/default/files/inline-images/10.PNG" width="420" /><figcaption>Ces images nous ont été fournies comme cas d’étude en restauration d’images par l’organisation culturelle Nivelloise le Rif Tout Dju</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p>Il est possible que vous rencontriez une erreur lors de la première exécution de la première cellule. Si c’est le cas, relancez-la simplement. D’expérience, nous recommandons l’utilisation de Google Chrome (ou Chromium) comme navigateur pour Google Colab.</p> <h2 dir="ltr"><strong>3.2 Sélection des techniques de restauration</strong></h2> <p dir="ltr">La deuxième cellule permet de sélectionner les techniques de restaurations à appliquer aux images transférées. Quatre techniques sont actuellement disponibles (d’autres sont prévues dans les futures versions de l’outil) :</p> <ul><li dir="ltr"> <p dir="ltr">“Demoiring” : réduction de la moire. Cette technique permet d’éliminer les éventuelles rayures horizontales et verticales présentes dans l’image. Cette technique est particulièrement utile pour les deux images que nous avons sélectionnées pour la démonstration.</p> </li> <li dir="ltr"> <p dir="ltr">“Denoising” : réduction du bruit gaussien. Cette technique permet de réduire le grain d’une image. La méthode actuellement disponible dans notre toolkit est encore assez instable et lourde. C’est pourquoi elle n’est pas sélectionnée par défaut dans le notebook de démonstration. Celle-ci sera remplacée par un algorithme plus stable et plus performant dans une version future. </p> </li> <li dir="ltr"> <p dir="ltr">“Colorization” : inférence de couleurs. Cette technique permet de transformer une image monochrome en une image couleur, en générant les couleurs artificielle les plus réalistes possible.</p> </li> <li dir="ltr"> <p dir="ltr">“Superresolution” : augmentation de la résolution de l’image (multiple par 4 le nombre de pixels). Cette technique permet d’augmenter le degré de détails d’une image, en générant des détails artificiels les plus réalistes possible</p> </li> </ul><p>Vous pourrez trouver plus de détails sur les algorithmes testés et sélectionnés dans l’outil de restauration d’images ici: <a href="http://www.mickaeltits.be/image_restoration/">http://www.mickaeltits.be/image_restoration/</a></p> <p dir="ltr">Enfin, le paramètre initial_size permet de réduire si nécessaire la taille des images sélectionnées au cas où elles seraient trop grandes. Par défaut, celui-ci est défini à 400 pixels. Ainsi, la taille de vos images sera réduite de manière à ce que ni leur hauteur, ni leur largeur ne dépasse 400 pixels.</p> <p>La première exécution de cette cellule peut prendre quelque minutes, en particulier si vous utilisez la technique de colorisation. Ceci est dû au fait qu’à la première utilisation, le modèle de Deep Learning utilisé par cette technique doit être téléchargé (243Mo). A la fin du processus, vous devriez voir apparaître vos images traitées, de manière séquentielle, selon les techniques sélectionnées.</p> <img alt="séquence de traitement" data-entity-type="file" data-entity-uuid="85ecac38-c5a4-4093-9f9c-a9ecdf57f9e4" height="422" src="/sites/default/files/inline-images/11.PNG" width="544" class="align-center" /><h2 dir="ltr"><strong>3.3 Zoom sur les résultats </strong></h2> <p dir="ltr">Les différences entre les résultats peuvent paraître parfois très subtiles, en particulier pour la super-résolution. La dernière cellule permet de zoomer sur une zone de l’image pour mieux analyser les différences.</p> <img alt="zoom" data-entity-type="file" data-entity-uuid="c4804306-0547-4be0-b82b-0714abfc884f" height="350" src="/sites/default/files/inline-images/12.PNG" width="418" class="align-center" /><p>Veuillez d’abord pour cela sélectionner l’image à visualiser (paramètre image_file). Vous devez pour cela entrer le nom entier du fichier. Attention : les images ont en principe été converties en .png. Veuillez donc renseigner cette extension dans le nom du fichier.</p> <p>Les quatre paramètres suivants (left, right, bottom, upper) permettent de délimiter la zone de l’image à visualiser. Enfin, display_size permet d’agrandir le résultat.</p> <h2><strong>Conclusion</strong></h2> <p dir="ltr">Dans l’image utilisée pour la démonstration, vous pourrez remarquer que la dernière image paraît moins pixelisée que l’originale. Il faut néanmoins admettre que le résultat n’est pas optimal, et peut contenir certains artefacts qui rendent l’image peu réaliste. Ceux-ci peuvent apparaître lors de l’utilisation en séquence de plusieurs techniques de traitement de l’image (tel que le Demoiring et le Denoising). La super-résolution accroît alors non-seulement les détails de l’image, mais également les défauts insérés dans l’image par les techniques utilisées en amont. Cette problématique ne montre en fait qu’une partie du challenge de la restauration d’image, et de l’utilisation en chaîne de techniques de restauration d’image. C’est pour cette raison que nous sommes au CETIC en train de développer une solution, permettant de sélectionner automatiquement la meilleure configuration possible d’un pipeline de restauration d’image, afin de rendre le processus plus stable, et le plus accessible possible.</p> <p>Par ailleurs, les couleurs de l’image testée ne sont pas non-plus très vives. Il existe pour cela également des méthodes, permettant d’augmenter l’éclat des couleurs et le contraste des images. L’intégration de telles techniques dans notre outil est actuellement en plein développement, et permettront d’aller plus loin dans la restauration et l’amélioration de vos images.</p> <p>Enfin, nous n’avons abordé dans cette fiche qu’une manière simple et limitée d’utiliser notre outil de restauration d’image. Dans une deuxième fiche, nous présenterons l’outil plus en détail, et proposerons une solution permettant d’installer l’outil de manière pérenne sur votre poste de travail, vous permettant ainsi une utilisation et expérimentation plus intensive de l’outil.</p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Sat, 14 Nov 2020 15:06:07 +0000 laurie 30 at http://toolbox.hub-charleroi.be TSorage : une plateforme de gestion de données (I)IoT http://toolbox.hub-charleroi.be/fiche/tsorage-une-plateforme-de-gestion-de-donnees-iiot <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">TSorage : une plateforme de gestion de données (I)IoT </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Cloud" hreflang="en">Cloud Computing</a></div> <div class="field__item"><a href="/Gestion%20de%20donn%C3%A9es" hreflang="en">Gestion de données</a></div> <div class="field__item"><a href="/IoT" hreflang="en">IoT</a></div> <div class="field__item"><a href="/Logiciel" hreflang="en">Logiciel</a></div> <div class="field__item"><a href="/Stockagededonn%C3%A9es" hreflang="en">Stockage de données</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Fri, 11/13/2020 - 11:19</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://toolbox.hub-charleroi.be/sites/default/files/2022-01/fiche%20Tsorage.pdf" type="application/pdf; length=1180546" title="fiche Tsorage.pdf">Fiche TSorage</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><p dir="ltr">Vous êtes une entreprise à la recherche de technologies fiables, rapides et rentables concernant le déploiement d'applications basées sur des séries chronologiques à grande échelle? TSorage est la solution idéale pour gérer vos flux IoT! </p> <p>Après la description de TSorage et de ses différents atouts, nous évoquons les concepts nécessaires à la compréhension de cette plateforme et expliquons son architecture. Nous terminons en vous présentant un cas d'étude.</p> <h2>Prérequis</h2> <p dir="ltr">Pour la lecture de ce document,</p> <ul dir="ltr"><li> <p>connaissance élémentaire de l’IIoT et de ses enjeux, de Kubernetes, de Cassandra.</p> </li> </ul><p dir="ltr">Pour tester TSorage, </p> <ul><li> <p dir="ltr">un cluster Kubernetes doit être installé, par exemple grâce à <a href="https://kubernetes.io/fr/docs/setup/learning-environment/minikube/">minikube</a>.</p> </li> <li> <p dir="ltr">Maîtrise de HTTP et/ou MQTT, JSON, PromQL, Docker.</p> </li> </ul><h2><img alt="goal" data-entity-type="file" data-entity-uuid="62bbc1fc-7ce5-416e-a0c3-e2f1ae856bd2" height="35" src="/sites/default/files/inline-images/goal2.png" width="35" /> Pour quoi faire? </h2> <p dir="ltr">À l’heure actuelle, les entreprises industrielles font face à une concurrence mondiale de plus en plus agressive. L'Internet industriel des objets (IIoT) est perçu comme une opportunité clé pour renforcer la position de ces entreprises ou pour gagner en compétitivité grâce à une meilleure productivité, à l’amélioration de la qualité des produits et à un meilleur contrôle des processus (voir notre <a href="https://toolbox.hub-charleroi.be/node/28">fiche sur la gestion des réseaux de capteurs</a>).</p> <p>Cependant, la gestion de la vitesse et du volume des données de séries chronologiques fournies par ces IIoT représentent un défi dans lequel la valeur des solutions traditionnelles de gestion des données pour l'industrie tend à diminuer. Le monde industriel recherche des outils et des approches capables de répondre aux nouveaux besoins relatifs à  l'évolutivité, à la disponibilité, au problèmes de réutilisation, d'intégration et de tarification, entre autres.</p> <p>Afin de répondre à ces besoins, nous proposons une solution innovante pour la gestion des séries chronologiques appelée TSorage.</p> <p dir="ltr">TSorage est une plateforme  évolutive et résiliente, qui permet la collecte, l’ingestion, le traitement et le stockage de séries chronologiques (ou séries temporelles) générées par l'IoT (industriel ou non) comme les détecteurs, les sondes et autres capteurs au sens large du terme. </p> <p>Cette plateforme propose une collection de services intégrés pour gérer les séries temporelles, à grande échelle, de tout type, avec un horodatage avec une résolution temporelle d’une milliseconde et avec aussi peu de contraintes techniques que possible. </p> <p>Une série temporelle est définie comme une collection de valeurs, triées par un horodatage associé à chaque valeur. Dans TSorage, une valeur peut représenter n’importe quel concept tant que celui-ci peut être représenté sous forme d’un objet JSON. </p> <h2><img alt="Les Atouts " data-entity-type="file" data-entity-uuid="cd8e2d38-7833-48a6-b924-83938fc09dd3" height="35" src="/sites/default/files/inline-images/stars.png" width="35" /><strong> Les atouts de TSorage</strong></h2> <p>TSorage présente les avantages suivants : </p> <h3 dir="ltr"><strong><img alt="1" data-entity-type="file" data-entity-uuid="3acf6303-6e37-4788-8b28-ffbd9e6814b4" height="22" src="/sites/default/files/inline-images/1_1.png" width="22" /> Une disponibilité et un passage à l’échelle avant tout (évolutivité)! </strong></h3> <p>TSorage s'appuie sur du matériel standard et moyen de gamme (commodity hardware) pour garantir un service évolutif et résilient aux pannes. Étant nativement une solution distribuée et décentralisée, ses capacités peuvent être étendues en ajoutant simplement plus de ressources sur un cluster TSorage. Lorsqu'il est déployé  sur plusieurs sites, TSorage offre des performances de lecture et d'écriture locales tout en prenant en charge de manière transparente la réplication et la synchronisation entre sites, dans le monde entier. Lorsqu'un site se remet d'un problème de connexion, il se re-synchronise automatiquement avec les autres sites du groupe.</p> <h3 dir="ltr"><img alt="2" data-entity-type="file" data-entity-uuid="43b4938b-6e27-4135-8e64-c810b5559e01" height="24" src="/sites/default/files/inline-images/2_1.png" width="24" /> Pas de vendor lock-in mais des technologies standardisées, ouvertes, et pérennes</h3> <p dir="ltr">La technologie évolue extrêmement rapidement, surtout le domaine (I)IoT où de nouvelles façons de gérer et d'exploiter les capteurs émergent chaque année. Afin d'atténuer le risque de faire des choix technologiques qui s'avéreraient inappropriés à l'avenir, TSorage est composé de modules indépendants et basés sur des technologies open source. Avec une telle approche, les mises à jour sont beaucoup plus faciles lorsqu’une technologie vient en remplacer une autre. Tous les services de TSorage sont disponibles via une API REST qui offre un moyen standardisé de s’abstraire des technologies sous-jacentes. Cette plateforme favorise également l'intégration avec n'importe quelle source ou consommateur de données, faisant de TSorage une plateforme de choix pour vos applications IoT.</p> <h3 dir="ltr"><strong><img alt="3" data-entity-type="file" data-entity-uuid="309a92f7-3695-4d01-8c11-3e9cfd679750" height="24" src="/sites/default/files/inline-images/3_1.png" width="24" /> Une flexibilité des données  </strong></h3> <p dir="ltr">La plupart des capteurs mesurent un signal continu, tel qu’une température ou une pression. Cependant, les séries chronologiques couvrent également de nombreux autres types de données, tels que les positions géographiques, les transactions commerciales et pratiquement tous les événements répétitifs. TSorage gère nativement des types de données couramment utilisés et est conçu pour être facilement étendu afin de prendre en charge vos types de données spécifiques. Si vous pouvez représenter vos mesures sous forme d'objets JSON, TSorage peut les gérer!</p> <h3 dir="ltr"><strong><img alt="4" data-entity-type="file" data-entity-uuid="0bc80bc0-af67-4fc8-9732-345b5c16c3f8" height="26" src="/sites/default/files/inline-images/4_0.png" width="26" /> Une adaptation rapide et de manière prévisible </strong></h3> <p dir="ltr">L'ajout d'une nouvelle source de données (comme un capteur) doit être aussi simple et rapide que possible afin de ne pas étouffer toute innovation. Commencez simplement à alimenter TSorage avec un nouveau flux de données et administrez-le dans un second temps, soit via une application Web dédiée, soit par programmation. Chaque valeur peut être soumise avec des propriétés arbitraires (appelées “tags” dans la terminologie TSorage, nous détaillons cela dans la section suivante) qui permettent d'interroger et de gérer plus efficacement les sources de données. En fin de compte, les utilisateurs ne font plus référence à un identifiant de source unique, mais interrogent, comparent et agrègent les sources en fonction de leurs tags.</p> <p>Au fur et à mesure que vous intégrez de plus en plus de sources de données à la solution, vos besoins de traitement augmentent. TSorage s'appuie sur une architecture élastique qui exploite efficacement les ressources de votre infrastructure. Commencez avec un petit nombre de services conteneurisés et étendez-les à volonté en exécutant simplement plus de nœuds de travail.</p> <h3><strong> <img alt="5" data-entity-type="file" data-entity-uuid="2cad068d-9f09-4160-abfc-b10890a98976" height="26" src="/sites/default/files/inline-images/5.png" width="26" /> Une adaptation à votre infrastructure, prête pour le Cloud.</strong></h3> <p dir="ltr">Lorsque TSorage est utilisé pour gérer des données sensibles, le déploiement sur site peut être préféré à l'utilisation d'une solution d'hébergement à distance. Pour d'autres cas d'utilisation, un déploiement sur un Cloud public ou privé est une meilleure option. Dans les deux cas, TSorage est fourni avec des scripts de déploiement et de surveillance qui réduisent la charge de déploiement et de maintenance de la solution.</p> <h2 dir="ltr"><img alt="concepts" data-entity-type="file" data-entity-uuid="a041bebb-6f07-4cc2-85ae-01ae3fd7625c" height="37" src="/sites/default/files/inline-images/book-open-shape_icon-icons.com_70792.png" width="37" /><strong> Quelques concepts</strong></h2> <p dir="ltr">Voici les différentes notions nécessaires à la bonne compréhension de la plateforme TSorage :</p> <ul><li dir="ltr"> <p dir="ltr"><strong>Une métrique </strong></p> </li> </ul><p dir="ltr">Concept fondamental de TSorage, une <em>métrique </em>est une entité abstraite associée à des mesures classées chronologiquement. Chaque <em>mesure </em>est également appelée un point de données ou une <em>observation</em>.</p> <p>Dans TSorage, tous les points de données appartenant à une métrique représentent le même phénomène physique, numérique ou logique, et ont donc typiquement le même type de données (bien que ce ne soit pas une limitation technique de la plateforme). Le type de données d'une observation détermine la manière dont TSorage la stocke et la présente, ainsi que les transformations auxquelles cette observation peut être soumise.</p> <ul><li dir="ltr"> <p dir="ltr"><strong>Les tags</strong></p> </li> </ul><p dir="ltr">Les <em>tags </em>sont des propriétés associées aux points de données. Leur utilité est d'aider l'utilisateur à comprendre la signification d'une observation particulière ou à interroger des points de données ayant une signification particulière. Concrètement, un tag est un texte arbitraire (la <em>clé</em>), associé à une valeur textuelle arbitraire (la <em>valeur</em>). Il y a deux types de tags :</p> <p dir="ltr">               - les tags dynamiques :  ils sont directement attachés à un point de données,</p> <p dir="ltr">               - les tags statiques : ils sont attachés à une métrique et sont automatiquement hérités de tous ses points de données.</p> <ul><li dir="ltr"> <p dir="ltr"><strong>Les tagsets</strong></p> </li> </ul><p dir="ltr">L'ensemble de tags associé à un point de données est appelé <em>tagset</em>. Un tagset combiné à une métrique constitue une série chronologique dans TSorage.</p> <p dir="ltr">Il existe deux manières typiques d'utiliser les tagsets :</p> <ul dir="ltr"><li> <p> - Une métrique identifie un capteur (au sens large du terme), tandis que les tags clarifient le statut du capteur (nom du fabricant, position géographique, etc.) ou certains des points de données générés (qualité de la donnée, état de fonctionnement, etc.).</p> </li> <li> <p>- La métrique fait référence à une propriété d'intérêt (utilisation du processeur, par exemple), tandis que les tags font référence à l'élément à l'origine des points de données (serveur numéro 5, par exemple).</p> </li> </ul><p dir="ltr">Bien que mélanger ces deux approches soit techniquement possible, nous vous recommandons de choisir l'une d'entre elles et de vous y tenir.</p> <p>Nous vous conseillons d’utiliser les tagsets pour appliquer une politique de sémantique, c’est-à-dire une ontologie. Au lieu de placer des informations dans le nom de la métrique, en utilisant certaines conventions spécifiques à l’entreprise qui sont peu respectées et qui souffrent donc de nombreuses exceptions, le nom de la métrique peut être dénué de sens et la sémantique peut être explicitée à l’aide du tagset.</p> <ul><li dir="ltr"> <p dir="ltr"><strong>Organisation hiérarchique</strong></p> </li> </ul><p>Veuillez noter que rien ne vous empêche d'organiser les métriques de manière hiérarchique, comme c’est souvent le cas avec les réseaux de capteurs industriels, car les clés de tag peuvent être utilisées pour définir les niveaux hiérarchiques de l'organisation (Vous en découvrirez davantage via la <a href="https://tsorage.readthedocs.io/en/latest/#tagmanagement">documentation officielle</a> ou via cet<a href="https://www.cetic.be/metadonnees-pour-meilleure-exploitation-reseaux-de-capteurs-industriels"> article de blog</a>).</p> <p dir="ltr">Les séries chronologiques sont organisées de manière hiérarchique :  les points de données et les valeurs agrégées des différentes séries chronologiques ayant la même métrique peuvent être combinés afin de produire une série chronologique plus générique.  Bien que les technologies impliquées dans TSorage sont assez efficaces et passent bien à l’échelle, sachez que l'extraction et la fusion de plusieurs séries chronologiques peuvent mener à une consommation importante des ressources disponibles. Par conséquent, le nombre de séries chronologiques qui doivent être fusionnées pour satisfaire une requête de données doit rester raisonnable afin de maintenir la pression sur la base de données à un niveau acceptable. </p> <ul><li dir="ltr"> <p dir="ltr"><strong>Les messages</strong></p> </li> </ul><p dir="ltr">Afin d'offrir de meilleures performances, les communications TSorage sont basées sur le concept de message. Un message est essentiellement un ensemble de points de données liés à la même série chronologique. En d'autres termes, les messages sont un moyen de soumettre plusieurs points de données à la fois, tout en ne soumettant le nom de la métrique, le tagset dynamique et le type de données qu'une fois par message.</p> <p dir="ltr">Chaque message doit contenir les éléments suivants :</p> <ul><li> <p>- metric :  l'identifiant de la métrique pour  laquelle de nouveaux points de données sont fournis.</p> </li> <li dir="ltr"> <p dir="ltr">- tagset : l’ensemble de tags dynamiques associés à tous les points de données décrits dans le message.</p> </li> <li dir="ltr"> <p dir="ltr">- type : le type de tous les points de données décrits dans le message. Bien que l'utilisation du même type pour tous les points de données relatifs à une métrique soit généralement considérée comme une bonne pratique, le type associé à une métrique (ou à une série chronologique) peut changer d'un message à un autre.</p> </li> <li dir="ltr"> <p dir="ltr">- values :  une liste de points de données. Chaque point de données est constitué de deux éléments : une représentation de l'horodatage associé au point de données et  la valeur du point de données.</p> </li> </ul><p dir="ltr">D'un point de vue technique, un message est représenté par un objet JSON (il peut également être représenté par un message Protobuf, cliquez <a href="https://tsorage.readthedocs.io/en/latest/#protobuf-format">ici </a>pour plus d’infos).</p> <p dir="ltr">Le schéma JSON d’un message TSorage est le suivant :</p> <pre dir="ltr"> { "$id": "be.cetic.tsorage.messageschema.json", "type": "object", "properties": { "metric": { "type": "string" }, "tagset": { "type": "object", "additionalProperties": { "type": "string" } }, "type": { "type": "string" }, "values": { "type": "array", "items": [ { "type": "array", "items": [ { "type": "string", "pattern" :"^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?(\\.([0-9]){1,3})?$" }, {} ] } ] } }, "required": [ "metric", "type", "values" ] }</pre> <p dir="ltr">Comme illustré ci-dessus, l'attribut tagset doit être un dictionnaire de chaînes de caractères. Chaque valeur (qui représente un point de données) est un tableau contenant l'horodatage et la valeur du point de donnée, dans cet ordre. L'horodatage est représenté par une chaîne de caractères au format <a href="https://fr.wikipedia.org/wiki/ISO_8601">ISO 8601.</a></p> <p dir="ltr">La valeur elle-même peut être n'importe quel objet JSON valide. Son schéma réel dépend du type de donnée spécifié. Il existe plusieurs types de données proposés d’office par TSorage, et des types de données supplémentaires arbitrairement complexes peuvent être ajoutés à volonté.</p> <p dir="ltr">L'extrait ci-dessous est un exemple de message valide décrit à l'aide du format JSON :</p> <pre dir="ltr"> { "metric": "my-temperature-sensor", "tagset": { "quality": "good", "owner": "myself" }, "type": "tdouble", "values": [ [ "2020-01-02T03:04:05.678", 42.1337 ], [ "2020-01-02T03:04:06.123", 654.72 ] ] }</pre> <h2 dir="ltr"><img alt="Architecture" data-entity-type="file" data-entity-uuid="be200399-d425-4570-9907-c936898bb884" height="33" src="/sites/default/files/inline-images/%C3%A9querre_crayon.png" width="33" /> Architecture</h2> <p dir="ltr">Le projet TSorage est basé sur une architecture modulaire, tous les modules étant conçus pour être exécutés dans des conteneurs Docker distincts. Cela fait de TSorage une solution portable, avec des étapes de déploiement simples et standardisées. Il offre également la possibilité de placer les composants sur différentes machines physiques et virtuelles, le rendant disponible sur une large gamme de plateformes et de services.</p> <p>De plus, le (re)dimensionnement d'une architecture conteneurisée est plus facile, puisqu'un composant peut être déplacé vers une plateforme offrant plus de ressources. Sous certaines conditions, les conteneurs peuvent être dupliqués afin d'augmenter les performances des modules sous-jacents.</p> <p dir="ltr">La figure ci-dessous donne un aperçu de l'architecture TSorage.</p> <p dir="ltr"><img alt="architecture TSorage" data-entity-type="file" data-entity-uuid="81f9ae6e-b58a-4d8b-b93f-d51484bbdeb4" height="412" src="/sites/default/files/inline-images/architecture.PNG" width="782" /></p> <p dir="ltr"><strong><img alt="1" data-entity-type="file" data-entity-uuid="3acf6303-6e37-4788-8b28-ffbd9e6814b4" height="15" src="/sites/default/files/inline-images/1_1.png" width="15" /> La passerelle (Gateway) : </strong>le traitement des séries temporelles commence par la couche Gateway, qui contient des composants ad hoc pour collecter ou extraire des valeurs de séries <img alt="gateway" data-entity-type="file" data-entity-uuid="8bde594b-8be8-44e0-99f4-f30dfcb02b90" height="198" src="/sites/default/files/inline-images/couche%20gateway.PNG" width="203" class="align-right" />chronologiques à partir de diverses sources de données. Cette couche prend en charge diverses technologies de communication industrielles, y compris Modbus, OPC-UA et MQTT. Les bases de données distantes peuvent également être consultées pour la collecte de données historiques. Les valeurs de séries chronologiques collectées sont standardisées et temporairement stockées dans un tampon avant d’être finalement transmises à la couche d'ingestion à l'aide des protocoles HTTP ou MQTT.</p> <p dir="ltr"> </p> <p dir="ltr"><strong><img alt="ingestion" data-entity-type="file" data-entity-uuid="e7cc9862-e463-48aa-8576-39f026af8cb0" height="15" src="/sites/default/files/inline-images/2_2.png" width="15" /> La couche d’ingestion :</strong> le système d’ingestion des données est polyvalent et se base sur des technologies standardisées (HTTP, MQTT, etc.) afin de faciliter l’intégration de TSorage dans votre système informatique! Cette couche est celle du  point d'entrée des valeurs de séries chronologiques : la conformité des messages reçus est vérifiée, les messages non autorisés sont rejetés. À partir de là, les entités décrites sont considérées comme des composants internes de TSorage, ce qui signifie essentiellement qu'elles sont gérées par le cluster TSorage. La couche d’ingestion est composée de différents modules d'interface, chacun d'entre eux fournissant un moyen spécifique pour une source de données de soumettre de nouvelles valeurs de séries chronologiques. Les messages acceptés sont poussés vers un topic Apache Kafka12, qui agit comme une file d'attente de messages pour les services internes de traitement de TSorage. </p> <p dir="ltr"><strong><img alt="processing" data-entity-type="file" data-entity-uuid="c4a7526b-a6f3-4558-b7eb-16c26da0514e" height="16" src="/sites/default/files/inline-images/3_2.png" width="16" /> La couche de traitement (processing) : </strong>à ce stade, un ensemble d’applications de traitement gère le flux de messages Kafka. C’est le langage de requêtes de séries chronologiques de Prometheus, PromQL, qui a été implémenté afin d’exploiter les données collectées. Ce langage permet de réaliser des agrégations temporelles, des combinaisons de valeurs, et de filtrer des données tout en prenant en compte la sémantique associée aux capteurs." Il permet d’effectuer des agrégations et des transformations de données en temps réel.</p> <ul dir="ltr"><li> <p>- Les rollups de données (data rollups) sont des agrégations des valeurs au fil du temps. De cette façon, des analyses de haut niveau couvrant de longues périodes peuvent être effectuées plus facilement. Les rollups facilitent également  l’analyse de séries chronologiques, car leurs valeurs sont alignées chronologiquement.</p> </li> <li> <p>- Les transformations de données sont les modifications des valeurs, des noms et des tags des séries chronologiques, en temps réel et selon des fonctions métier, afin d’enrichir les informations traitées. </p> </li> </ul><p dir="ltr"><strong><img alt="Storage" data-entity-type="file" data-entity-uuid="065bf8df-1e0c-45db-b4a1-f5536ab8abef" height="17" src="/sites/default/files/inline-images/4_1.png" width="17" /> La couche de stockage (storage) : </strong><a href="https://aiven.io/cassandra">Apache Cassandra</a> est utilisé pour stocker des valeurs de séries chronologiques de manière permanente. Cette base de données distribuée et décentralisée offre une évolutivité linéaire, tandis que la réplication automatique des données entre différents sites permet à la solution de rester opérationnelle et de se remettre automatiquement de  la défaillance d’un nœud ou même d’un data center entier. De cette façon, la pérennité, la survie et la disponibilité des données sont assurées. TSorage offre également une résilience aux pannes grâce à un mécanisme qui assure la migration automatique des différentes fonctionnalités de la solution d’un serveur défaillant vers un autre fonctionnel, garantissant ainsi une haute disponibilité des différents services.</p> <p dir="ltr">Le modèle de données conçu respecte la nature des données manipulées et des requêtes typiques qui se rapportent à une série chronologique ainsi qu’à un intervalle de temps précis. En plus des valeurs de séries chronologiques, la base de données stocke également les métadonnées qui aident à atteindre plus efficacement les données souhaitées. Par exemple,  une liste de toutes les partitions associées à une métrique particulière, et ayant un tagset particulier, est tenue à jour afin d’améliorer le temps de réponses des requêtes.</p> <p dir="ltr"><strong><img alt="hub" data-entity-type="file" data-entity-uuid="4ce73316-92e7-4d1c-bcc5-5dcf4e9964a2" height="18" src="/sites/default/files/inline-images/5_0.png" width="18" /> La couche Hub : </strong>il s’agit des services qui aident l’utilisateur à interagir avec les autres couches.  Les services déployés dépendent des besoins de l’utilisateur mais ils incluent généralement la gestion des tags, le requêtage de données et les représentations de ces dernières sous forme de tableaux de bord. <a href="https://grafana.com/">Grafana</a> est l’outil proposé pour concevoir et déployer facilement des tableaux de bord, alimentés par les valeurs de séries temporelles ingérées, sous la forme de visualisation <a href="https://scadavis.io/">SCADA</a>. La couche Hub offre une implémentation de <a href="https://prometheus.io/docs/prometheus/latest/querying/basics/">PromQL</a>, le langage de requête de séries chronologiques de Prometheus. Les outils d’analyse et de visualisation supportant ce langage s’intègrent donc aisément avec TSorage.</p> <h2 dir="ltr"><img alt="Exemple" data-entity-type="file" data-entity-uuid="20a6f00a-708c-401e-868c-82514bdde002" height="43" src="/sites/default/files/inline-images/note_list_icon_124054_0.png" width="43" /> Un exemple de cas d’étude</h2> <p dir="ltr">Le CETIC a évalué TSorage dans le cadre du projet de recherche industrielle <a href="//www.cetic.be/ARTEMTEC-en ">SW-ARTEMTEC</a>. L’objectif était de fournir des outils analytiques modernes et avancés issus des technologies liées au big data et à la réalité augmentée afin d’améliorer la maintenance des sites industriels répartis géographiquement dans le monde entier. </p> <p>Le partenaire du CETIC, <a href="https://www.safran-aero-boosters.com/fr">Safran Aero Boosters</a> (SAB), a apporté des flux données provenant de divers capteurs mesurant l’activité d’équipement de test aérospatial. Ces flux de données ont été enregistrés et traités avec TSorage afin de détecter toute anomalie. Le résultat attendu de ce projet est le développement de services innovants répondant aux attentes du marché de SAB.</p> <h2><img alt="conclusion" data-entity-type="file" data-entity-uuid="c50903ee-f184-4410-8b7d-ea7bd1e74247" height="34" src="/sites/default/files/inline-images/pieds_2.png" width="34" /> Pour aller plus loin...</h2> <p dir="ltr">La plateforme TSorage a été développée par le <a href="https://www.cetic.be/">CETIC</a> dans le cadre de l’Industrie 4.0, avec l’ambition de développer un portefeuille d’outils de gestion de données modernes et conformes aux enjeux introduits par l’Internet Industriels des Objets. </p> <p dir="ltr">Vous trouverez la documentation technique <a href="http://doc.tsorage.io">ici</a>, n’hésitez pas à contacter le CETIC pour plus d'informations.</p> <p dir="ltr">Vous pouvez également générer des séries temporelles paramétrables grâce à <a href="http://hub-creatif.ext.cetic.be/fiche/tsimulus-un-generateur-de-series-chronologiques-realistes-open-source">TSimulus </a>pour ensuite les stocker et les visualiser grâce à TSorage. </p> <p dir="ltr">Notez que TSorage peut aussi être déployé à l’aide de <a href="https://fadi.cetic.be">FADI</a>, une plateforme “cloud native” dédiée au Big Data.</p> <p dir="ltr"><strong> </strong></p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Fri, 13 Nov 2020 10:19:18 +0000 laurie 41 at http://toolbox.hub-charleroi.be DMWay, la communication IoT simplifiée http://toolbox.hub-charleroi.be/fiche/dmway-la-communication-iot-simplifiee <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">DMWay, la communication IoT simplifiée</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Connectivit%C3%A9R%C3%A9seaux" hreflang="en">Connectivité/réseaux</a></div> <div class="field__item"><a href="/Gestion%20de%20donn%C3%A9es" hreflang="en">Gestion de données</a></div> <div class="field__item"><a href="/IoT" hreflang="en">IoT</a></div> <div class="field__item"><a href="/Logiciel" hreflang="en">Logiciel</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Thu, 11/12/2020 - 15:22</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://toolbox.hub-charleroi.be/sites/default/files/2022-01/Fiche%20DMWay.pdf" type="application/pdf; length=1117004" title="Fiche DMWay.pdf">Fiche DMway</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><p dir="ltr">Du smart building à l’Industrie 4.0 en passant par l’e-santé, de plus en plus d’appareils intelligents infiltrent notre quotidien. Que ce soit pour optimiser l’efficacité énergétique d’un bâtiment, faire de la maintenance prédictive, s’assurer un meilleur confort de vie,... Il existe désormais une pléthore d’<a href="https://toolbox.hub-charleroi.be/fiche/la-gestion-des-reseaux-de-capteurs">objets connectés</a>! Le hic ? Il existe également une multitude de protocoles IoT. Trouver un seul protocole de communication compatible avec tous les différents appareils connectés s’avère compliqué... sauf si vous avez DMWay!</p> <p dir="ltr">Cette fiche vous explique plus en détails DMWay, la solution multi-protocoles de gestion de données pour l’IoT Gateways.</p> <h2 dir="ltr"><strong><img alt="Pour qui?" data-entity-type="file" data-entity-uuid="d02fb935-a6eb-4553-9e6c-c3635d7a24e6" height="50" src="/sites/default/files/inline-images/people_0.png" width="50" />  Pour qui ? </strong></h2> <p dir="ltr">Vous êtes une entreprise utilisant de nombreux capteurs hétérogènes ? Une entreprise industrielle désirant commander sa chaîne de production ?  Votre société propose des services de maintenance prédictive ?  Vous implémentez des solutions de capture de données ? Vous devez certifier des installations ? Vous vendez des gateways industrielles et  des solutions de data-lake ? Vous voulez simplement vous simplifier la vie quant à la collecte et à la  gestion de vos données ?</p> <p dir="ltr">DMWay est une solution logicielle qui va fortement vous intéresser !</p> <h2 dir="ltr"><strong><img alt="pour quoi faire" data-entity-type="file" data-entity-uuid="36f45317-7161-465a-987e-51d76edda56c" height="42" src="/sites/default/files/inline-images/goal2_5.png" width="42" />  Pour quoi faire ? </strong></h2> <p dir="ltr">A l’heure actuelle, il existe une multitude d’objets connectés et tout autant de protocoles de communication IoT, propriétaires ou non. La gestion des sources et des formats de données hétérogènes est très compliquée : les backends ont besoin d’un connecteur adapté pour chaque protocole étant donné que de nombreux types de sources de données ont leurs propres caractéristiques et exigences. Les utilisateurs se retrouvent souvent bloqués soit par rapport à une marque de matériel soit avec un système de gestion qui ne répond pas complètement à leurs attentes.</p> <p dir="ltr"> </p> <img alt="Internet of Things" data-entity-type="file" data-entity-uuid="039aaff4-5f4e-4761-a309-62273d0489da" height="405" src="/sites/default/files/inline-images/communication%20IoT.PNG" width="819" class="align-center" /><p> </p> <p dir="ltr">DMWay (<em>Dynamic Mapping Gateway</em>) sert d’intermédiaire entre les objets connectés et les applications web. Son objectif est d’interconnecter des données hétérogènes en uniformisant les protocoles IoT reçus en entrée et en fournissant, en sortie, les différents protocoles dans le format souhaité. </p> <p>On peut plus facilement résumer le rôle de DMWay à celui de traducteur !</p> <img alt="DMWay" data-entity-type="file" data-entity-uuid="1147dc33-3b3e-4cca-82ff-5acef1e84a59" height="352" src="/sites/default/files/inline-images/traducteur.PNG" width="724" class="align-center" /><h2><img alt="Les Atouts " data-entity-type="file" data-entity-uuid="cd8e2d38-7833-48a6-b924-83938fc09dd3" height="35" src="/sites/default/files/inline-images/stars.png" width="35" /><strong> Les atouts de DMWay</strong></h2> <h3 dir="ltr"><strong>          <img alt="1" data-entity-type="file" data-entity-uuid="918d4267-6cad-4bbd-9400-dd22db7dbd9d" height="23" src="/sites/default/files/inline-images/1_3.png" width="23" />  Se défaire du vendor lock in </strong></h3> <p dir="ltr">Avec DMWay, vous êtes propriétaire de vos données et vous pouvez les gérer comme vous le souhaitez.</p> <h3 dir="ltr"><strong>          <img alt="2" data-entity-type="file" data-entity-uuid="692b8b0c-5c0f-4339-81a6-fd6a69c03b19" height="23" src="/sites/default/files/inline-images/2_4.png" width="23" />  Le multiplexage de données </strong></h3> <p dir="ltr">Grâce à DMWay, vous pourrez connecter vos différents capteurs/actionneurs et distribuer les données qui en résultent à des backends différents. Si vous disposez de  45 capteurs de marque X conçus pour communiquer avec le backend de cette même marque X, il est difficile d’apporter de l’évolutivité à vos données ... Or déployer DMWay comme intermédiaire, vous permet de communiquer les données avec des backends d’autres marques ou open-source.</p> <h3 dir="ltr"><strong>          <img alt="3" data-entity-type="file" data-entity-uuid="0c5b391e-3bed-4a5b-bc0b-1fa519b2aaee" height="23" src="/sites/default/files/inline-images/3_3.png" width="23" /> La sémantique des données </strong></h3> <p dir="ltr">La sémantique des données concerne la signification du message :  elle assure la conservation du sens des données lors des échanges entre les différentes parties communicantes. Le rôle de la sémantique est vraiment d’assurer la cohérence des significations reçues (on parle d’interopérabilité sémantique).</p> <p dir="ltr">DMway permet de  détecter et conserver la sémantique initiale, et sous certaine configuration, il peut l’enrichir, surtout lorsque les couches de protocoles sous-jacentes sont faiblement structurées.</p> <h3 dir="ltr"><strong>          <img alt="4" data-entity-type="file" data-entity-uuid="3b7eb146-74f3-460a-a387-28dfb7bfee05" height="26" src="/sites/default/files/inline-images/4_2.png" width="26" /> Le support built in des standards majeurs de l’IoT </strong></h3> <p dir="ltr">DMway comprend les protocoles principaux, les standards majeurs de l’industrie IoT : </p> <ul><li dir="ltr"> <p dir="ltr">OCF/OneIOTA</p> </li> <li dir="ltr"> <p dir="ltr">OneM2M/HGI</p> </li> <li dir="ltr"> <p dir="ltr">OPC/UA</p> </li> <li dir="ltr"> <p dir="ltr">CoAP</p> </li> <li dir="ltr"> <p dir="ltr">CayenneLPP</p> </li> <li dir="ltr"> <p dir="ltr">ZWave</p> </li> <li dir="ltr"> <p dir="ltr">ModBus</p> </li> <li dir="ltr"> <p dir="ltr">MQTT</p> </li> <li dir="ltr"> <p dir="ltr">...</p> </li> </ul><h3 dir="ltr"><strong>          <img alt="5" data-entity-type="file" data-entity-uuid="11d9fb6d-fcd9-4ff0-b91c-1f81dc573d22" height="24" src="/sites/default/files/inline-images/5_1.png" width="24" /> Les interfaces supportées</strong></h3> <p dir="ltr">Afin de supporter les différents protocoles ci-dessus, DMway supporte diverses interfaces physiques, comme Ethernet, WiFi, GPRS, ou Serial, RS-485, . En effet, p… Par exemple, vous pouvez communiquer directement  vers un équipement en CayenneLPP via Serial ou communiquer en ZWave, RF, LoRaWAN,... via leurs outils d’interfaçage MQTT.T au moyen d’une connexion Ethernet.</p> <h3 dir="ltr"><strong>          <img alt="6" data-entity-type="file" data-entity-uuid="631f1f43-7a38-46e7-b43f-d034cd138e94" height="22" src="/sites/default/files/inline-images/6_0.png" width="22" /> Support built in des backends les plus communs</strong></h3> <p dir="ltr">La solution DMway permet d’intégrer très facilement un nouveau backend grâce à une configuration rapide !</p> <p> </p> <p dir="ltr">Actuellement, elle vous permet de communiquer vers l’extérieur envia, entre autres, MQTT, CoAP, OneM2M et SerialM.,... DMway dispose également de connecteurs spécifiques pour MongoDB, RabbitMQT, <a href="https://toolbox.hub-charleroi.be/fiche/thingsboard-gerer-les-donnees-de-vos-appareils-connectes">Thingsboard </a>et <a href="https://toolbox.hub-charleroi.be/fiche/tsorage-une-plateforme-de-gestion-de-donnees-iiot-open-source">TSorage </a>(et prochainement OPC/UA !). </p> <p><br /> Si vos plateformes intègrent du MQTT, comme Azure ou AWS par exemple, vous pouvez également  les connecter directement à DMwWay.</p> <h3 dir="ltr"><strong>          <img alt="7" data-entity-type="file" data-entity-uuid="6fc7b583-0f9c-4076-927d-ad055d2db126" height="21" src="/sites/default/files/inline-images/7_0.png" width="21" /> Versatilité dans le déploiement</strong></h3> <p dir="ltr">DMway est un logiciel léger que vous pouvez déployer à divers endroits de votre architecture :</p> <ul><li dir="ltr"> <p dir="ltr">Edge computing : vous pouvez réalisez une implémentation de DMWay directement dans votre gateway.</p> </li> <li dir="ltr"> <p dir="ltr">Cloud computing/ Fog server : vous pouvez installer DMWay a l’entrée d’une solution de stockage ou de votre plateforme web pour simplifier l’interconnexion de vos capteurs.</p> </li> <li dir="ltr"> <p dir="ltr">Hybride (Edge &amp; Cloud) : vous pouvez déployer DMWay sur votre gateway et sur vos serveurs afin de simplifier et uniformiser votre architecture de déploiement.</p> </li> </ul><h3 dir="ltr"> </h3> <h3 dir="ltr"><strong>Pourquoi choisir DMway plutôt qu’une autre solution ?</strong></h3> <p dir="ltr">DMWay fait face à de nombreux concurrents sur le marché… Néanmoins, aucun ne couvre tous les aspects de DMWay !</p> <img alt="DMWay et les autres solutions " data-entity-type="file" data-entity-uuid="f12d1992-d9a9-4759-96f8-b7d46c19a8ed" height="553" src="/sites/default/files/inline-images/concurrence.png" width="892" class="align-center" /><h2 dir="ltr"><img alt="Exemple" data-entity-type="file" data-entity-uuid="20a6f00a-708c-401e-868c-82514bdde002" height="43" src="/sites/default/files/inline-images/note_list_icon_124054_0.png" width="43" />  Les cas d’utilisation de DMway</h2> <p>DMWay a déjà été mobilisé dans divers cas d’utilisation : </p> <ul><li dir="ltr"> <p dir="ltr"><strong>Le projet de recherche <a href="https://www.cetic.be/MAPIU-fr">MAPIU</a> </strong></p> </li> </ul><p dir="ltr">L’objectif  de ce projet dans le domaine de la logistique était de voir, grâce au placement de capteurs à l’intérieur de camions, les chocs subis par les caisses lors du transport. DMWay a été implémenté entre les capteurs et le système de gestion situé dans le cloud. </p> <ul><li dir="ltr"> <p dir="ltr"><strong>Le projet de recherche <a href="https://www.cetic.be/Keys2Success40-fr">KEY2SUCCESS4.0</a> </strong></p> </li> </ul><p dir="ltr">Ce projet de démonstrateur industriel léger et polyvalent a pour but de démontrer l’usage de l’IoT dans l’industrie 4.0. DMWay a été implémenté localement en tant qu'interprète multiplexeur.</p> <ul><li dir="ltr"> <p dir="ltr"><strong>Le projet <a href="https://www.cetic.be/Construction-40-Build4Wal-fr">Build4Wal</a> </strong></p> </li> </ul><p dir="ltr">Ce projet, aussi appelé Construction 4.0, a pour objectif  de stimuler la transition numérique  du secteur de la construction. DMWay facilite le déploiement des capteurs pour l’interconnexion à la plateforme <a href="https://toolbox.hub-charleroi.be/fiche/thingsboard-gerer-les-donnees-de-vos-appareils-connectes">Thingsboard</a>. </p> <ul><li dir="ltr"> <p dir="ltr"><strong>Le système domotique du CETIC </strong></p> </li> </ul><p dir="ltr">Des capteurs hétérogènes ont été installés au sein du bâtiment. Ce cas d’application illustre la capacité d’ajout de capteurs à chaud ainsi que le multiplexage  : de nouveaux capteurs ont été installés sans avoir besoin de modifier la configuration ou de faire quoi que ce soit d’autre. La communication s’est directement faite avec le système déjà en place et avec différents backends tels que <a href="https://toolbox.hub-charleroi.be/fiche/thingsboard-gerer-les-donnees-de-vos-appareils-connectes">Thingsboard </a>et Grafana. </p> <p dir="ltr"> </p> <h2 dir="ltr"><strong><img alt="video" data-entity-type="file" data-entity-uuid="dcf6a7d2-122d-4277-ae7b-f6d03cc554ed" height="39" src="/sites/default/files/inline-images/camera_1.png" width="39" /> La démonstration en vidéo </strong></h2> <p dir="ltr">Voici <a href="https://www.youtube.com/watch?v=tJX_WWQqc0o">le replay du webinaire</a> organisé par le Hub-C le 16 décembre 2021 afin de faire une démonstration de DMway La présentation est réalisée par Amel Achour, ingénieure de recherche Senior en <a href="https://www.cetic.be/spip.php?page=groupes-mots&amp;id_groupe=14&amp;lang=fr">Evolutivité des systèmes embarqués et réseaux Io</a>T au sein du CETIC.</p> <h2><img alt="conclusion" data-entity-type="file" data-entity-uuid="c50903ee-f184-4410-8b7d-ea7bd1e74247" height="38" src="/sites/default/files/inline-images/pieds_2.png" width="38" /> Pour aller plus loin...</h2> <p dir="ltr">DMway est un outil développé par le CETIC, n’hésitez pas à prendre contact si vous désirez des informations supplémentaires!</p> <p dir="ltr"><br /> Si vous voulez en savoir plus sur les réseaux de capteurs et l’IoT, vous pouvez consulter nos fiches relatives à la <a href="https://toolbox.hub-charleroi.be/fiche/la-gestion-des-reseaux-de-capteurs">gestion des réseaux de capteurs</a>, à la plateforme IoT <a href="https://toolbox.hub-charleroi.be/fiche/thingsboard-gerer-les-donnees-de-vos-appareils-connectes">Thingsboard</a> ou encore celles concernant la fabrication de <a href="https://toolbox.hub-charleroi.be/fiche/fabriquer-votre-propre-systeme-domotique-open-source">son propre système domotique open source</a> et de <a href="https://toolbox.hub-charleroi.be/fiche/airberry-fabriquer-votre-moniteur-de-qualite-dair">son propre moniteur de qualité d’air</a>.</p> <h2><strong><img alt="aide supplémentaire" data-entity-type="file" data-entity-uuid="c3f03cf9-540b-4f39-96ca-1aec98d53b0d" height="34" src="/sites/default/files/inline-images/question.png" width="34" /> Besoin d’une aide supplémentaire ?  </strong></h2> <p dir="ltr">Le <a href="https://www.hub-charleroi.be/fr/team">Hub-C</a> dans le cadre de ses services d’accompagnement numérique organise des workshops et groupes de travail en lien avec les nouvelles technologies de prototypages.  Vous souhaitez un accompagnement pour votre projet innovant ou vous souhaitez participer à un prochain workshop? N'hésitez pas à contacter <a href="https://www.hub-charleroi.be/fr/team">un membre du Hub</a> ! </p> <p dir="ltr"><br /> Vous avez une question spécifique à propos d’une fiche? Elles sont réalisées par les experts du <a href="https://www.cetic.be/">CETIC</a> (Centre d'Excellence en Technologies de l'Information et de la Communication), un  centre de recherche appliquée en informatique situé à Charleroi. Vous trouverez toutes les coordonnées <a href="https://www.cetic.be/Contact">ici</a>.</p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Thu, 12 Nov 2020 14:22:15 +0000 laurie 46 at http://toolbox.hub-charleroi.be L'impression 3D http://toolbox.hub-charleroi.be/fiche/limpression-3d <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">L&#039;impression 3D</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Logiciel" hreflang="en">Logiciel</a></div> <div class="field__item"><a href="/Prototypage" hreflang="en">Prototypage</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Wed, 11/11/2020 - 13:36</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://toolbox.hub-charleroi.be/sites/default/files/2021-02/Fiche%20Impression%203D.pdf" type="application/pdf; length=4550519" title="Fiche Impression 3D.pdf">Fiche L'impression 3D</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><p dir="ltr">Cela ne peut vous avoir échappé, les techniques d’impression 3D se développent de plus en plus ces dernières années et viennent bouleverser nos modes de production : coeurs artificiels, équipements sportifs, tiny house, bâtiments de plusieurs niveaux,... Tout ce qui s’imagine aujourd’hui peut se construire dès demain! </p> <p>Vous aussi vous souhaitez virtualiser et matérialiser tout ce que vous imaginez en 3D? Cette fiche vous présente un aperçu des différentes technologies de fabrication additive (dont une description plus détaillée du processus d’impression FDM), les étapes nécessaires à la conception de votre objet en trois dimensions ainsi que quelques logiciels pour vous y découvrir cette technologie disruptive.</p> <h2 dir="ltr"><img alt="goal" data-entity-type="file" data-entity-uuid="62bbc1fc-7ce5-416e-a0c3-e2f1ae856bd2" height="35" src="/sites/default/files/inline-images/goal2.png" width="35" /> Pour quoi faire ? </h2> <p dir="ltr">L’impression 3D vous permet de :</p> <ul><li dir="ltr"> <p dir="ltr">Réaliser des pièces introuvables dans le commerce, des pièces trop coûteuses,...</p> </li> <li dir="ltr"> <p dir="ltr">Personnaliser vos produits afin de répondre à des besoins spécifiques, chaque réalisation peut être unique!</p> </li> <li dir="ltr"> <p dir="ltr">Prototyper rapidement : avec l’impression 3D, vous gagnez du temps, de l’argent et de la précision. Plus besoin de créer plein de moules pour arriver à fabriquer la pièce tant désirée, vous gagnez en agilité et réduisez vos itérations.  La méthode de fabrication est considérablement accélérée grâce à cette technologie!</p> </li> <li dir="ltr"> <p dir="ltr">Optimiser aisément le design de vos pièces : réduire le gaspillage de matière, les coûts de production, tenter des formes complexes,...</p> </li> </ul><h2 dir="ltr"><img alt="Pour qui?" data-entity-type="file" data-entity-uuid="2e5d65d3-aed1-4986-a3f6-68a8fc017c4d" height="54" src="/sites/default/files/inline-images/people.png" width="54" /> Pour qui ?</h2> <p dir="ltr">Une multitude de secteurs peut être intéressée par l’impression 3D! Voici quelques idées d’applications : </p> <ul><li dir="ltr"> <p dir="ltr">L’architecture et la construction : impression de <a href="https://formlabs.com/fr/blog/impression-3d-maquette-achitecture-laney/">maquettes</a>, de <a href="https://3dadept.com/la-belgique-a-construit-sa-premiere-maison-a-plusieurs-etages-imprimee-en-3d/">bâtiments</a> plus durables, (re)construction rapide,...</p> </li> <li dir="ltr"> <p dir="ltr">Le  secteur médical : impression d’appareils médicaux, de <a href="https://www.3dnatives.com/exosquelette-igus-110120213/">prothèses et d’implants adaptés</a>, <a href="https://www.ted.com/talks/anthony_atala_printing_a_human_kidney">d’organes</a>,...</p> </li> <li dir="ltr"> <p dir="ltr">L’industrie chimique : impression d’assemblages moléculaires,...</p> </li> <li dir="ltr"> <p dir="ltr">La mécanique</p> </li> <li dir="ltr"> <p dir="ltr">L’agroalimentaire : impression de <a href="https://www.3dnatives.com/dinara-kasko-impression-3d-26012017/">moules</a> complexes, <a href="https://www.3dnatives.com/impression-3d-alimentaire-21052018/">impressions alimentaires</a>,...</p> </li> <li dir="ltr"> <p dir="ltr">L’éducation : les réalisations 3D  servent comme <a href="https://formlabs.com/fr/blog/comment-debuter-en-impression-3d-pour-enseigner/">supports d’apprentissage</a> à de nombreux autres domaines</p> </li> <li dir="ltr"> <p dir="ltr">L’aéronautique et l’aérospatiale : impressions de pièces spécialisées, de structures complexes,....par exemple, <a href="https://www.materialise.com/fr/cases/limpression-3d-senvole-dans-les-cabines-airbus">Airbus</a> a imprimé des pièces certifiées pour le vol et des structures de cabines, la <a href="http://www.primante3d.com/nasa-lwdc-26032018/">Nasa</a> a imprimé un système correcteur pour un moteur de fusée,... </p> </li> <li dir="ltr"> <p dir="ltr">La défense : <a href="https://www.3dnatives.com/top-10-armee-impression-3d-05102016/">impressions d’équipement, d’armes,...</a></p> </li> <li dir="ltr"> <p dir="ltr">Le retail et la distribution : c’est toute <a href="http://www.influencia.net/fr/actualites/in,tendances,comment-impression-revolutionner-monde-retail,3285.html">la chaîne de valeur</a> qui peut être repensée grâce à l'impression 3D (distribution instantanée, personnalisation du produit, production à la demande,...)</p> </li> <li dir="ltr"> <p dir="ltr">L'énergie : impressions de <a href="https://www.sculpteo.com/blog/2018/01/24/3d-printed-solar-panels-meet-the-renewable-energy-revolution/">panneaux solaires</a>, d’<a href="https://www.sculpteo.com/blog/2018/05/09/3d-printing-for-energy-discover-the-3d-printed-wind-turbine/">hélices</a>,... retrouvez plusieurs idées de projets pour ce secteur sur <a href="https://www.sculpteo.com/blog/2018/04/04/3d-printing-for-the-energy-industry-the-best-projects/">Sculpteo</a>.</p> </li> <li dir="ltr"> <p dir="ltr">L’automobile : voici une <a href="https://www.sculpteo.com/fr/centre-apprentissage/toutes-les-applications-impression-3d/automobile-et-impression-3d-voiture-imprimee/">liste</a> de projets déjà réalisés, on peut citer la personnalisation des jantes ou de l’esthétisme complet du véhicule, la réduction de son poids, le développement de voitures moins polluantes,... </p> </li> <li dir="ltr"> <p dir="ltr">La mode et le textile : impressions directes sur les tissus, <a href="https://3dadept.com/stratasys-et-les-specialistes-de-la-mode-rendent-les-vetements-modernes-en-utilisant-limpression-3d-directe-sur-le-textile/">assemblage sans couture</a>, mélanges de matières, innovation dans les <a href="https://www.buzzwebzine.fr/fashion-tech-mode-impression-3d/">fonctionnalités</a> du vêtement,...</p> </li> <li dir="ltr"> <p dir="ltr">La robotique : amélioration de <a href="https://www.lavenir.net/cnt/dmf20210121_01547375/un-robot-meduse-pour-sauver-les-coraux">robots </a>spécialisés.</p> </li> <li dir="ltr"> <p dir="ltr">L’optique</p> </li> <li dir="ltr"> <p dir="ltr">Les productions industrielles</p> </li> <li dir="ltr"> <p dir="ltr">L’audiovisuel et le cinéma : <a href="https://www.3dnatives.com/impression-3d-cinema-24082016/">réalisations </a>de décors, d’accessoires, de maquettes, de costumes et de figurines grâce à l’impression 3D.</p> </li> <li dir="ltr"> <p dir="ltr">La joaillerie : impressions rapides de <a href="https://www.a3dm-magazine.fr/magazine/art-bijouterie-joaillerie/createurs-de-bijoux-impriment">bijoux </a>personnalisés, avec des matériaux précieux et selon des formes complexes, l'impression 3D s’invite dans l’univers du luxe!</p> </li> <li dir="ltr"> <p dir="ltr">L'électronique : impression de <a href="https://www.a3dm-magazine.fr/magazine/toutes-industries/impression-3d-une-carte-jouer-electronique">composants et de circuits électroniques </a></p> </li> </ul><p dir="ltr">De plus, cette technologie est de plus en plus accessible financièrement; elle ne s’adresse plus uniquement aux professionnels mais également aux particuliers qui veulent revisiter leurs hobbies!</p> <h2 dir="ltr"><strong><img alt="Comment" data-entity-type="file" data-entity-uuid="6ed6bdf2-8d12-4ad8-b710-5af6921b3743" height="38" src="/sites/default/files/inline-images/roues.png" width="38" /> Comment ?</strong></h2> <p dir="ltr">L'impression 3D, ou fabrication additive (FA),  regroupe l’ensemble des <a href="https://fr.wikipedia.org/wiki/Proc%C3%A9d%C3%A9_de_fabrication">procédés de fabrication</a> de pièces en volume par ajout ou agglomération de matière.</p> <p>Dans la suite de cette fiche,  nous vous décrivons très brièvement les trois différentes technologies d’impression additive et plus spécifiquement, les étapes du processus d’impression par dépôt de fil (FDM). Nous vous invitons également à découvrir le Fab-C qui vous permettra de vous initier ou de vous perfectionner dans l’impression 3D.</p> <h3><strong>Les différentes technologies d’impression 3D </strong></h3> <p dir="ltr">Nous présentons très succinctement les 3 grandes catégories de technologies de fabrication additive, quelques points forts et quelques points faibles,... Vous pouvez trouver davantage d’informations à ce sujet <a href="https://formlabs.com/fr/blog/impression-3D-fdm-sla-sls/#Comparaison%20des%20proc%C3%A9d%C3%A9s%20FDM%2C%20SLA%20et%20SLS">ici</a>.</p> <h4 dir="ltr"><strong>L’impression par dépôt de fil ou extrusion (FFF ou FDM)</strong></h4> <p dir="ltr">Il s’agit de la technique d’impression 3D la plus populaire car elle est rapide, économe et accessible à Monsieur et Madame Tout-le-monde. Votre objet est modelé par un dépôt et une superposition de couches de filament thermoplastique en fusion (“Fused Filament Fabrication” ou “Fused Deposition Modeling” ). </p> <p dir="ltr">Vous trouverez une large gamme de matériaux thermoplastiques disponibles (par exemple l’ABS, le PLA, le polycarbonate, le polyamide et le polystyrène) et dans de nombreuses couleurs.</p> <p dir="ltr">Bien qu’il existe des machines professionnelles (<a href="https://ultimaker.com/fr/">Ultimaker</a>, <a href="https://zortrax.com">Zortrax</a>,...) voire industrielles (<a href="https://markforged.com">Markforged</a> notamment), ce n’est pas la technologie la plus utilisée pour cela car les modèles conceptuels sont assez basiques et la précision n’est pas très élevée. <strong>  </strong></p> <p dir="ltr"> </p> <h4 dir="ltr"><strong>La stéréolithographie (SLA en abrégé)</strong></h4> <p dir="ltr">La technologie SLA utilise le principe de photopolymérisation où une lumière UV, provenant d’un laser ou d’un projecteur numérique (“Digital Light Processing”), solidifie une couche de résine liquide. De cette façon, l’objet est imprimé couche après couche. </p> <p dir="ltr">Les avantages de cette technologie sont qu’elle est très précise et permet une très grande qualité des détails en termes de finition et de résolution des impressions car le laser est contrôlé et dirigé par des miroirs. Comme autre avantage, on peut également citer la bonne résistance inter-couches de l’objet.</p> <p dir="ltr">Après traitement, les pièces imprimées doivent être nettoyées dans un bain de solvant, puis placées dans un four à ultraviolet afin de durcir. Attention, ce traitement peut légèrement déformer votre pièce. </p> <p dir="ltr">La technologie SLA est assez coûteuse (surtout au niveau des exigences de maintenance) et demande une certaine expertise, elle est donc surtout privilégiée dans les secteurs industriels. Les avantages de cette technologie intéressent beaucoup les domaines de l’horlogerie, de la joaillerie, de la bijouterie, mais aussi les secteurs dentaires, médicaux et mécaniques (certaines résines sont d’ailleurs conçues spécifiquement pour ces secteurs!)... Ou encore le secteur de conception et de production d’<a href="https://www.3d-varius.com/fr/">instruments de musique</a>! </p> <p dir="ltr"><br /> Parmi les  imprimantes 3D utilisant cette technologie, nous pouvons citer la Form 3 de <a href="https://formlabs.com/fr/3d-printers/">FormLabs</a> (ce sont d’ailleurs les pionniers de l’impression 3D personnelle par SLA!), l’imprimante 3D ProJet® 7000 HD  de chez <a href="https://fr.3dsystems.com/3d-printers/projet-7000-hd">3D Systems</a> ou encore la <a href="https://www.aniwaa.fr/produit/imprimantes-3d/peopoly-phenom/">Peopoly Phenom</a>.</p> <p dir="ltr"> </p> <h4 dir="ltr"><strong>L’impression par liage de poudre  (SLS, SLM, DMLS)</strong></h4> <p dir="ltr">La troisième technologie d’impression 3D est celle du liage de poudre (aussi appelée “projection de lien”, ou “Binder jetting”) : un liant liquide est pulvérisé, grâce à une tête d’impression semblable à celle d’une imprimante 2D, sur un lit de poudre qui va ensuite se solidifier couche après couche pour former votre pièce finale. </p> <p dir="ltr">Plusieurs méthodes utilisent cette technologie : la fusion sélective au laser (SLM), le frittage laser direct des métaux (DMLS), la fusion par faisceau d’électrons (EBM), la fusion multi-jets (MJF), l’impression en poudre à base de plastique, le frittage laser sélectif (SLS),...</p> <p dir="ltr">Un post-traitement est nécessaire afin d’augmenter la résistance de votre objet imprimé; certaines pièces doivent être vernies (les céramiques par exemple) ou frittées dans un four spécifique (lorsqu’il y a un liant métallique).</p> <p dir="ltr">Peu accessible aux amateurs et assez coûteuse, cette technologie ne dispose pas encore d’une communauté aussi développée que les imprimantes 3D  utilisant des filaments en plastique (FDM) ou de la résine (SLA). La technique du liage de poudre est plutôt réservée au prototypage professionnel ou à la fabrication industrielle car elle permet un grand volume d’impression, la conception de pièces très complexes et d’avoir une meilleure prévisibilité du produit fini au niveau de ses propriétés mécaniques, ce qui est parfait pour le développement de pièces en série!</p> <p dir="ltr">La polyvalence des types de matériaux qui peuvent être utilisés est un atout supplémentaire. En effet, une multitude de poudres peut servir de consommables : gypse, sable, céramiques, métaux (titane, aciers inoxydables, cuivre,...), polymères granulaires,... et il est également possible de faire des modèles en couleur!</p> <p dir="ltr">Vous trouverez des imprimantes 3D à liage de poudre chez <a href="https://fr.3dsystems.com/3d-printers">3D systems</a>, <a href="https://concr3de.com">Concr3de</a>, <a href="https://www.exone.com">ExOne</a>, <a href="https://www.hoganas.com">Höganäs</a>, <a href="https://formlabs.com">FormLabs</a> (avec l’imprimante <a href="https://formlabs.com/3d-printers/fuse-1/">Fuse 1</a>),... </p> <p dir="ltr"><strong> </strong></p> <h3 dir="ltr"><strong><img alt="impression 3D FM" data-entity-type="file" data-entity-uuid="162a7610-172d-478e-bf5c-6ba03c02210e" height="40" src="/sites/default/files/inline-images/imprimante%203D.png" width="40" /> L'impression 3D FDM</strong></h3> <p dir="ltr">Bien que cette partie décrit le processus d’impression d’un objet en trois dimensions à l’aide de la technologie FDM, les étapes sont presque identiques si vous utilisez les autres technologies décrites dans la section ci-dessus :  vous aurez tout autant besoin du fichier de modélisation de votre objet et celui-ci devra passer par un logiciel de tranchage avant l’impression.</p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img"><img alt="Illustration du processus d’impression d’un objet 3D" data-entity-type="file" data-entity-uuid="b9e25b34-6275-468c-9e4e-2a67717ac977" height="368" src="/sites/default/files/inline-images/processusimpression.jpg" width="566" /><figcaption>Illustration du processus d’impression d’un objet 3D</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p dir="ltr"> </p> <h3 dir="ltr"><img alt="matériel" data-entity-type="file" data-entity-uuid="16d535da-0245-4eb9-96ee-362152f6a3e4" height="21" src="/sites/default/files/inline-images/outils.png" width="21" /><strong>  Matériel requis pour une impression FDM</strong></h3> <p dir="ltr">          – une imprimante 3D FDM,</p> <p dir="ltr">         – une bobine de filament,</p> <p dir="ltr">         – un fichier 3D (au format STL ou OBJ),</p> <p dir="ltr">         – un logiciel de slicing (ou logiciel de tranchage) pour trancher le fichier et transmettre les indications à l’imprimante,</p> <p dir="ltr">         – un ordinateur.</p> <h3 dir="ltr"><strong>Les différentes étapes</strong></h3> <h3 dir="ltr"><strong>1. La modélisation de votre objet </strong></h3> <p dir="ltr">Pour pouvoir imprimer en 3D, il vous faut impérativement un fichier 3D de votre objet. Pour obtenir cela, vous avez 3 possibilités : </p> <ol><li dir="ltr"> <p dir="ltr">construire votre modèle 3D grâce à un <a href="https://toolbox.hub-charleroi.be/node/43/edit?destination=/admin/content">logiciel CAO</a>,</p> </li> <li dir="ltr"> <p dir="ltr"><a href="https://toolbox.hub-charleroi.be/node/preview/7994ab76-e9be-4b76-8e7d-ddf3c9bc0f84/full?destination=/admin/content">scanner</a> votre objet en 3D,</p> </li> <li dir="ltr"> <p dir="ltr">télécharger des modèles tridimensionnels existants : vous pouvez en trouver des gratuits facilement sur de nombreux sites, par exemple <a href="https://www.thingiverse.com">Thingiverse</a>, <a href="https://cults3d.com/fr">Cults3d</a>, <a href="https://www.myminifactory.com">My mini factory</a>, <a href="https://www.youmagine.com">YouMagine</a>,....</p> </li> </ol><p dir="ltr">Quel que soit le moyen choisi, vous devez disposer à la fin de votre modélisation d’un fichier .stl ou .obj  à importer et à ouvrir dans le logiciel d’impression 3D fourni avec votre imprimante 3D.</p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img"><img alt="illustration de l'étape de modélisation du projet" data-entity-type="file" data-entity-uuid="849c8cbe-051a-498c-bdb4-1af12560e210" height="249" src="/sites/default/files/inline-images/etape%20mod%C3%A9lisation.jpg" width="487" /><figcaption>Illustration de l'étape de modélisation du projet</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><h3 dir="ltr"><strong>2. Préparation du fichier avant  l’impression 3D</strong></h3> <p dir="ltr">Pour pouvoir imprimer votre objet en 3D, vous devez transformer le fichier de modélisation numérique en un fichier adapté à l’imprimante 3D. Pour cela, vous devez utiliser un slicer, un logiciel de tranchage qui va “trancher” votre objet en une série de couches superposées et fournir les instructions nécessaires à l’imprimante, dans un fichier G-Code. Si vous désirez en savoir plus sur cette étape ou connaître les slicers open source et gratuits les plus courants, rendez-vous sur la fiche relatives aux <a href="https://toolbox.hub-charleroi.be/node/44/edit?destination=/admin/content">slicers</a>.</p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img"><img alt="Illustration de la préparation du fichier avant impression" data-entity-type="file" data-entity-uuid="a528a33c-f53d-4468-9743-b71e60c54c7c" height="215" src="/sites/default/files/inline-images/%C3%A9tape%20slicer.jpg" width="493" /><figcaption>Illustration de la préparation du fichier avant impression</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><h3 dir="ltr"><strong>3. Transfert du fichier G-Code à l’imprimante</strong></h3> <p dir="ltr">Ensuite, vous devez transmettre votre fichier G-Code à votre imprimante, vous avez 3 manières de faire possibles :</p> <ol><li dir="ltr"> <p dir="ltr">En connectant votre imprimante 3D directement à votre ordinateur à l’aide d’un câble USB (attention au mode “veille” qui  peut interrompre le processus!).</p> </li> <li dir="ltr"> <p dir="ltr">En enregistrant  votre fichier sur une carte SD et l’insérer dans votre imprimante 3D.</p> </li> <li dir="ltr"> <p dir="ltr">En utilisant la connectivité WiFi. Plusieurs applications et logiciels existent pour utiliser ce processus (<a href="https://octoprint.org">OctoPrint</a>, <a href="https://www.repetier.com">Repetier-Host</a>, <a href="https://www.astroprint.com">AstroPrint</a>,...). Voici un tutoriel vous expliquant comment faire avec <a href="https://raspberry-pi.fr/octoprint-raspberry/">Octoprint</a>.</p> </li> </ol><!-- THEME DEBUG --><!-- THEME HOOK: 'filter_caption' --><!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><figure role="group" class="caption caption-img"><img alt="Illustration du transfert de fichier vers l'imprimante" data-entity-type="file" data-entity-uuid="f14eaa86-bb3a-4023-bea9-7d0834b31fd6" height="196" src="/sites/default/files/inline-images/etape%20transfert.jpg" width="599" /><figcaption>Illustration du transfert de fichier vers l'imprimante</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><h3 dir="ltr"><strong>4. Les réglages et connexions de votre imprimantes 3D FDM</strong></h3> <p dir="ltr">N’oubliez pas de vérifier vos différents branchements, la stabilité de votre imprimante (particulièrement au niveau de la tête d’impression) et de votre  plateau d’impression  ainsi que son niveau (il ne faut ni trop de jeu, ni trop de résistance).</p> <h3 dir="ltr"><strong>5. Le processus d’impression FDM en tant que tel</strong></h3> <p dir="ltr">Pour commencer l’impression de votre objet désiré, insérez votre bobine de filament (généralement à base de plastique, PLA ou ABS) sur son support.   </p> <p dir="ltr">Ensuite, on vous conseille de couper le bout de votre filament en biseau pour faciliter son insertion dans le tube qui sert de guide-filament et ensuite, son entrée dans l’extrudeur.  Mais qu’est-ce que l’extrudeur ? Composé de différentes parties (moteur d'entraînement, bloc chauffant, buse,...), l’extrudeur est ce qui permet à votre imprimante 3D d’éjecter le matériau liquide afin de créer votre pièce en 3D par additions successives de couches.</p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img"><img alt="illustration extrudeur" data-entity-type="file" data-entity-uuid="ab4e75dc-a0a0-4c72-a5bf-8b878a6a3b51" height="484" src="/sites/default/files/inline-images/Fichier%203D%20.stl_.jpg" width="607" /><figcaption>Illustration d'une imprimante 3D FM</figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p dir="ltr">Votre imprimante va chauffer le plateau et la buse d’extrusion. Pendant ce temps-là, un moteur (l’alimenteur/feeder) entraîne directement des roues crantées qui vont entraîner à leur tour le filament pour le pousser vers la source de chaleur de l’extrudeur. </p> <p dir="ltr">Le bloc chauffant va chauffer la buse d’extrusion et faire fondre le fil. L’imprimante va déplacer la tête d’impression en déposant le filament fondu à des endroits précis sur le plateau. Quand une couche est terminée, le processus se répète couche par couche.  Le filament fondu va refroidir et se solidifier afin de former votre objet en trois dimensions. </p> <p dir="ltr">La durée de l’impression 3D dépendra  de la taille et des paramètres de votre modèle selon la configuration que vous avez effectuée avec le <a href="https://toolbox.hub-charleroi.be/node/44/edit?destination=/admin/content">logiciel de tranchage</a> lors de l’étape 2. </p> <p dir="ltr">Une fois imprimée, votre pièce 3D n’est pourtant pas “prête à l’emploi”... un petit post-traitement s’impose. Si vous avez utilisé du PLA, il est conseillé de polir votre objet à la main avec du THF (tétrahydrofuranne) pour lisser vos surfaces alors que si vous avez utilisé de l’ABS, préférez utiliser des vapeurs d’acétone.</p> <h2 dir="ltr"><strong>Pour aller plus loin… Découvrez le <img height="16" src="/core/misc/icons/e32700/error.svg" width="16" alt="Image removed." title="This image has been removed. For security reasons, only images from the local domain are allowed." class="filter-image-invalid" /> ! </strong></h2> <p dir="ltr">Vous avez une question? Vous désirez en savoir plus ou tout simplement vous mettre à l’impression 3D? Delphine et Sylvain du <a href="https://www.fablab-charleroi.be">Fab-C</a> (partenaire du <a href="https://www.hub-charleroi.be">Hub Créatif de Charleroi</a>) sont là pour vous aider! N’hésitez pas à les <a href="https://www.fablab-charleroi.be/contact/">contacter</a>! </p> <p> </p> <p dir="ltr">Saviez-vous que…</p> <p dir="ltr">Le Fab-C dispose d’une imprimante <a href="https://ultimaker.com/fr/3d-printers/ultimaker-3">Ultimaker 3</a> avec les caractéristiques suivantes ?</p> <ul><li dir="ltr"> <p dir="ltr">Volume d'impression : de 215 x 215 x 200 mm</p> </li> <li dir="ltr"> <p dir="ltr">Précision : jusqu'à 20 microns avec Print Core 0.4mm</p> </li> <li dir="ltr"> <p dir="ltr">Température d'impression : jusqu'à 280°C</p> </li> <li dir="ltr"> <p dir="ltr">Double extrusion : avec matériaux de support</p> </li> <li dir="ltr"> <p dir="ltr">Print Core : interchangeables</p> </li> <li dir="ltr"> <p dir="ltr">Plateau chauffant : avec ajustement de niveau automatique</p> </li> </ul><p dir="ltr">Sylvain vous explique d’ailleurs dans ce <a href="https://wikifab.org/wiki/Charger-D%C3%A9charger_Filament_sur_Ultimaker_3">tutoriel</a> comment changer le filament sur ce type d’imprimante!</p> <p dir="ltr">Le Fab-C dispose également d’une imprimante <a href="https://formlabs.com/fr/3d-printers/form-2/">Form2 de FormLabs</a> pour l’impression résine (rappelez-vous… C’est la technologie SLA)! Ses caractéristiques sont les suivantes : </p> <p> </p> <ul><li dir="ltr"> <p dir="ltr">Volume d'impression : 14,5 × 14,5 × 17,5 cm</p> </li> <li dir="ltr"> <p dir="ltr">Technologie : Stéréolithographie (SLA)</p> </li> <li dir="ltr"> <p dir="ltr">Taille du faisceau laser : 140 microns</p> </li> <li dir="ltr"> <p dir="ltr">Puissance du laser : 1 x Laser 250 mW</p> </li> <li dir="ltr"> <p dir="ltr">Épaisseur de couches : 25 - 300 microns</p> </li> <li dir="ltr"> <p dir="ltr">Plateau chauffant : avec ajustement de niveau automatique</p> </li> <li dir="ltr"> <p dir="ltr">Supports des pièces : générés automatiquement / Retrait avec outils</p> </li> </ul><h2 dir="ltr"><strong><img alt="aide supplémentaire" data-entity-type="file" data-entity-uuid="c3f03cf9-540b-4f39-96ca-1aec98d53b0d" height="34" src="/sites/default/files/inline-images/question.png" width="34" />  Besoin d’une aide supplémentaire ?</strong></h2> <p dir="ltr">Le Hub-C dans le cadre de ses services d’accompagnement numérique organise des workshops et groupes de travail en lien avec les nouvelles technologies de prototypages.  Vous souhaitez un accompagnement pour votre projet innovant ou vous souhaitez participer à un prochain workshop? N'hésitez pas à contacter <a href="https://www.hub-charleroi.be/fr/team">un membre du Hub</a> ou de la fab-team ou à consulter <a href="https://www.fablab-charleroi.be/agenda/a-venir/">les évènements à venir</a> du Fab-C! </p> <p>Vous avez une question spécifique à propos d’une fiche? Elles sont réalisées par les experts du <a href="https://www.cetic.be/">CETIC</a> (Centre d'Excellence en Technologies de l'Information et de la Communication), un  centre de recherche appliquée en informatique situé à Charleroi. Vous trouverez toutes les coordonnées <a href="https://www.cetic.be/Contact">ici</a>.</p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Wed, 11 Nov 2020 12:36:06 +0000 laurie 42 at http://toolbox.hub-charleroi.be La conception assistée par ordinateur (CAO/CAD) http://toolbox.hub-charleroi.be/fiche/la-conception-assistee-par-ordinateur-caocad <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--hover.html.twig x field--node--title.html.twig * field--node--hover.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">La conception assistée par ordinateur (CAO/CAD)</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--hover.html.twig * field--node--field-tags.html.twig * field--node--hover.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/Logiciel" hreflang="en">Logiciel</a></div> <div class="field__item"><a href="/Prototypage" hreflang="en">Prototypage</a></div> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--hover.html.twig x field--node--uid.html.twig * field--node--hover.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> <span lang="" about="/user/5" typeof="schema:Person" property="schema:name" datatype="">laurie</span> <!-- END OUTPUT from 'core/themes/classy/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--hover.html.twig x field--node--created.html.twig * field--node--hover.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Tue, 11/10/2020 - 10:55</span> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-pdf--hover.html.twig * field--node--field-pdf.html.twig * field--node--hover.html.twig * field--field-pdf.html.twig * field--file.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <div class="field field--name-field-pdf field--type-file field--label-above"> <div class="field__label">Télécharger le PDF</div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'file_link' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> <span class="file file--mime-application-pdf file--application-pdf"> <a href="http://toolbox.hub-charleroi.be/sites/default/files/2021-02/Fiche%20CAO.pdf" type="application/pdf; length=1522578" title="Fiche CAO.pdf">La conception assistée par ordinateur (CAO/CAD)</a></span> <!-- END OUTPUT from 'core/themes/classy/templates/field/file-link.html.twig' --> </div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--hover.html.twig * field--node--body.html.twig * field--node--hover.html.twig * field--body.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div class="field__item"><p dir="ltr">Vous êtes intéressés par le prototypage rapide sans pour autant être calé en dessin, calcul ou programmation?  La conception assistée par ordinateur, ou CAO, est une solution qui va vous intéresser!</p> <p>Si ces termes ne vous disent rien, pas de panique. Nous vous expliquons tout dans cette fiche : ce que c’est, son utilité, ses avantages,... et nous vous proposons également quelques logiciels libres et open source afin de découvrir cela par vous-mêmes!</p> <h2 dir="ltr"><strong><img alt="pour quoi faire" data-entity-type="file" data-entity-uuid="36f45317-7161-465a-987e-51d76edda56c" height="42" src="/sites/default/files/inline-images/goal2_5.png" width="42" />  Pour quoi faire ? </strong></h2> <p>La CAO, c’est-à-dire la conception assistée par ordinateur (ou computer aided design - CAD en anglais), est une technologie de conception et de documentation techniques qui remplace le dessin manuel par un processus automatisé. Grâce à des logiciels et à des techniques de modélisation géométrique, vous pouvez organiser des fonctions techniques, concevoir et  tester virtuellement des objets avant de le fabriquer véritablement. Un logiciel CAO facilite le design de votre pièce ou de votre série de pièces, que celles-ci soient complexes ou non.</p> <p> </p> <h3 dir="ltr"><strong>Les différences entre la CAO et le DAO</strong></h3> <p dir="ltr">Attention à ne pas confondre la CAO avec le DAO (Dessin Assisté par Ordinateur). </p> <p dir="ltr">Le DAO est une composante de la CAO, il remplace les tables et planches à dessin d’autrefois. Il s’agit de logiciels spécifiques permettant la conception et  l’édition de dessins techniques, de plans et modèles graphiques sur ordinateur. Les avantages du DAO sont </p> <ul><li dir="ltr"> <p dir="ltr">Une réalisation, une modification, un ajout ou une suppression rapide d’éléments. Faire cela sur un dessin réalisé à la main demande du temps et de nombreuses reproductions. </p> </li> <li dir="ltr"> <p dir="ltr">Une utilisation des données beaucoup plus facile : le DAO permet de gérer, transférer et reproduire les données beaucoup plus aisément. </p> </li> <li dir="ltr"> <p dir="ltr">Les données sont moins vulnérables qu’un dessin sur papier car elles peuvent être sauvegardées automatiquement.</p> </li> <li dir="ltr"> <p dir="ltr">Le risque d’erreurs est réduit : vous aurez beaucoup plus de précision avec une représentation 3D et les erreurs seront plus rapidement repérées. </p> </li> <li dir="ltr"> <p dir="ltr">L’association du dessin avec de nombreux outils vous permet d’obtenir de nombreux mélanges de couleurs et d’associer différents supports.</p> </li> </ul><p dir="ltr">En résumé  les logiciels CAO vous permettent de</p> <ul><li dir="ltr"> <p dir="ltr">rédiger plus facilement de la documentation de construction, </p> </li> <li dir="ltr"> <p dir="ltr">explorer des idées de conception, </p> </li> <li dir="ltr"> <p dir="ltr">visualiser des concepts grâce à des maquettes numériques et selon différents angles de vue,</p> </li> <li dir="ltr"> <p dir="ltr">simuler les performances d'une conception dans le monde réel.</p> </li> </ul><p dir="ltr">Autrement dit, vous pouvez gérer l’intégralité du cycle d’une production industrielle avec un logiciel CAO.</p> <p dir="ltr"> </p> <h3 dir="ltr"><strong>Quels sont les avantages d’un logiciel CAO ?</strong></h3> <p dir="ltr">Bien que certains logiciels CAO soient spécialisés selon un métier spécifique, il n’est pas nécessaire d’avoir des aptitudes particulières en dessin ou en programmation pour découvrir la CAO. Certains logiciels se trouvent à la portée de tous!</p> <p dir="ltr"> Les logiciels de Conception Assistée par Ordinateur augmentent grandement votre productivité grâce à l’automatisation de nombreuses tâches et à la réduction des délais d’exécution, mais également grâce à une planification exacte et à une grande précision de calculs : vous pouvez travailler de manière précise sur le design de votre produit sans craindre d’erreur dans le processus de conception. </p> <p dir="ltr"> Grâce à l’imagerie 2D et 3D, vous pouvez visualiser plus aisément votre objet, tant au niveau de son aspect, que de sa structure ou encore de son fonctionnement, avant même que celui-ci ne soit fabriqué. De cette façon, vous pouvez réaliser autant de simulations et de variations pour améliorer la qualité et l’esthétisme de vos produits sans que cela ne vous coûte un sous. </p> <p dir="ltr"> La CAO vous permet également d’accélérer votre prototypage en vous passant des moules et matrices traditionnellement réalisés pour les prototypes : il vous suffit de matérialiser vos fichiers CAO en objet grâce à l’impression 3D par exemple!</p> <p dir="ltr"> Répondre aux besoins et aux attentes de votre marché, surtout en termes de personnalisation de produits, n’aura jamais été aussi aisé et rapide!</p> <h2 dir="ltr"><strong><img alt="Pour qui?" data-entity-type="file" data-entity-uuid="d02fb935-a6eb-4553-9e6c-c3635d7a24e6" height="49" src="/sites/default/files/inline-images/people_0.png" width="49" />  Pour qui ? </strong></h2> <p dir="ltr">L’architecture, l’ingénierie, la construction mécanique, l’urbanisme, la médecine, les transports, l’ameublement, la métallerie, l’énergie, l’électronique, la confection de vêtements, l’outillage,.... Les applications des logiciels CAO sont presque infinies. Il est plus simple de dire que la Conception Assistée par Ordinateur s’adresse à vous si, dans votre domaine, vous devez établir un prototype afin de vérifier la faisabilité et la correspondance avec votre cahier des charges.</p> <h2 dir="ltr"><strong><img alt="matériel" data-entity-type="file" data-entity-uuid="32865807-91ec-452b-9c35-4478121e9ae4" height="36" src="/sites/default/files/inline-images/outils_4.png" width="36" />  Matériel requis :</strong></h2> <p dir="ltr">Il vous faut un ordinateur et un logiciel CAO, tout simplement! Nous vous en présentons plusieurs dans cette fiche.</p> <h2 dir="ltr"><img alt="concepts" data-entity-type="file" data-entity-uuid="d0087dcd-cd49-41c5-9bdf-a2b76acf3157" height="50" src="/sites/default/files/inline-images/book-open-shape_icon-icons.com_70792_1.png" width="50" /><strong>  Quelques clarifications... </strong></h2> <h3 dir="ltr">Y a-t-il une différence entre les expressions  « logiciel open source » et « logiciel libre »?</h3> <p dir="ltr">Un <strong>logiciel open source</strong>, comme son nom l'indique, est “ouvert”, c’est-à-dire que tout le monde a la possibilité d'accéder à son code source avec la possibilité d'étudier le fonctionnement du programme et de l'adapter à ses besoins. On peut également redistribuer le code source et créer des produits logiciels dérivés.</p> <p>Un <strong>logiciel libre</strong> est similaire à un logiciel open source mais la philosophie et l’éthique qui entourent ce concept vont plus loin. Avec un logiciel libre, vous avez la liberté d’exécuter le programme pour tous les usages que vous souhaitez, d’étudier le fonctionnement du programmes et de l’adapter à vos besoins, de redistribuer des copies (dans le but d’aider autrui) mais vous avez aussi la liberté d’améliorer le programme et d’en publier les améliorations dans le but d’en faire profiter la communauté. </p> <p>En conclusion un logiciel est forcément open source s'il est libre mais l'inverse n'est pas vrai : un logiciel peut être open source sans être libre. Les logiciels open source correspondent plutôt à une méthodologie de développement qui met en avant les avantages du partage du code et de la collaboration pour les entreprises; alors que les logiciels libres tendent plutôt vers  un mouvement social, avec une certaine philosophie et éthique propre. </p> <p>Donc, vous aurez compris que « logiciel libre » et « open source » ne sont pas synonymes.</p> <p> </p> <h3 dir="ltr"><strong>Pourquoi privilégier des logiciels libres et open source?</strong></h3> <p dir="ltr">Les logiciels libres et open source sont privilégiés pour leurs aspects didactiques car ils sont  toujours bien documentés. Le  partage aussi est plus facile d’autant qu’ils sont souvent gratuits. Idéalement il faut choisir de travailler avec des logiciels accessibles à tous les systèmes : Microsoft Windows, iOS d’Apple, et les systèmes GNU/LINUX (critère multiplateforme) .</p> <h2 dir="ltr"><strong>Logiciels de modélisation 3D</strong></h2> <p dir="ltr">Il existe des logiciels CAO spécifiques à chaque domaine, ou presque. Nous vous proposons une liste (non exhaustive) d'une série de logiciels CAO 2D/3D qui vous seront utiles pour réaliser vos projets en impression 3D. </p> <p dir="ltr"><a href="https://www.openscad.org/">OpenSCAD</a> – Logiciel de modélisation tridimensionnelle. Il a pour particularité de fonctionner de façon entièrement paramétrique, c’est-à-dire que la conception passe par la rédaction d’un script. Bien que ce logiciel soit intuitif, il n’est pas accessible à tout le monde : en effet, il faut quelques notions en codage.  Vous trouverez la documentation et une série de tutoriels <a href="https://www.openscad.org/documentation.html">ici</a>. </p> <p dir="ltr"><a href="https://www.freecadweb.org/">FreeCAD</a> – Voici un logiciel accessible et flexible! Il convient vraiment à tous les utilisateurs de CAO, débutants ou non. FreeCAD dispose d’excellents outils de modélisation 3D CAO, IAO (Ingénierie assistée par ordinateur), PLM (Product Lifecycle Management ). Ce logiciel est orienté vers le génie mécanique et le design de produits, mais il peut également convenir pour d’autres disciplines, telles que l’architecture ou d’autres branches de l’ingénierie. FreeCAD permet aussi de faire des dessins (sketch) 2D contraints. Voici l'accès à la <a href="https://wiki.freecadweb.org/Getting_started">documentation</a>.</p> <p><a href="https://www.blender.org/">Blender</a> – Il s’agit d’un un logiciel bien connu mais qui n’est pas vraiment adapté aux débutants. Il dispose de fonctions avancées de modélisation et de sculpture 3D, de dépliage UV, de texturage, de squelettage (“rigging”), et de simulations physiques (les armatures,...). Ces fonctionnalités permettent de réparer vos maillages et d’éviter les mauvaises surprises lorsque des pièces sortent des imprimantes 3D. Un tutoriel est à votre disposition <a href="https://www.blender.org/support/tutorials/">ici</a>. </p> <p dir="ltr"> <a href="https://www.tinkercad.com">Tinkercad </a>– Très facile à prendre en main et intuitif, ce logiciel de modélisation 3D est gratuit et parfait pour les débutants!  Il se base sur la géométrie de construction de solides, mais même les plus aguerris pourront trouver leur bonheur en complexifiant les modèles par combinaisons d’objets pourtant simples. Vos modèles peuvent être enregistrés en 3 formats différents: SVG, OBJ et STL (ce dernier format est utile pour l’impression 3D!). Le Fab-C vous propose d’ailleurs un <a href="https://www.youtube.com/watch?v=NZhK2zabRvk">tuto</a> pour modéliser votre projet avec ce logiciel!</p> <h2 dir="ltr"><img alt="Pour aller plus loin" data-entity-type="file" data-entity-uuid="c11ee2f1-717a-420e-8d67-3a1344a748c1" height="40" src="/sites/default/files/inline-images/footprint_1.png" width="40" /><strong>  Pour aller plus loin...</strong></h2> <p dir="ltr">Après cette introduction aux logiciels CAO, vous pouvez maintenant vous lancer dans la réalisation de vos prototypes ou produits… et pourquoi pas vous intéresser à l’<a href="https://toolbox.hub-charleroi.be/node/42/edit?destination=/admin/content">impression 3D</a> ! En effet, cette technologie nécessite justement d’utiliser des fichiers 3D! </p> <p dir="ltr"> </p> <!-- THEME DEBUG --> <!-- THEME HOOK: 'filter_caption' --> <!-- BEGIN OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --> <figure role="group" class="caption caption-img align-center"><img alt="CAO" data-entity-type="file" data-entity-uuid="4a80b12f-1383-4140-9a8b-0d7c9ecee9be" height="139" src="/sites/default/files/inline-images/CAO.PNG" width="439" /><figcaption><em>              Illustration du processus de modélisation de votre idée</em></figcaption></figure><!-- END OUTPUT from 'core/themes/classy/templates/content-edit/filter-caption.html.twig' --><p> </p> <p>N'hésitez pas à contacter le HUB Créatif et à demander plus d’infos sur les services d’accompagnement numérique pour la réalisation de vos projets innovants. Vous pouvez aussi prendre contact avec le FAB LAB de Charleroi pour l'utilisation de machines comme l’imprimante 3D, la découpeuse laser, la fraiseuse numérique et autres. </p> <h2 dir="ltr"><strong><img alt="aide supplémentaire" data-entity-type="file" data-entity-uuid="cb1dae9e-4dae-47de-ad36-787da33d31f3" height="39" src="/sites/default/files/inline-images/question_0.png" width="39" />   Besoin d’une aide supplémentaire ?</strong></h2> <p dir="ltr">Le Hub-C dans le cadre de ses services d’accompagnement numérique organise des workshops et groupes de travail en lien avec les nouvelles technologies de prototypages.  Vous souhaitez un accompagnement pour votre projet innovant ou vous souhaitez participer à un prochain workshop? N'hésitez pas à contacter <a href="https://www.hub-charleroi.be/fr/team">un membre du Hub</a> ou de la fab-team ou à consulter <a href="https://www.fablab-charleroi.be/agenda/a-venir/">les évènements à venir</a> du Fab-C! </p> <p dir="ltr"><br /> Vous avez une question spécifique à propos d’une fiche? Elles sont réalisées par les experts du <a href="https://www.cetic.be/">CETIC</a> (Centre d'Excellence en Technologies de l'Information et de la Communication), un  centre de recherche appliquée en informatique situé à Charleroi. Vous trouverez toutes les coordonnées <a href="https://www.cetic.be/Contact">ici</a>.</p></div> </div> <!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' --> Tue, 10 Nov 2020 09:55:58 +0000 laurie 43 at http://toolbox.hub-charleroi.be