L’Iot pour les débutants, apprenez à construire votre premier objet connecté
Parlons peu parlons DIY. Aujourd’hui, je vous propose une série d’articles légèrement technique s’adressant principalement aux débutants dans l’IoT. Nous allons voir comment construire une sonde de température Wi-Fi. Le but est qu’en quelques articles vous soyez en possession d’un prototype de sonde assez simple capable d’envoyer des températures dans un système plus évolué.
Je parle ici de prototype car pour nous simplifier la tâche nous commencerons par travailler sur une breadboard. Ceci nous évitera de faire des soudures et nous apportera une plus grande flexibilité permettant de tester facilement plusieurs solutions. Nous verrons le montage, le code embarqué et enfin nous aborderons les problématiques d’intégration de mesures.
Pour finir, afin de ne pas vous laisser sur votre fin je tenterais de clore la série en vous présentant un petit projet sur lequel je travaille en ce moment. Ce dernier est beaucoup plus abouti mais vous verrez que les quelques bases vues ensemble nous permettrons de mieux comprendre les différentes étapes de réalisation du projet. Vous ferez alors moins d’erreurs et vous serez en mesure de corriger seul les problèmes que vous pourriez rencontrer.
Le programme vous plait ? Alors c’est parti !
Introduction
Le monde de l’embarqué et des objets connectés a beaucoup changé depuis quelques années. L’arrivée de solutions telle que les Arduino ont permis de rendre ce domaine plus accessible aussi bien en terme d’équipements nécessaires que de compétences minimum requises.
En deux mot il s’agit en fait de carte intégrant un microcontrôleur programmable qui permettra d’effectuer des tâches simples tout en consommant très peu d’énergie.
La force de ces produits est qu’ils permettent, très simplement, d’effectuer l’intégration de programme. Tout d’abord, d’un point de vu matériel, en embarquant non seulement un microcontrôleur mais aussi tous ce qui va autour pour le faire fonctionner sans avoir besoin de connaissance en électronique. De plus, vous disposez du nécessaire pour le programmer via une simple prise USB. Ensuite d’un point de vue logiciel, la marque fournis un IDE (éditeur de code) dédié à ce domaine. Il ne vous reste donc plus qu’à coder votre application en C ou C++ et à faire quelques branchement pour capter ou interagir avec le monde extérieur (capteurs, servomoteur, etc.)
Si vous ne connaissez pas et que vous voulez en savoir plus, je vous invite à visiter le site officiel qui répertorie tout les produits officiels de la gamme https://www.arduino.cc/.
Dans notre série nous allons travailler avec une Wemos. C’est un modèle très proche des Arduino embarquant une puce et une antenne Wifi que nous utiliserons plus tard dans la série.
Prérequis
Aujourd’hui en guise de première étape nous allons :
- Mettre en place notre environnement de développement
- Construire les bases de notre sonde
- Écrire et pousser le code permettant de lire une température et de l’afficher dans un terminal
Pour ceci vous aurez besoin de
Wemos D1 mini Je me suis équipé de la dernière version de wemos D1 mini | x 1 | ||
DS18B20 Thermomètre numérique | x 1 | ||
Breadboard Une plaque de prototypage | x 1 | ||
Résistance 4K7 Résistances | x 1 | ||
Jumper wire Des câbles | x 1 |
Fer à soudé Des cables | x 1 |
Installation de l’environnement de développement
Comme vous l’avez peut-être deviné nous allons devoir programmer la carte Wemos. Cette dernière s’utilise un peu comme un Arduino équipé d’une puce wifi.
Pour coder sur ces plateformes, il est généralement conseillé de manipuler le C ou le C++. Il est donc nécessaire de mettre en place un environnement de développement adapté permettant d’écrire, de compiler et d’uploader le code sur la carte. Comme vous le verrez c’est cette partie du tuto qui est la plus pénible et compliquée.
Git
Dans un premier temps nous allons avoir besoin d’un outil se nommant Git que vous pourrez trouver ici. Il s’agit d’un gestionnaire de version couramment utilisé dans le monde de l’informatique. Je vous rassure vous n’allez pas avoir besoin de le maîtriser de long en large, à vrai dire vous pourriez même vous en passer pour ce tuto mais il vous simplifiera la tâche dès la fin de ce chapitre.
Python
Dans un second temps veuillez vous assurez que vous disposez bien de python sur votre machine. Si ce n’est pas le cas vous trouverez de quoi l’installer ici.
IDE
Ensuite, nous allons avoir besoin d’un IDE. Il en existe plusieurs mais dans le cadre de ce projet je vous conseille de prendre l’outil officiel d’Arduino disponible ici.
Dé-zippez ou installez le fichier téléchargé en fonction de la version que vous avez choisi et rendez-vous dans le dossier contenant les exécutables du logiciel.
Nous allons maintenant ajouter les différents éléments nécessaire afin que l’IDE puisse prendre en charge le wemos. Pour se faire, ouvrez un terminal, au niveau du dossier de l’installation que vous venez d’identifier. Lancez maintenant les commandes suivantes :
https://gist.github.com/quentinchap/5702fd1a89d31fa68cc81ca2eefcbca5
C’est fini ! Votre environnement est normalement prêt. Passons au montage et vérifions ceci juste après.
Montages du Wemos
C’est le moment de passer au montage.
À vos fers
Je vous avais dit que l’usage de breadboard évitait les soudures, cependant, il est quand même nécessaire d’installer les broches du wemos. Mettez vous en bonnes conditions et prenez le temps nécessaire car il n’y a pas beaucoup d’espace entre les pins. De plus, si vous ne soudez pas droit vous risquez d’avoir du mal pour la suite des branchements.
Petit conseil : utilisez le breadboard pour placer les pin à souder et que le tout soit stable. Cela vous aidera à souder droit. Concernant les méthodes de soudure. Je vous laisse le soin de faire une petite recherche sur youtube par exemple qui regorge de vidéos de démonstration. Je vous met tout de même l’une d’entre elle qui me semble plutôt pas mal.
Les schémas
Comme vous pouvez le voir le schéma est assez simple. On y retrouve nos trois éléments :
- Le Wemos qui sera branché en USB au PC
- La résistance dite de tirage positionnée entre la patte de donnée et +5V du capteur
- Le capteur qui est branché sur le +5V, le GNC et le D2 du wemos
Pour ceux qui n’ont pas l’habitude de travailler avec des breadboards, il faut savoir que sur les bords entre les lignes bleues et rouges tous les points d’une même ligne sont reliés ensemble. Sur le reste de la carte les liaisons entre les points sont plutôt verticales tout en étant séparées au centre. Vous pouvez d’ailleurs observer sur le schéma ci-dessous qu’il y a de petits points verts qui symbolisent ces connexions.
À vos claviers
Dans un premier temps nous allons tester notre montage en uploadant un programme très simple permettant de faire clignoter la LED de la carte. Ensuite, si tout marche bien, nous verrons comment mesurer la température et l’afficher dans le moniteur série.
Avant d’aller plus loin, il est nécessaire de configurer votre IDE. Ouvrez-le et allez dans le menu « Outils ». Ici, veillez à ce que le Type de carte soit sur « LOLIN(WEMOS) D1 R2 & mini » (ou autre si vous avez choisi un autre modèle), la vitesse d’upload sur 115200. Sélectionnez aussi le port COM permettant de communiquer avec votre carte. Pour l’identifier, le plus simple et de regarder lequel apparaît quand vous branchez votre carte.
Mon premier programme
Dans un premier temps nous allons exécuter un petit programme simple faisant clignoter une LED sur notre carte. Vous trouverez le code avec quelques commentaires expliquant les différentes étapes ci-dessous
https://gist.github.com/quentinchap/49e20651211b9fb1aff21ec893162aca
Maintenant que vos premières lignes de C sont prêtes il ne reste plus qu’à les uploader sur la carte. Pour ce faire, cliquez sur la petite flèche en haut à droite. Après une compilation et l’upload de l’exécutable votre petite LED clignote !
Utilisation du moniteur série
Le moniteur série est l’un de vos meilleurs alliers dans le développement sur ce type de carte. Il vous permet de consulter des messages que vous aurez choisit d’émettre. Reprenons notre code précédent et ajoutons des logs.
https://gist.github.com/quentinchap/5a814813765722d46ae62ce22e15f72c
Une fois compilé et uploadé allez dans « Outils > Moniteur série ». Vérifiez en bas à droite que la vitesse est bien configurée sur 115200 baud. Vous devrez alors, en plus de voir votre LED clignoter voir passer des log dans le moniteur.
Mesurer une température
Nous savons maintenant uploader un programme et lire dans le moniteur série. Pour finir, nous allons apprendre à lire les informations de température et à l’afficher dans notre moniteur série.
Installation de bibliothèques
Dans un premier temps nous allons devoir télécharger et installer deux bibliothèques qui nous permettrons d’utiliser la sonde de température. Pour ce faire, dans l’IDE cliquez sur Croquis > Inclure une bibliothèque > Gérer les bibliothèques. Recherchez OneWire et DallasTemperature et installez les deux éléments.
Code de récupération de température
Enfin nous pouvons passer au code. Vous trouverez ci-dessous le code commenté détaillant chaques étapes.
https://gist.github.com/quentinchap/afdcabf955e918e4a661262238068f4a
Lancez la compilation et l’upload et normalement vous devriez voir s’afficher la température sous vos yeux
Vous pouvez avoir quelques degrés d’écart avec la température réelle. C’est tout à fait normal. Nous le verrons plus tard dans cette série mais le DS18B20, comme tout autre capteur à besoin d’être calibré afin d’être vraiment précis.
Cependant, beaucoup de capteurs subissent des pré-calibrages d’usine. Ces derniers ne suffisent pas pour un besoin de précision accru car ils ne tiennent pas compte des différences entre chaque pièce fabriquer en usine. Ainsi si vous testez deux capteurs différents vous pouvez avoir un écart entre eux. Cependant, les valeurs retournées ne sont généralement pas très éloignées des valeurs réelles. C’est donc à vous de déterminer si votre besoin nécessite plus de précision ou si ce calibrage vous convient.
Conclusion
C’est fini pour aujourd’hui. C’est triste je sais… il n’est même pas possible d’exploiter les températures captées… Pour être honnête au début de la rédaction de ce tuto je pensais écrire un seul article. Cependant la charge de travail sur la partie de mise en place m’a semblé trop lourde et trop importante pour faire la route d’une traite.
Si vous avez trouvé cette article compliqué et que vous doutez pour la suite je vous rassure. La mise en place est généralement ce qui est le plus dure dans ce genre de projet. Une fois faite il ne reste que des problèmes « de code » plus simple à régler avec l’aide de la communauté.
Dans le prochain article (je l’ai commencé il arrive vite promis) nous verrons comment utiliser la partie Wi-Fi du Wemos afin d’envoyer la température à un système externe. Nous verrons aussi comment exploiter ces valeurs et comment les intégrer à votre installation domotique. Comme d’habitude n’hésitez pas à laisser des commentaires si vous avez des questions/remarques, à bientôt 😉
Cadre en informatique dans une multinationale je suis un touche-à-tout passionné de nouvelles technologies.
Excellent article, merci
Bonne introduction au mon de IoT, merci pour l’article.
Bonjour , j’aimerai savoir si possible de vous donner votre email , merci bien
Bonjour,
votre lien pour la carte Wemos D1 mini ESP8285 n’existe plus.
Je suis débutant et je ne trouve pas sur amazon la même carte que celle utilisée.
Il y en a beaucoup et laquelle choisir ?
merci pour votre réponse
Cdt
Bonjour,
Cette référence devrait convenir https://amzn.to/2N3slYx.
Cependant il n’y a pas d’info sur le vendeur. Si le site ne vous rebute pas vous pouvez aussi allez voir sur ali-express il y a généralement pas mal de choix pour ce genre de petites piéces.
Bonne journée.