Débuter avec les objets connectés DIY (2). Communiquer, programmer, stocker, visualiser, fabriquer des circuits • Domotique et objets connectés à faire soi-même

Dans la première partie de cet article, nous avons abordé le choix du micro-contrôleur, de la carte de développement (grand public), du bus de données et des composants disponibles pour réaliser des prototypes. Dans cet article, nous allons aborder les différents protocoles de communication (HTTP, MQTT, série, LoRa, GSM, Websockets…) ainsi que l’environnement de développement.

Vous pourrez intégrer très facilement vos projets à un serveur domotique. Pour aller plus loin, lisez ce guide.

Débuter avec les objets connectés DIY : thème abordés dans la 2nd partie

Dans la première partie de cet article, nous avons abordé les points suivants :

  • Les différents micro-contrôleurs (bon marché) et facile à programmer
  • Quel micro-contrôleur choisir (MCU) en fonction de l’application
  • Quelle source d’alimentation choisir
  • Les protocoles pour communiquer avec des capteurs et des actionneurs

Dans cette seconde partie de l’article consacrée à la fabrication d’objets connectés, nous allons aborder les thèmes suivants

  • 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

4z83ri366vimlwgnrkcj-2095948

Débuter avec les objets connectés : quel environnement de développement choisir ?

Lorsqu’on débute, ce qui compte le plus, c’est probablement l’aide que l’on peut trouver. Un développement, c’est bien souvent une suite de problèmes techniques (logiciels, électronique, mécanique…) qu’il faut résoudre. Plus la communauté est importante, plus vous aurez la chance de trouver la réponse à votre question ou votre problème. Bien souvent, il suffit de copier-coller le message d’erreur dans un moteur de recherche pour trouver une solution.

IDE Arduino, le plus facile

C’est l’éditeur officiel de la fondation Arduino. Il est disponible sur tous les systèmes (Windows, macOS, Linux x86 et Linux ARM). Ce n’est pas l’éditeur de code le plus moderne mais il fait très bien son travail et surtout il permet simplifier pas mal de choses lorsqu’on débute :

  • Installation / gestion des librairies (sans avoir besoin de relancer l’éditeur)
  • Installer de nouvelles cartes
  • Moniteur série pour la mise au point des programmes
  • Traceur de courbe (écoute du port série)

Pour ceux qui ne maitrise pas (encore) l’anglais, l’IDE Arduino est disponible en français.

ejksgzrd8ad2zxay2wpy-4429808

IDE Arduino sur la distribution Linux Ubuntu (vieux PC recyclé).

Platform.io, plus polyvalent

PlatformIO est un écosystème complet pour développer des objets connectés qui peut remplacer l’IDE Arduino pour des projets profesionnels. PIO est basé sur l’éditeur Open Source Atom développé par GitHub. PlatformIO (PIO) est un environnement de développement professionnel complet qui propose de très nombreux outils :

  • Un compilateur multi-plateforme,
  • Un gestionnaire de librairie,
  • Un deboggeur,
  • Un système de test unitaire,
  • La mise à jour et le monitoring série à distance (PIO Remote),
  • Un support des éditeurs en ligne (Cloud9 par exemple)
  • PIO en chiffres
    • 31 plateformes (Atmel IMU, Atml AVT, Atml SAM, ESP32, ESP8266, STM32…)
    • 18 frameworks
    • Plus de 600 cartes de développement
    • Plus de 6300 librairies listées !

Les services sont proposés sous la forme d’un abonnement mensuel (à partir de 9,99$). Une version Community permet d’utiliser toutes les fonctions de l’éditeur et de réaliser jusqu’à 50 mises à jour à distance par mois.

no0cqfxxdrxpkhxgdbtu-5223375

Le fonctionnement est un peu différent de l’IDE Arduino. Il y a quelques différences dans la programmation, mais rien de bien compliqué.

PlatformIO a été adopté par la plupart de développeurs car il est beaucoup plus simple de compiler pour différentes plateforme en créant un simple fichier de configuration. La force de PlatformIO est qu’il est capable de télécharger et d’installer toutes les librairies nécessaires à partir du fichier de configuration.

Même si vous ne l’utilisez pas au quotidien, vous serez certainement obligé de l’installer. Voici quelques articles pour découvrir PlatformIO

Les autres environnements

Il existe beaucoup d’autres environnement de développement. La plupart d’entre eux sont destinés à des usages professionnels. En voici quelque uns, n’hésitez pas à utiliser les commentaires pour compléter cette liste :

Quel protocole utiliser pour communiquer avec des objets connectés

Un objet connecté et rarement totalement autonome. On voudra très certainement récupérer des données ou piloter des actionneurs à distance. Pour cela on va avoir besoin de mettre en place un moyen et un langage de communication.

Bluetooth

Le bluetooth permet une communication directe avec le micro-contrôleur. L’ESP32 dispose d’une connectivité bluetooth native. Pour les autres micro-contrôleurs (Atmega, ESP8266, STM32…), il est possible d’ajouter un module HC-05 ou HC-06.

Le module HC-06 ne peut fonctionner qu’en mode “esclave”, c’est à dire qu’il ne peut que recevoir que des demandes d’appairage. Le module HC-06 est très simple à câbler et suffira pour la plupart des projets.

Le module HC-05 qui est un module “maître”, c’est à dire qu’il peut demander à un autre élément Bluetooth de s’appairer avec lui. Il peut aussi fonctionner en mode esclave comme le HC-06.

Le bluetooth fonctionne comme un port série. La vitesse et le volume reste réduit mais c’est largement suffisant pour faire des relevés ou piloter un servo-moteur depuis un smartphone (faible temps de latence).

  • Vitesse suffisante
  • Communication directe, aucune dépendance à une infrastructure
  • Intégré sur l’ESP32
  • Nombreuses appli mobile existent déjà (serial bluetooth)
  • Communication locale (30 m maxi. environ)
  • Faible volume de données
  • Non sécurisé (pas vraiment utile toutefois)
  • Reconnexion nécessaire au redémarrage, lancement appli
  • Déconnexion intempestives

GSM / GPRS

Le réseaux Sigfox ou LoRa sont encore réservé à des usages professionnels. Il n’est pas aussi simple de s’abonner (pour le moment) au réseau Sigfox ou LoRa qu’à un opérateur téléphonique. Pour un projet très éloigné ou hors de porté d’une gateway LoRa privée (11km en champ libre et 2km en zone dense), une carte d’extension  GSM est une bonne solution.

Avec une connexion 3G ou 4G pour pourrez vus connecter à un broker MQTT (un exemple à lire). En mode dégradé, vous pourrez envoyer des données via des SMS.

HTTP (HTTPS)

Le protocole HTTP est le standard de communication utilisé pour accéder à n’importe site sur internet. Ce protocole dispose d’un jeu de méthodes qui permettent de facilement communiquer avec un serveur

GET C’est la méthode la plus courante pour demander une ressource à un serveur.

HEAD Cette méthode permet de passer au serveur des paramètres. Identifiant ou Token d’authentification, type de méthode, format des données que l’on souhaite recevoir…

POST Cette méthode est utilisée pour transmettre des données. Les données pourront être mise en forme directement dans l’URL, par exemple http://ip_du_serveur/api.html?param1=a&param2=b

D’autres méthodes plus spécifiques existent OPTIONS, CONNECT, TRACE, PUT, PATCH, DELETE.

Le protocole HTTP est une bonne solution pour stocker des données directement dans une base de données (MySQL, MariaDB ou InfluxDB par exemple).

Les plusieurs tutoriels pour aller plus loin

LoRaWan ou Sigfox

LoRaWan et Sigfox sont des technologies de transmissions de données qui utilisent certaines fréquences radio sans licence et sans restriction. Les cartes de développement sont encore assez couteuses pour le moment.

Sigfox est un opérateur présent dans plus de 60 pays. Sigfox utilise la bande 868Mhz en Europe et 902Mhz aux US. Le protocole Sigfox peut envoyer jusqu’à 140 messages à 300bits/s par jour et le payload (contenu utile) de chaque message ne peut pas dépasser 12 octets. Le protocole Sigfox est bidirectionnel mais un objet Sigfox ne pourra pas recevoir plus de 4 messages par jour à des instants prédéfinis.

LoRa est un protocole radio conçu par la société Semtech (ancienne société Cycleo rachetée en 2012). LoRa utilise la bande de fréquences  868Mhz. LoRaWAN peut être opéré par un opérateur TélécomBT, Orange…  ou être déployé sur un réseau privé. Le protocole LoRa est bidirectionnel (sous conditions).

Sigfox et Lora permettent la création d’objets connectés fonctionnant sur batterie pendant plusieurs années. La portée peut atteindre 12km en région peu dense et 2km en zone urbaine pour le réseau LoRa.

Source des infos : https://www.webdyn.com/articles-radio/comparaison-sigfox-lora-lte/

Port série

On aurait tendance à l’oublier, mais le port série ne sert pas qu’à la mise au point d’un programme. On peut très facilement récupérer les données via un script Python, un flow Node-RED, un projet Processing.

La vitesse et le volume de données est largement suffisamment dans la majorité des cas.

Voici deux tutoriels qui pourrait vous intéresser.

MQTT

MQTT (Message Queuing Telemetry Transport) est un protocole de messagerie qui fonctionne sur le principe de souscription / publication qui a été développé à la base pour simplifier la communication entre les machines. Pour fonctionner il faut installer un serveur, qui est désigné par Broker. Vous pouvez installer votre propre Broker, ce que nous allons faire dans cet article. Vous pouvez l’installer sur quasiment toutes les plateformes dont les plus communes (Windows, Linux, Mac OS X….) mais aussi sur un Raspberry Pi (qui fonctionne sous Linux après tout).

Depuis novembre 2014, la version 3.1.1 de MQTT est devenue un standard international pour la communication entre machines (M2M) et les objets (IoT). Il est soutenu par la fondation OASIS qui regroupent de grands entreprises de l’industrie informatique et télécom (BlackBerry, Cisco, IBM, Kaazing, LogMeIn, M2Mi, MachineShop, PTC, Red Hat, Software AG, TIBCO…).

En plus de simplifier la communication, MQTT a été conçu pour économiser au maximum la batterie des appareils mobiles. MQTT consomme 11 fois moins d’énergie pour envoyer des messages et 170 fois moins pour en recevoir que le protocole HTTP. MQTT est également 93 fois plus rapide que le protocole HTTP.

Voici plusieurs tutoriels sur MQTT pour bien débuter ou aller plus loin.

Quel Broker MQTT Open Source choisir ?

Voici les principaux projets de brokers Open Source

  • ActiveMQ qui permet d’ajouter MQTT à un serveur Web Apache (Développé par la fondation Apache)
  • JoramMQ pour l’intégration de MQTT en Java
  • Mosquitto, le broker open-source le plus utilisé dans les projets DIY soutenu par la fondation eclipse.org
  • RabbitMQ, un projet open source disponible également avec un support commercial
  • EMQTT, un projet développé en Erlang/OTP est disponible sur Windows, macOS et Linux conçu pour recevoir de très nombreuses connexions (jusqu’à 1 million par serveur). Il est possible de créer un cluster (réseau de serveur) pour accroitre le nombres de connexions simultanées.

Mosquitto est un très bon choix. Il est disponible sur toutes les plateformes et s’installe en quelques minutes. Comme MQTT est un standard, quelque soit votre choix, vous pourrez communiquer avec vos objets de la même façon.

Débuter avec le Broker MQTT Mosquitto sur Raspberry Pi, Windows, macOS et Linux [Màj]

Radio sans licence. 315MHz, 433MHz, 868MHz, 2.4GHz

WiFi, Bluetooth, XBee, Zigbee, Z-Wave+ sont des technologies de transmission de données par onde radio propriétaires. Elles sont développées par un consortium d’entreprises. Il existe des modules radio génériques qui n’utilisent aucun protocole de communication propriétaire. Il y a deux solutions principales pour utiliser ces modules dans vos projets Arduino :

  • Gérer vous même la communication entre les 2 appareils. Dans ce cas, la bibliothèque VirtualWire (très bien expliquée en Français ici) est toute indiquée à cette usage. Bien-sûr il existe d’autres bibliothèques (Mirf, Radio…)
  • Utiliser la bibliothèque MySensors qui en plus de prendre en charge la transmission de données créé et gère un réseau d’objets connectés. Cette solution sera très bien adaptée pour développer ses propres capteurs ou actionneurs dans le cadre d’un projet domotique DIY.

Coté matériel, il y en a tellement qu’il est très difficile de tous les lister. Si vous souhaitez utiliser la librairie MySensors, le plus facile (et le moins cher) et d’opter pour un module à base de nRF24L01 de Nordic Semiconductor qui utilise la bande de fréquence 2,4GHz. Il est maintenant également supporté par la gateway RFLink.

Attention. Les fréquences radio sont soumises à une réglementation (différente dans chaque pays). Vérifiez que le module que vous désirez acheté est conforme à votre législation. Attention donc aux modules douteux, d’origine incertaine, sans spécifications techniques.

Voici quelques modules très courants que l’on trouve en direct de chine.

nwxzfay4ovpldfbevfyb-5486993  XD-RF-5V  : 315MHz

Ce sont les modules bas coût par excellence…mais attention aux performances (déconseillés pour fabriquer une gateway RFLink par exemple). Il existent dans plusieurs fréquences, 315 MHz (XD-FST) ou 433 MHz (XD-RF-5V). On peut espérer attendre 200m en champ libre et 20m en intérieur

APC220 : 433MHz

Module permettant de configurer la fréquence porteuse de 418 à 455MHz. Tension d’alimentation de 3.4V à 5.5V. Jusqu’à 1000m en champ libre. Environ 27€.

nRF24L01+ : 2.4GHz

Ce sont des modules très classiques très bien gérés par les librairies (MySensors) et le projet Open Source RFLink. Ces modules fonctionnent à 2.4GHz (identique au WiFi). Il existe plusieurs versions :

Avec une antenne externe, on peut espérer atteindre 1100m en champ libre à très bas débit (à vérifier en conditions réelles).

Voici une série d’articles sur la librairie MySensors pour vous lancer si le sujet vous intéresse

Websocket

Le protocole HTTP n’est pas adapté aux applications qui nécessitent des réponses rapides ou interactives. En effet, à chaque fois que le client fait une requête au serveur, on doit ouvrir une connexion et attendre la réponse du serveur. La communication se fait essentiellement dans le sens client vers serveur.

Le Websocket vise à résoudre ces problèmes. Le Websocket ouvre un tunnel de communication entre deux appareils. Ce tunnel reste ouvert jusqu’à ce que le client se déconnecte. Ce tunnel est bi-directionnel, c’est à dire qu’à n’importe quel moment le client peut envoyer des messages (JSON, binaire, texte…) et vis versa. Tout comme MQTT, le protocole Websocket est beaucoup plus rapide que HTTP comme le montre ce comparatif réalisé par Fatherjs. Si le sujet vous intéresse, vous pouvez lire l’étude compète ici.

Voici quelques tutoriels pour aller plus loin.

Communication WebSocket avec un ESP8266 ou Arduino en Python. Test avec la librairie ws4py sur Raspberry Pi

Piloter un bras robotique en WiFi avec un Gamepad depuis un Raspberry Pi (code Python evdev + WebSocket)

Synthèse, quel protocole choisir pour communiquer avec un objet connecté

Pour vous aider à choisir le protocole le mieux adapté à vos besoins, voici un tableau de synthèse qui prend en compte plusieurs critères :

  • Vitesse de communication
  • Fiabilité de la communication
  • Portée
  • Sécurité. Certains protocoles supportent le transfert de données cryptées
  • Volume de données transmissible. Du simple message (une température) à une image
Protocole Vitesse Portée Sécurité Fiabilité Volume de données
Bluetooth *** ** * *** ***
GSM/GPRS Dépend du réseau ***** Dépend du protocole **** ****
HTTP *** NA * ***** *****
HTTPS* *** NA ***** ***** *****
LoRa / Sigfox **** **** ***** ***** *
Port série **** Local * **** **
MQTT ***** NA Si sécurisé ***** *****
Radio sans licence ** *** * ** *
Websockets ***** NA Si sécurisé ***** *****

(*) Attention, vérifier que le micro-contrôleur supporte le protocole HTTPS.

NA. Non Applicable. Dépend de la couverture du réseau WiFi.

Exemple, une interface de contrôle accessible en WiFi (ou internet)

Il est possible de développer une interface pour contrôler ou visualiser l’état des capteurs et des détecteurs. Voici un exemple réalisé avec Bootstrap et Google Charts

o3zzt6lwgvn8x3yxlri2-5413475

Tous les tutoriels sur le sujet

Comment exploiter vos objets connectés

La plupart du temps, on voudra piloter ou récupérer les données d’un objet connecté à distance depuis un smartphone ou un ordinateur. Pour commencer, voici plusieurs exemples d’applications

A l’aide d’un serveur domotique

Utiliser un serveur domotique pour récupérer les mesures et piloter les actionneurs (relais, LED, pompe, moteur…) et probablement la méthode la plus rapide et la plus facile. Pour bien débuter avec la domotique, je vous conseille de commencer par lire cet article.

Débuter en domotique, choix du matériel, serveur, protocole

Développement rapide d’interface et des règles avec Node-RED

Node-RED (site officiel) est une boite à outil logicielle qui permet de quasiment tout faire. Node-RED est un projet Open Source supporté par IBM. Node-RED est devenu un projet incontournable. Node-RED fonctionne par un assemblage de blocs fonctionnels. Chaque bloc permet de réaliser un traitement, voici quelques exemples concrets :

  • Se connecter au port série d’un Arduino et lire les mesures d’un capteur
  • Extraire une mesure
  • Tracer une courbe sur une dashboard
  • Enregistrer la mesure dans une base de données locale (MySQL, MariaDB, InfluxDB, MongoDB…)
  • Envoyer une notification (email, pushbullet, tweet…) si un seuil est atteint

Les données passent d’un bloc à l’autre (d’un traitement à l’autre). Node-RED a entièrement été développé en Javascript. Il est possible de coder en Javascript si aucun node de permet de réaliser le traitement souhaité. Tous les Nodes et des exemples de Flows sont répertoriés ici (déjà plus de 3200). Votre projet pourra être intégré à un projet Javascript “classique”.  Suivez ce tutoriel officiel (en anglais) qui explique comment faire.

Voici un exemple de flow Node-RED qui permet de récupérer la mesure d’une sonde d’humidité et d’en tracer une courbe

Débuter avec l’Arduino et Node-RED. Enregistrer et afficher des mesures en JSON depuis le port série

Et la version en vidéo

  • Diversité des blocs
  • Connectivité : bases de données, serveurs distants
  • Très simple de créer une interface graphique (boutons, courbes, formulaires, afficheurs numériques…)
  • Difficile de se passer du code javascript dès que qu’on sort de ce qui est prévu dans le flow
  • Rendre un flow Node-RED autonome demande des compétences supplémentaires

Deux tutoriels pour bien débuter avec Node-RED

Installer Node-RED sur Windows, macOS, Linux, Raspberry Pi 3, Orange Pi… Node-RED peut être installé sur toutes les plateformes capables de faire fonctionner NodeJS p20wr0vcu52uh3fstnwa-2588502 Node-RED, le projet pour développer des objets connectés d’IBM par assemblage de blocs Bien débuter avec Node-Red. Installation et découverte sur Raspberry Pi 3 p20wr0vcu52uh3fstnwa-2588502

Tous les tutoriels pour aller plus loin avec Node-RED

Stocker des données (sur un serveur distant)

Le stockage de données permettra de tracer des courbes pour visualiser l’évolution d’un phénomène ou analyser des évolutions dans le temps. Par exemple suivre la courbe de teneur en CO2 ou les polluants dans une pièce.

Base de données Open Source (MySQL, MariaDB, PostgreSQL, SQLLite…)

Il existe de très nombreuses bases de données Open Source. Voici les bases de données Open Source les plus utilisées :

MyQSL est la base de données Open Source la plus utilisée. Vous pouvez également utiliser MariaDB qui est le fork (clone) Open Source de MySQL qui a vu le jour suite au rachat de MySQL par Sun Microsystem en 2008.

SQLite est une base de données relationnelle légère et puissante qui ne nécessite aucune installation. Toutes les données sont stockées dans un fichier auquel on accède via une librairie. SQLite est très utilisé pour le développement d’applications mobiles

Pour les projets qui nécessitent un stock

Stocker les données sur l’objet connecté : zone SPIFFS, EEPROM, carte microSD

Il est possible de stoker des données ou des paramètres directement sur l’objet connecté. On pourra par exemple s’en servir comme une mémoire tampon et envoyer périodiquement les données sur un serveur afin d’économiser la batterie (la connectivité WiFi est consommatrice en énergie).

Voici les différentes solutions à notre disposition :

  • L’EEPROM est une petite mémoire qui permet de stocker des réglages. En générale, tous les micro-contrôleurs disposent d’une EEPROM accessible au programme de l’utilisateur
  • La zone SPIFFS est une zone beaucoup plus importante. De quelques centaines de kilooctets à plusieurs méga (ESP8266 par exemple). Elle est gérée par un système de fichier. On pourra accéder aux fichiers comme sur une carte micro-SD. Pour en savoir plus, vous pouvez lire ce tutoriel. On pourra également enregistrer tous les fichiers d’une interface graphique (HTML + CSS).
  • Carte micro-SD. Pour quelques euros, vous pouvez ajouter un lecteur de carte micro-SD pour stocker des données.

Sous quel format stocker des données ?

Aucune base de données n’est disponible. Un micro-contrôleur même moderne ne dispose pas d’assez de puissance.

Vous pouvez structurer vos données de plusieurs façons :

  • Tableau de données en colonne ou à la ligne (fichier à plat). Utilisez un séparateur de données standard de façon à pouvoir exploiter facilement celles-ci sur un tableur. Utilisez de préférence  ; | ou ,. Oubliez la tabulation.
  • Au format JSON. La librairie ArduJSON permet d’organiser les données au format JSON. La librairie est capable d’exporter les données “à plat” pour les stocker temporairement dans un fichier (sur une carte micro-SD ou la zone SPIFFS). On pourra recharger les données à la mise sous tension par exemple (ou n’importe quand) pour retrouver le même état de fonctionnement

Visualiser les données collectées

Il existe deux outils Open Source assez simple à mettre en oeuvre pour visualiser des données sous la forme de courbes.

Le visualiseur de données de l’IE Arduino. C’est tout bête, mais il suffit d’envoyer les mesures sur le port série pour afficher une courbe du phénomène observé. On aurait tendance à l’oublier !

Le plugin dashboard de Node-RED est super simple à déployer. Il suffit de brancher une source de données et la courbe s’affiche instantannément. Seul bémol, c’est une boite noire. Impossible de gérer le nombre de point affichés, recharger les points sur une période. C’est un affichage temps réel basique qui pourra être suffisant dans un grand nombre de cas.

zfbd4o96sxnqyyenpm1s-3090375

Grafana, est un logiciel Open Source spécialisé dans le tracé de données temporelles initialement conçu pour l’affichage de métrics pour des serveurs. Grafana trouve un usage idéal pour afficher des données en provenance de sondes connectées. Attention, Grafana ne s’occupe que d’afficher sur une période de temps. Grafana supporte plusieurs sources de données. InfluxDB également pris en charge par un plugin Node-RED est une excellente solution.

fzn7z0wmsju9vjoqfav5-3759775

Vous n’y connaissez rien en programmation, essayez ESP Easy !

Vous n’avez jamais programmé, ce n’est pas grave, ESP Easy est fait pour vous. ESP Easy est un firmware (micro-logiciel) que l’on installe sur un ESP8266 (et bientôt sur ESP32). Une fois installé et connecté au réseau WiFi local, on construit son projet en configurant les modules qui correspondent aux capteurs et actionneurs utilisés.

Voici une série de tutoriels sur le firmware ESP Easy.

Concevoir et (faire) fabriquer des circuits imprimés

Les shields constituent une très bonne solution pour réaliser une maquette fonctionnelle très rapidement, mais l’encombrement est loin d’être optimal. Pour en savoir plus sur la conception et la réalisation de circuit imprimés, vous pouvez commencer par lire cet article.

#Guide. Concevoir, fabriquer et assembler des circuits et PCB pour projets DIY à base d’ESP32 ou ESP8266

Prêt à vous lancer

Prêt à vous lancer ou aller encore plus loin, voici un tableau qui vous permet d’accéder rapidement aux articles et tutoriels. Les sujets déjà traité sur le blog sont indiqués par un fond verte.

—> Faites défiler le tableau vers la droite pour accéder à la suite

Avez-vous aimé cet article ?