PROJETSDIY.FR - LA DOMOTIQUE OPEN SOURCE POUR RENDRE PLUS ACCESSIBLE L'APPRENTISSAGE DES IOT - COLLOQUE GEII

 
CONTINUER À LIRE
PROJETSDIY.FR - LA DOMOTIQUE OPEN SOURCE POUR RENDRE PLUS ACCESSIBLE L'APPRENTISSAGE DES IOT - COLLOQUE GEII
La domotique Open Source pour rendre
                plus accessible l’apprentissage des IoT

                              projetsdiy.fr
projetsdiy.fr
PROJETSDIY.FR - LA DOMOTIQUE OPEN SOURCE POUR RENDRE PLUS ACCESSIBLE L'APPRENTISSAGE DES IOT - COLLOQUE GEII
Nombreuses technologies
    partagées entre Open Source
            et industrie

projetsdiy.fr
PROJETSDIY.FR - LA DOMOTIQUE OPEN SOURCE POUR RENDRE PLUS ACCESSIBLE L'APPRENTISSAGE DES IOT - COLLOQUE GEII
Quelques chiffres sur
                      le blog

projetsdiy.fr
PROJETSDIY.FR - LA DOMOTIQUE OPEN SOURCE POUR RENDRE PLUS ACCESSIBLE L'APPRENTISSAGE DES IOT - COLLOQUE GEII
Version française
         Lancée en Avril 2016

                         Visiteurs   Visites quotidiennes
                                                            Pages / an
                         (annuel)     (valeur moyenne)

                2016      60 900             220             183 000

                2017     306 000             840            +1 million

                2018     428 000            1170            +1,4 million

projetsdiy.fr
PROJETSDIY.FR - LA DOMOTIQUE OPEN SOURCE POUR RENDRE PLUS ACCESSIBLE L'APPRENTISSAGE DES IOT - COLLOQUE GEII
Version anglaise
         Lancée en novembre 2016

                        Visiteurs   Visites quotidiennes
                                                           Pages / an
                        (annuel)     (valeur moyenne)

                2016      2400                                4800

                2017    290 000             795             692 000

                2018    563 000            1500            +1,3 million

projetsdiy.fr
PROJETSDIY.FR - LA DOMOTIQUE OPEN SOURCE POUR RENDRE PLUS ACCESSIBLE L'APPRENTISSAGE DES IOT - COLLOQUE GEII
Communauté

         •      Newsletter : ~ 700 abonnés      •   Réseaux sociaux

         •      Forum                               •   FB : + 1000

                •   Lancé en septembre 2018         •   Tweeter : ~ 700

                •   80 utilisateurs réguliers       •   Youtube : ~ 650

                •   + 200 sujets

projetsdiy.fr
PROJETSDIY.FR - LA DOMOTIQUE OPEN SOURCE POUR RENDRE PLUS ACCESSIBLE L'APPRENTISSAGE DES IOT - COLLOQUE GEII
Thèmes abordés
                          Impression 3D
                              11 %
                                              Domotique
                                                31 %

                Mini-PC
                 25 %

                                Objets connectés
                                      33 %
projetsdiy.fr
PROJETSDIY.FR - LA DOMOTIQUE OPEN SOURCE POUR RENDRE PLUS ACCESSIBLE L'APPRENTISSAGE DES IOT - COLLOQUE GEII
Choix des matériels
                 pour les tutoriels

projetsdiy.fr
PROJETSDIY.FR - LA DOMOTIQUE OPEN SOURCE POUR RENDRE PLUS ACCESSIBLE L'APPRENTISSAGE DES IOT - COLLOQUE GEII
Critères de choix

         •      Open Source / Open Hardware (le plus possible)

         •      Grand public : faible coût

         •      Shields (sans soudure, sans fabrication de circuit)

         •      Fonction sur carte (jumpers)

projetsdiy.fr
PROJETSDIY.FR - LA DOMOTIQUE OPEN SOURCE POUR RENDRE PLUS ACCESSIBLE L'APPRENTISSAGE DES IOT - COLLOQUE GEII
Shields à empiler

                Aucune soudure, aucun circuit => idéal pour débuter

projetsdiy.fr
M5Stack : plateforme de
                prototype / apprentissage
 ESP32                       16 modules : joystick,   Programmation
 Ecran OLED couleur          LoRa, GSM, servo…        C++ (librairie Arduino)
 Grove (I2C + signaux A/N)   40 Units : capteurs,     Micropython
 M-Bus                       caméra, clavier…         UIFlow (adaptation Blocky)

projetsdiy.fr
Projet Musidose
                ESP8266 (Wemos d1 mini)
                Shield lecteur carte SD             Base double
                Shield écran OLED (126x64 pixels)   Shield E/S
  Mesure volume sonore
  Gravity Sound Level Meter v1.0

                                                                  Batterie 18650
                            Indicateurs (anneau 16 LEDS)            3000mAh
                             TWA Décibel (temps réel)

projetsdiy.fr
Objectifs
         Réalisé dans ce cadre de l’obtention du brevet de fin de 2nd
         cycle en formation musicale
         Objectifs :
         • Mesurer l’exposition sonore des professeurs et des musiciens
         • Enregistrer les mesures pour analyse ultérieure sur carte SD
         • Donner des informations visuelles
            • Mesure instantanée (dBA)
            • Dose journalière consommée (%)
            • dBA équivalent journalier (TWA*)
projetsdiy.fr   * TWA : Time Weighted Average ou niveau sonore pondéré dans le temps
Schéma fonctionnel

                                 s

                      Dose (%)

projetsdiy.fr                        dose;twa;dbA
Optimisation du code C++
   D = 100 (C(1)/T(1) + C(2)/T(2) + ... + C(n)/T(n)) : exprimé en %

                             dose
                        log( 100 )
 TWA = 3 ×                               + 85
                          log(2)
 en dB

projetsdiy.fr
Quelques résultats

projetsdiy.fr
Quel budget pour débuter
                                                      Ordinateur carte ARM
                     Carte de développement                                Mini-PC   NAS
                                                              (SBC)

                ATMega,                  ESP32
                            ESP8266
                SAMD21,                  WiFi +            Raspberry Pi     x86      x86
                              WiFi
                 STM32                  Bluetooth

   Budget
 plateforme                   15 €                             80 €        150 €     550 €
    seule

 Robotique                             kit débutant à partir de 60 €

   Capteur                             kit débutant à partir de 30 €

projetsdiy.fr
Volume des ventes*
                  STM32                                         STM32
                  13 444                                         13 %

                            ESP8266                                            ESP8266
 ESP32                       36 576                ESP32                        34 %
 24 077                                            22 %

                                                                                       SAMD21-M0
                                       SAMD21-M0                                          0%
                                          530

                Arduino (ATMega 328P)                        Arduino (ATMega 328P)
                        32 399                                        30 %
* basé sur les volumes des ventes affichées sur le site AliExpress en mai 2019. Classement par commandes
projetsdiy.fr
Répartition des ventes de
                       cartes ESP8266
 20000
                     50%            38%           5%       5%         2%

 15000

 10000

  5000

       0
                Format générique Wemos d1 mini   Uno R3   ESP01   LoLin d1 mini
projetsdiy.fr
Répartition des ventes de
                        cartes ESP32
                     79%
20000
                                     15%          4%          1%        1%

15000

10000

  5000

       0
                Format générique   + Caméra   + écran OLED   + LoRa   Uno R3
projetsdiy.fr
SMT32 les plus utilisés
                Core M3 (STM32F103C8T6)   Core M4 (STM32F407VET6)

                                  92%

                                                              8%

projetsdiy.fr
Comparaison de quelques MCU
    Spécification        ATMega328P        ESP8266EX             ESP32 (2019)              SAMD21         STM32 (F103C8T6)      STM32 (F407VET6)

                                         Tensilica L106 32- Xtensa 32-bit LX6 (1 ou
        Core              AVR 8-bits                                                       ARM M0              ARM M3                ARM M4
                                             bit RISC              2 Cores)

  Puissance DMIPS             20                 ?                 600 max.                    ?                  90                   225

     Fréquence             20 MHz            160 MHz            80 ou 240 MHz              48 MHz               72 MHz               180 MHz

   Mémoire Flash         4/8/16/32 KB          2 MB                  4 MB              32/64/128/256 KB    64 ou 128 Kbytes         1 Mbytes

                         512/1K/1K/
       SRAM                              Partagée < 36KB            520 KB               4/8/16/32 KB           20 KB             192+4 Kbytes
                            2KB

                          x2 (8 bits)                                                     x5 (16-bits)        x3 (16-bits)         x12 (16-bits)
       Timers
                          x1 (16 bits)                                                    x3 (24-bits)       x2 watchdog           x2 (32-bits)
                                                             AES (FIPS PUB 197),
Cryptage (accélération                                                                                                          AES 128, 192, 256,
                                                            SHA (FIPS PUB 180-4),
      matériel)                                                                                                                 DES, MD5, SHA-1
                                                                RSA, et ECC

       Debug              USB (série)       USB (série)       USB (série) + JTAG          USB (série)     Série (SWD) + JTAG   Série (SWD) + JTAG

                          Idle, ADC       Active, modem-
                                                              Active, modem-sleep,
  Economie énergie          Noise        sleep, light-sleep,                             Idle, Standly    Sleep, Stop, Standby Sleep, Stop, Standby
                                                             light-sleep, deep-sleep
                          Reduction,        deep-sleep
projetsdiy.fr            Power-save,
Comparaison de quelques MCU
   Spécification    ATMega328P      ESP8266EX      ESP32 (2019)        SAMD21           STM32 (F103C8T6) STM32 (F407VET6)

UART                     x1             x2               x3                x6*                 x3          x6 (11.25 Mbit/s max.)

SPI                      x1             x2               x3                x6*            x2 (18 Mbit/s)    x3 (45 Mbit/s max.)

I2C                      x2             x1               x2                x1                  x2                   x3

I2S                                     x1               x2                x6*                                      x2

PWM                      x6             x4              x16                                x1 (16-bits)

ADC                  x8 (10-bits)   x1 (10-bits)    x2 (12-bits)      x1 (12-bits)         x2 (12-bits)         x3 (12-bits)

DAC                                                 x8 (8-bits)       x1 (10-bits)                              x2 (12-bits)

CAN 2.0                                                  x1                                    x1                   x2
                                                                                                              x140 (dont 138
E/S (GPIO)               x23            x17             x34                x52             26/37/51/80
                                                                                                              tolérantes 5V)
SDIO                                 x2 (slave)          x1                                                         x1
                                                                     x256 (capacitif,
Interface tactile                                  x10 (capacitif)
                                                                       proximité)
Infrarouge                              x1               x8

Caméra                                                                                                              x1

Ethernet                                                 x1                                                   x1 IEEE 1588v2

USB 2.0 micro-OTG                                        x1                x1                  x1                   x2

WiFi                                802.11 b/g/n    802.11 b/g/n

projetsdiy.fr
Bluetooth LE 4.x                                        Oui                                                       * au total
Attention au choix
                 des composants
            Risque de déconvenue avec des composants low cost

projetsdiy.fr
Quelques exemples
                             Température   Polluants (CO2, gaz…)         Décibels

     Pour l’apprentissage      DHT22           MQ2, MQ135                MAX9814

         moins de 4€

                                                                   DFRobot Gravity Sound
   Pour la mesure physique     SHT30          MHZ-19 (CO2)
                                                                       Level Meter

          jusqu’à 40€

projetsdiy.fr
Les outils Open Source
              à notre disposition
                Un aperçu des solutions les plus utilisées

projetsdiy.fr
IoT DIY

projetsdiy.fr
Connaissances dépendent du stade
                    de développement

                           Algorithmes optimisés pour MCU
                           Communication avec serveur distant
                                                                Analyse vibratoire, maintenance
                                                                   prédictive, big data, IA…

      principe de mesure    Traitement du signal (FFT,
                            classification, moyenne mobile…)

      driver, i2c, uart

projetsdiy.fr
Sujets traités sur Projets DIY
    Acquisition             Asservissements                          Traitement local                                    Communication                            Traitement déporté
                                                                                                                                        Couche
      Capteurs               Actionneurs      Interfaces     MCU                 Logiciel           NRJ           Protocoles                                Développement            Stockage
                                                                                                                                       matérielle
 Bruit / microphone           Ecrans ePaper    1-Wire        Atmega              Blockly           Batterie        HTTP(S)              Bluetooth              Johny-Five            InfluxDB

        Caméra               Ecrans OLED        ADC          ATTiny                C++             Solaire          MQTT                  GSM                  Node-RED              MongoDB
         CO2                      LED           CAN          ESP32                 Lua            Deep Sleep   Radio sans licence         LoRa                Python, C++             MySQL
       Courant                Moteur DC         DAC         ESP8266            MicroPython                           Série          Radio (MySensors)           NodeJS                SQLite

       Distance                 Pas à pas        I2C           PIC                                                Websockets              USB               OpenCV (vision)

       Humidité               Servo-moteur       I2S        SAMD21         Environnements dev.                                            WiFi          IA / Réseaux de neurones   IHM / Courbe
     Luminosité                  CNC            PWM          STM32             Atmel Studio                                                                                           Grafana

 Particules (PM2.5)                              SPI                           IDE Arduino                        Domotique                                   Plateformes           Node-RED

   Polluants (CO2)                              UART          ARM               PlatformIO                         EnOcean                              Ordi carte ARM (Armbian)

    Pression Atm.                                          Raspberry Pi           Eclipse                        Homebridge                                     Docker              Domotique
Pression mécanique                                          Orange Pi           MPLAB X                             RFLink                                  Machine Virtuelle        Domoticz

         RFID                                                                STM32CubeIDE                           Zigbee                                        NAS              Home Assistant
                                                                                                                                                                                     Jeedom /
         Santé                                             Mini-PC x86                                             Z-Wave+                                    Raspberry Pi
                                                                                                                                                                                     NextDom
     Température                                                           Firmwares dédiés IoT                                                               Mini PC x86            OpenHAB

Vent (vitesse, direction)                                                         Blynk                                                                                                Homy

   Humidité du sol                                                               Cayenne

                                                                                 ESPEasy

                                                                                 Espurna

                                                                              Homie (MQTT)

                                                                             MySensors (radio)

                                                                             Tasmota (MQTT)

                                                                                Robotique
projetsdiy.fr                                                                   Johny Five                                                                 Fond vert : sujet disponible
2 guides pour les débutants
             ou étudiants en IoT
 • Quelques plateformes pour IoT : ATTiny,
    ATMega, SAMD21, ESP8266, ESP32,

    ordinateurs carte ARM, Mini-PC x86

 • Choix de la plateforme et format en
    fonction de l’application

 • E/S et protocoles de communication :
    UART, I2C, SPI, DAC, 1-Wire

 • Principaux capteurs et actionneurs
                                             Lien vers l’article
 • Solutions d’alimentation                  bit.ly/2VZhvFA
projetsdiy.fr
2 guides pour les débutants
             ou étudiants en IoT
•   Quel environnement de développement
    choisir ? IDE Arduino, PlatformIO, Eclipse...
•   Quel protocole utiliser pour communiquer avec
    des objets connectés ? Bluetooth, HTTP, MQTT,
    port série, Websockets
•   Comment exploiter les données et piloter un
    objet connecté
     ◦ Serveur domotique
     ◦ Développer rapidement une interface et des
        règles de fonctionnement avec Node-RED
     ◦ Stocker des données dans une base de
        données
                                                    Lien vers l’article
     ◦ Visualiser des données                       bit.ly/2W15DDj
projetsdiy.fr
Débuter avec la domotique Open Source

  • Quelle plateforme choisir ? ordinateur carte, NAS, mini-PC x86, box
      dédiée

  • Logiciels Open Source actifs en 2019
                                                         Lien vers l’article
  •   Protocoles domotiques
                                                         bit.ly/29hHlR
projetsdiy.fr
Logiciels domotiques les plus
          utilisés en France en 2019*
                                           HomeAssistant
                                               9%
                                                   Enceinte connectée
                   Domoticz                               6%
                    29 %                                   OpenHAB
                                                              5 % Box
                                                                    3%
                                                                         Autres
                                                                          6%
                                        Jeedom
                                         42 %

* sondage réalisé sur le blog projetsdiy (Août 2018 à Avril 2019) - 1050 votants (2 votes max.)
projetsdiy.fr
Quelques exemples
                de projets avancés

projetsdiy.fr
Station météo autonome
                  avec interface HTML

projetsdiy.fr                       bit.ly/2EaFk3q
Notions abordées
         •   Interface I2C (BMP180), librairies C++ (DHT22)

         •   Gestion connexion WiFi

         •   Comment développer une interface de commande en HTML

                •   Notions de Javascript / HTML5

                •   Bootstrap (éléments graphiques stylisés)

                •   Interaction code Arduino / interface HTML

                •   Tracer des courbes avec la librairie Google Charts

         •   Requêtes HTTP : récupération de l’heure sur un serveur de temps

         •   Stocker / recharger / des données dans la mémoire du MCU (format JSON)

         •   Tous les articles bit.ly/2EaFk3q

projetsdiy.fr
Bras robotique piloté en WiFi

                HTTP vs Websocket

projetsdiy.fr
Matériel utilisé
      •   Raspberry Pi 3

          •     Serveur

          •     Décode les mouvements d’un gamepad avec la librairie evdev

          •     Envoyer des commandes (mouvements) en Websocket ou requêtes
                HTTP

      •   Carte de développement WiFi (ESP8266)

          •     ESPDuino (format Uno R3) + Shield PCA9685 bit.ly/2WMoQpp

      •   Kit robotique 6DDL (6 servo-moteurs 180°)

projetsdiy.fr
Tutoriels

                bit.ly/2Hm5zpj       bit.ly/2WMoQpp
projetsdiy.fr
Notions abordées
         •   Environnement Linux

         •   Programmation

                •   Programmer en Python, utiliser une librairie (evdev)

                •   Communication Websocket. Librairies python ws4py et Websocket pour ESP8266 (bit.ly/
                    2LIoHlE)

                •   Requêtes HTTP (Python / C++ Arduino)

         •   Robotique

                •   Servo-moteurs : type, programmation, limites

                •   Choix du protocole de communication : effet mesurable sur les mouvements (HTTP,
                    Websocket)

                •   Langage dédié à la robotique : Johnny-Five (bit.ly/2Q8E70Z)

         •   Tous les articles bit.ly/2JnICEG

projetsdiy.fr
Homy

                Client pour logiciels domotiques Open
                  Source et Objets connectés MQTT

projetsdiy.fr                                      bit.ly/2woY4Yy
Homy
         • Application iOS / android
         • Disponible pour smartphones et tablettes
         • Cible en priorité la domotique et les objets connectés Open
                Source
         •      Priorité :
                • Respect de la vie privée et des données personnelles
                • Aucun traçage d’activité
                • Aucun serveur tiers
         •      Limitations implicites
                • Exécution d’événements programmés impossibles

projetsdiy.fr
Homy
  • Lancé le 20 décembre 2018
  • Encore en phase bêta (7ème version)
  • Orienté DIY / Open Source
  • Logiciels domotiques supportés : Jeedom, Domoticz,
      Home Assistant, box CPL Wattlet

  • Code cross-platform (HTML5 + JS + CSS) développé avec
      Ionic3

  • ~1550 utilisateurs (13% iOS / 87% Android)
projetsdiy.fr
Principe de Homy

                          Tous les messages entrant sont standardisés
                Les messages sortants sont formatés suivant l’API du serveur / objet

projetsdiy.fr
Sans serveur intermédiaire

                    L’utilisateur doit configurer sa box internet
Homy accède directement à l’application domotique ou l’IoT en WiFi ou internet mobile

projetsdiy.fr
Via un broker MQTT en ligne

                 L’utilisateur utilise (ou installe) un broker MQTT en ligne
                Toutes les commandes et données transitent par le broker
                            Homy se connecte au broker MQTT

projetsdiy.fr
Protocoles supportés
                          MQTT   HTTP   HTTPS   Websockets (wss)

          Domoticz
                          ✓      ✓      ✓
   Jeedom / NextDom
                                 ✓      ✓
     Home Assistant
                                                      ✓
 Projets DIY (Arduino /
  ESP8266 / ESP32…)       ✓
     Box CPL Wattlet
                                 ✓
projetsdiy.fr
Quelques interfaces

projetsdiy.fr
Prochaines versions
   •   Réécriture complète du code => passage du framework Ionic 3 à ReactNative

        •   Fluidité, meilleure expérience utilisateur

        •   Box TV, montres connectées

        •   Intégration plus facile des technologies mobiles :

             •   Accès sécurisé aux commandes par reconnaissance faciale / empreinte digitale

             •   Caméras onVIF, RTSP

   •   Commandes pour projets DIY (MQTT, Websocket, HTTP)

        •   Télécommande : RC, robotique

        •   Traceur de courbes

        •   Enregistreur de données

projetsdiy.fr
Nouvelle mise en
                  forme 2019
                    Meilleur accès au contenu

projetsdiy.fr
projetsdiy.fr
Menu Domotique

projetsdiy.fr
Menu Objets Connectés

projetsdiy.fr
Menu Projets

projetsdiy.fr
Vous pouvez aussi lire