la domotique open source pour rendre plus accessible l ... · projetsdiy.fr version française...

Post on 30-Jun-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Tutoriels

bit.ly/2WMoQppbit.ly/2Hm5zpj

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

top related