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

Le matériel
Wemos D1 mini
Wemos D1 mini

Je me suis équipé de la dernière version de wemos D1 mini

x 1
DS18B20
DS18B20

Thermomètre numérique

x 1
Breadboard
Breadboard

Une plaque de prototypage

x 1
Résistance 4K7

Résistances

x 1
Jumper wire

Des câbles

x 1
Outils
Fer à soudé

Des cables

x 1
Il existe de nombreux fabricants / copies de ce genre de puces. Ne vous inquiétez pas si votre modèle n’est pas exactement le même que sur mes photos.

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.

IDE Arduino

IDE Arduino

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

Pour les personnes qui ne sont pas habituées, il est possible d’utiliser ce type de commandes aussi bien sur UNIX/MAC OS que sur Windows. Pour les Windowsiens vous pouvez accéder à un terminal en appuyant simultanément sur votre touche windows et la touche r. Tapez ensuite CMD et naviguez jusqu’au bon dossier grâce à la commande cd <votre chemin>

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.

Soudure des broches

Soudure des broches

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
Schéma du montage

Schéma du montage

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.

Prenez garde au sens de branchement du capteur de température sans quoi il se transformera en générateur de fumée :/ Prenez garde aussi à la pièce que vous achetez car certaines copies ont apparemment le pin 1 et 3 inversés.

À 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 !

Dans le cadre de ce tuto j’ai commandé une nouvelle puce Wemos car tous mes exemplaires étaient utilisés. Cependant, voulant faire des économies j’ai commandés sur un célèbre site chinois et j’ai reçu une copie. Ce n’est pas trop grave mais si cela vous arrive sachez que vous risquez, comme moi, de rencontrer quelques difficultés. Dans mon cas le driver USB n’était pas standard et j’ai dû installer le bon. En regardant les spécifications j’ai trouvé qu’il s’agissait d’un  CP2102 et qu’il est nécessaire d’installer un driver spécifique disponible ici

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

Températures sur le moniteur série

Températures sur le moniteur série

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.

Il ne faisait pas 33 degrés chez moi mais suite à une erreur de câblage le capteur a pris un petit coup de chaud et n’avait pas encore refroidit. Quelques minutes plus tard les températures redevenaient normales. J’ai fait le choix de tout de même publier cette image pour vous rappeler encore une fois, de bien faire attention à vos branchements ! 

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 😉

5 réponses

  1. Fz dit :

    Excellent article, merci

  2. H.a. dit :

    Bonne introduction au mon de IoT, merci pour l’article.

  3. Soumiya dit :

    Bonjour , j’aimerai savoir si possible de vous donner votre email , merci bien

  4. Debras Henri dit :

    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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.