Académique Documents
Professionnel Documents
Culture Documents
CAPTEUR ENERGYLAB
SEANCE 1
Objectif de la séance :
Faire remonter sur un cloud, et afficher sous forme d’un dashboard, les données d’un
capteur de température, humidité et pression atmosphérique. La remontée de données se
fera via wifi.
Objectifs d’apprentissages
Matériel
• 1 HUZZAH Feather + cable microUSB + batterie LiPo
• 1 capteur BME280
• Fils Arduino
• Plaque labdeck
Sommaire
1. Connection du module WiFi (Huzzah) et intégration du BME
Page 1
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
Avantages et inconvénients
Avantages L’avantage majeur de la carte Huzzah Feather est d’intégrer directement les fonctionnalité
WiFi et de pouvoir donc communiquer directement avec les ordinateurs/smartphones sans passer par un
modem extérieur. Elle possède la capacité d’héberger un petit serveur web mais aussi d’interfacer des
capteurs et des actionneurs, ce qui en fait un outil très pratique pour s’initier à l’Internet des Objets ou
réaliser des projets mécatroniques intégrant une interface réseau.
La carte possède aussi plusieurs avantages secondaires:
● un programmateur intégré
● un connecteur pour une batterie Lithium Polymère 1S (3.7V),
● un chargeur LiPo intégré permettant de recharger la batterie lorsque la carte est branché en USB.
Inconvénients L’inconvénient majeur de la carte Huzzah Feather est un nombre de GPIO inférieur à
l’Arduino Uno (8 GPIO contre 14 pour l’Arduino Uno), une unique entrée analogique sur 1V (au lieu de 6
sur 5V pour l’Arduino Uno) ce qui limite un peu plus le nombre de capteur / actionneur possible. On peut
noter que la présence d’un bus I2C et et d'un bus SPI permettent éventuellement d’augmenter le nombre
de capteurs/actionneurs via des cartes d’extensions.
Vous retrouverez la liste des différents broches de la carte sur le diagramme suivant :
Page 2
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
https://cdn-
learn.adafruit.com/assets/assets/000/046/249/original/adafruit_products_Huzzah_ESP8266_Pinout_v1.
2-1.png?1504885873
Toutes les GPIOs peuvent générer des signaux PWM (contrôle de moteur continu).
La broche 0 est connectée à la LED intégrée à la carte.
La broche ADC encode un signal de 0 à 1 V sur 10bits (0-1023).
Le SPI utilise les pins 12 (MISO), 13 (MOSI), 14 (CLK) et 15 (CS)).
L'I2C utilise les pins 04 (SDA) et 05 (SCL).
La pin 16 est une pin spéciale et ne peut pas servir à tout.
2. Installation de la Huzzah
• Installation de l’IDE
Remarque : si votre carte Huzzah Feather n'est pas reconnue (il n'y a pas de port COM qui
apparaît), installez les drivers suivants :
http://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-
drivers
Suivez les instructions ci-dessous pour installer la bibliothèque pour l’ESP8266 (WROOM-02)
• Ouvrez le menu Fichier > Préférences
Page 3
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
• Ouvrez le menu Outils > Type de carte > Gestionnaire de carte puis cliquez sur « esp8266 by
ESP8266 Community » pour l’installer.
• Choisissez la carte « Adafruit Feather HUZZAH ESP8266 » dans le menu Outils > Type de carte.
Page 4
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
Page 5
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
Ça marche ? Bravo
Page 6
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
Nous aimerions que ce soit notre capteur qui puisse envoyer les données au fur et à mesure des
acquisitions (sans mémoire de la part du capteur). Pour ce faire, nous allons transformer notre capteur en
Client Http.
C’est le rôle de la classe HttpClient qui permet d’initier une requête Http et
d’attendre la réponse du serveur.
Mais avant cela nous allons nous poser la question de : "À qui envoyer les données ?" car si notre capteur
est le client, qui jouera le rôle du serveur ?
https://dweet.io/dweet/for/epf_capteur?message=bonjour&valeur=10
• Une url pour afficher les messages reçus :
https://dweet.io/get/dweets/for/epf_capteur
• Une url pour afficher une joli synthèse des données reçues :
https://dweet.io/follow/epf_capteur
Page 7
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
Réception du message : (Notez le champ "with" suivi de la liste des messages reçus)
Dweet affiche les données au format JSON (format d'échange comme le XML et le
CSV) qui a l'avantage d'être modulaire (comme le XML) et compact (comme le CSV).
Pour le convertir dans un format CSV et l'afficher plus facilement dans Excel vous
pouvez utiliser des convertisseurs en ligne. Par ex :
• https://konklone.io/json/
• http://www.convertcsv.com/json-to-csv.htm
Synthèse : Et si vous continuez à envoyer des valeurs avec cette page ouverte, celle-ci affiche les derniers
messages reçus (et une courbe pour les valeurs numériques).
Page 8
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
Page 9
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
Nous savons désormais envoyer des informations sur le serveur via l'utilisation des URLs de votre
navigateur web. Mais comment demander à Arduino d'envoyer directement ces requêtes HTTP ?
Nous savons désormais envoyer des informations sur le serveur via l'utilisation des URLs de votre
navigateur web. Mais comment demander à Arduino d'envoyer directement ces requêtes HTTP ?
Pour connaître ce certificat Dweet réactualisé, il vous faut aller la chercher dans votre navigateur.
• Cliquez sur l'icône de cadenas à gauche de l'url.
• Puis cliquez sur Certificat
Page 10
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
• Copiez-collez là dans votre fichier Arduino avant d’avoir demander à chatgpt de bien vouloir
faire la conversion en hexadecimal. La ligne que vous venez de modifier permet d’utiliser
une connexion sécurisée (c’est le s de Https). .
Créer un point d’accès Wifi grâce à un de vos téléphones pour que la carte HUZZAH puisse s’y connecter
et agir comme Client. Trouver alors dans le code où rentrer la configuration de ce point d’accès (SSID et
password).
Page 11
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
Après avoir téléversé votre programme sur la carte HUZZAH, vous devriez commencer à envoyer les
données vers le Cloud Dweet.
Ca ne marche pas ?
Tant pis, on va travailler sans cryptage en allant dans loop à cet endroit :
client->setFingerprint(fingerprint);
// Or, if you happy to ignore the SSL certificate, then use the following line instead:
// client->setInsecure();
Vous arrivez à voir vos données qui remontent sur le cloud, Bravo :
Page 12
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
o Thingspeak
o Corlysis
o Kaa
o Google Cloud IoT
o Amazon Web Service AWS IoT
• Chercher à mettre en place votre propre serveur : "à la main" avec PHP/MariaDB (c’est le cas du
nouveau serveur installé à l’EPF que l’on pourra utilisant en fin de projet si l’on a le temps) , ou
en utilisant des outils existant : gweet , kuzzle , etc.
Le service gratuit (contre une inscription sur le site) d’Adafruit IO vous permet de pouvoir gérer jusqu’à
10 remontées d'information de manière centralisée et de construire des interfaces et tableaux de bords
associés. C’est ce que l’on va apprendre à faire dans la suite de ce TP.
Page 13
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
Page 14
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
o config.h
Modification de IO_USERNAME et IO_KEY
▪ #define IO_USERNAME "your_username" en indiquant votre nom d’utilisateur
(celui correspondant à votre compte Adafruit).
▪ #define IO_KEY "your_key" en indiquant votre clé d'authentification pour vous
authentifier auprès du serveur (et savoir que c'est VOUS qui envoyez des
données). Cette clé se trouve en cliquant sur le bouton jaune « API Key »
dans votre compte utilisateur.
Page 15
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
o adafruitio_00_publish.ino
▪ Si vous ne modifiez rien à ce stade et que vous téléversez, vous devriez
voir des choses changer sur votre page perso de cloud AdafruitIO.
(Regarder les feeds).
▪ Modifier le code Example pour remonter les feeds correspondants aux
données du BME sur votre cloud Adafruit IO. Remontées de données du
BME680 sur Adafruit IO.
• Modifier le nom de votre nouveau programme qui remonte toutes vos données sur votre cloud.
Vous l’appelez AdafruitIO_BME_GroupeX.ino
• Sur votre cloud AdafruitIO, créer un dashboard faisant apparait l’évolution de la température,
de l’humidité et de la pression.
• Rendez public votre Dashboard ainsi que les feeds associés puis envoyez l’URL à votre
encadrant. Il doit pouvoir voir vos données depuis son téléphone ou son ordinateur.
Page 16
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo
TP PROJET CAPTEURS UE1 FG3- 2023
De la mesure à la donnée numérique SEANCE 1
Transmission de l’info
III. ANNEXES
A. ANNEXE 1
Page 17
2023-2024 // TPs encadrés par Nicolas Camara et Gael Alonzo