La domotique Open Source pour rendre plus accessible l ... · projetsdiy.fr Version française...
Transcript of La domotique Open Source pour rendre plus accessible l ... · projetsdiy.fr Version française...
projetsdiy.fr
La domotique Open Source pour rendre plus accessible l’apprentissage des IoT
projetsdiy.fr
projetsdiy.fr
Nombreuses technologies partagées entre Open Source
et industrie
projetsdiy.fr
Quelques chiffres sur le blog
projetsdiy.fr
Version française Lancée en Avril 2016
Visiteurs (annuel)
Visites quotidiennes (valeur moyenne) Pages / an
2016 60 900 220 183 000
2017 306 000 840 +1 million
2018 428 000 1170 +1,4 million
projetsdiy.fr
Version anglaise Lancée en novembre 2016
Visiteurs (annuel)
Visites quotidiennes (valeur moyenne) Pages / an
2016 2400 4800
2017 290 000 795 692 000
2018 563 000 1500 +1,3 million
projetsdiy.fr
Communauté
• Newsletter : ~ 700 abonnés
• Forum
• Lancé en septembre 2018
• 80 utilisateurs réguliers
• + 200 sujets
• Réseaux sociaux
• FB : + 1000
• Tweeter : ~ 700
• Youtube : ~ 650
projetsdiy.fr
Thèmes abordésImpression 3D
11 %
Mini-PC25 %
Objets connectés33 %
Domotique31 %
projetsdiy.fr
Choix des matériels pour les tutoriels
projetsdiy.fr
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
Shields à empiler
Aucune soudure, aucun circuit => idéal pour débuter
projetsdiy.fr
M5Stack : plateforme de prototype / apprentissage
ESP32 Ecran OLED couleur Grove (I2C + signaux A/N) M-Bus
16 modules : joystick, LoRa, GSM, servo… 40 Units : capteurs, caméra, clavier…
Programmation C++ (librairie Arduino) Micropython UIFlow (adaptation Blocky)
projetsdiy.fr
Projet Musidose
Batterie 18650 3000mAh
ESP8266 (Wemos d1 mini) Shield lecteur carte SD Shield écran OLED (126x64 pixels)
Indicateurs (anneau 16 LEDS) TWA Décibel (temps réel)
Base double Shield E/S
Mesure volume sonore Gravity Sound Level Meter v1.0
projetsdiy.fr
ObjectifsRé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*)
* TWA : Time Weighted Average ou niveau sonore pondéré dans le temps
projetsdiy.fr
Schéma fonctionnel
s
Dose (%)
dose;twa;dbA
projetsdiy.fr
Optimisation du code C++ D = 100 (C(1)/T(1) + C(2)/T(2) + ... + C(n)/T(n)) : exprimé en %
en dB
TWA = 3 ×log( dose
100 )
log(2)+ 85
projetsdiy.fr
Quelques résultats
projetsdiy.fr
Quel budget pour débuterCarte de développement Ordinateur carte ARM
(SBC) Mini-PC NAS
ATMega, SAMD21, STM32
ESP8266WiFi
ESP32 WiFi +
BluetoothRaspberry Pi x86 x86
Budget plateforme
seule15 € 80 € 150 € 550 €
Robotique kit débutant à partir de 60 €
Capteur kit débutant à partir de 30 €
projetsdiy.fr
Volume des ventes*
* basé sur les volumes des ventes affichées sur le site AliExpress en mai 2019. Classement par commandes
STM3213 444
ESP3224 077
Arduino (ATMega 328P)32 399
SAMD21-M0530
ESP826636 576
STM3213 %
ESP3222 %
Arduino (ATMega 328P)30 %
SAMD21-M00 %
ESP826634 %
projetsdiy.fr
Répartition des ventes de cartes ESP8266
0
5000
10000
15000
20000
Format générique Wemos d1 mini Uno R3 ESP01 LoLin d1 mini
50% 2% 5% 5% 38%
projetsdiy.fr
Répartition des ventes de cartes ESP32
0
5000
10000
15000
20000
Format générique + Caméra + écran OLED + LoRa Uno R3
79% 15% 4% 1% 1%
projetsdiy.fr
SMT32 les plus utilisésCore M3 (STM32F103C8T6) Core M4 (STM32F407VET6)
92%
8%
projetsdiy.fr
Comparaison de quelques MCUSpécification ATMega328P ESP8266EX ESP32 (2019) SAMD21 STM32 (F103C8T6) STM32 (F407VET6)
Core AVR 8-bits Tensilica L106 32-bit RISC
Xtensa 32-bit LX6 (1 ou 2 Cores) ARM M0 ARM M3 ARM M4
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
SRAM 512/1K/1K/2KB Partagée < 36KB 520 KB 4/8/16/32 KB 20 KB 192+4 Kbytes
Timersx2 (8 bits)
x1 (16 bits)
x5 (16-bits)
x3 (24-bits)
x3 (16-bits)
x2 watchdog
x12 (16-bits)
x2 (32-bits)
Cryptage (accélération matériel)
AES (FIPS PUB 197), SHA (FIPS PUB 180-4),
RSA, et ECCAES 128, 192, 256, DES, MD5, SHA-1
Debug USB (série) USB (série) USB (série) + JTAG USB (série) Série (SWD) + JTAG Série (SWD) + JTAG
Economie énergieIdle, ADC
Noise Reduction,
Power-save,
Active, modem-sleep, light-sleep,
deep-sleepActive, modem-sleep, light-sleep, deep-sleep Idle, Standly Sleep, Stop, Standby Sleep, Stop, Standby
projetsdiy.fr
Comparaison de quelques MCUSpé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
E/S (GPIO) x23 x17 x34 x52 26/37/51/80 x140 (dont 138 tolérantes 5V)
SDIO x2 (slave) x1 x1
Interface tactile x10 (capacitif) x256 (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
Bluetooth LE 4.x Oui * au total
projetsdiy.fr
Attention au choix des composants
Risque de déconvenue avec des composants low cost
projetsdiy.fr
Quelques exemplesTempérature Polluants (CO2, gaz…) Décibels
Pour l’apprentissage DHT22 MQ2, MQ135 MAX9814
Pour la mesure physique SHT30 MHZ-19 (CO2) DFRobot Gravity Sound Level Meter
moins de 4€
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
driver, i2c, uart
principe de mesure
Algorithmes optimisés pour MCU Communication avec serveur distant
Traitement du signal (FFT, classification, moyenne mobile…)
Analyse vibratoire, maintenance prédictive, big data, IA…
projetsdiy.fr
Sujets traités sur Projets DIYAcquisition Asservissements Traitement local Communication Traitement déporté
Capteurs Actionneurs Interfaces MCU Logiciel NRJ Protocoles Couche matérielle Développement Stockage
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
Santé Mini-PC x86 Z-Wave+ Raspberry Pi Jeedom / 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
Johny Five
Fond vert : sujet disponible
projetsdiy.fr
2 guides pour les débutants ou étudiants en IoT
Lien vers l’articlebit.ly/2VZhvFA
• 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
• Solutions d’alimentation
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
◦Visualiser des données Lien vers l’articlebit.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
• Protocoles domotiques Lien vers l’articlebit.ly/29hHlR
projetsdiy.fr
Logiciels domotiques les plus utilisés en France en 2019*
* sondage réalisé sur le blog projetsdiy (Août 2018 à Avril 2019) - 1050 votants (2 votes max.)
Domoticz29 %
Jeedom42 %
Autres6 %
Box3 %
OpenHAB5 %
Enceinte connectée6 %
HomeAssistant9 %
projetsdiy.fr
Quelques exemples de projets avancés
projetsdiy.fr
Station météo autonome avec interface HTML
bit.ly/2EaFk3q
projetsdiy.fr
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
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
bit.ly/2woY4Yy
projetsdiy.fr
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ésMQTT 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