Vous êtes sur la page 1sur 54

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 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
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
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
Thèmes abordés
Impression 3D
11 %
Domotique
31 %

Mini-PC
25 %

Objets connectés
33 %
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 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

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