Club Robotique - Station de mesure (T°, H)
- Description du projet
- Introduction à la Modélisation 3D
- Phase 2 - Impression 3D
- Phase 3 - Programmation
- Phase 4 - Mesure et Analyse des Données de Température avec le Capteur DHT22
Description du projet
Introduction
Pour ce cycle, nous allons réalisée une station de mesure de température de l'air.
Description des compétences visées :
Compétences techniques et mécaniques :
-
Conception mécanique : savoir imaginer et concevoir la boite qui va contenir les composants
-
Assemblage de composants : apprendre à manipuler et assembler les différentes parties (boite, vis, composants électroniques, etc.)
-
Choix des matériaux : identifier les matériaux adaptés au projet
Compétences en électronique :
-
Découverte et câblage de capteurs pour mesurer une température.
-
Savoir réaliser un schéma de câblage et connecter les composants sur une carte (ex. Arduino).
Compétences en programmation :
-
Programmation d'un microcontrôleur Arduino nano : écrire un code qui gère les capteurs, les délais.
-
Optimisation du fonctionnement : ajuster les temps de prise de données, etc.
Compétences transversales :
- Gestion de projet : planifier les étapes de réalisation, répartir les tâches, respecter les délais.
-
Résolution de problèmes : savoir réagir face aux imprévus techniques ou fonctionnels.
-
Travail en équipe : collaborer efficacement si le projet est collectif.
Description du déroulé des séances :
~6 séances :
- ~Introduction du projet (brainstorming)
- ~2 séances sur TinkerCAD et sur l'impression 3D (création d'une boite pour fixer les composants)
- ~1 séance Capteur : température
- ~2 séance Assemblage et programmation
Matériel :
- 1 x Arduino Nano ou compatible (seeeduino, funduino,...) : ~10€
- 1 x câble USB C : ~1€
- 1 x Sensor Shield pour Arduino Nano : ~3€
- 1 x Capteur Température (DHT 22): ~2€
- 1 x porte pile 4xaa : ~2€
- Une imprimante 3D pour imprimer les pièces du projet (fichier disponible à la prochaine page)(~4€ de filament) :
Introduction à la Modélisation 3D
Création d'un boite pour la station
La station d'analyse de l'air ne possède pas de boite pour contenir ni fixer les composants électroniques, c'est pour ca que je vais vous décrire comment la réalisée.
Objectif
L’objectif de cette séance est de réussir à bien placer les trous des vis pour y placer chaque composants et qu'ils puissent tous rentrer dans la boite.
Ressources disponibles
Vous pouvez retrouver le fichiers STL de la boite ici ou dans les fichiers en pièce jointe.
Modification du Fichier :
Avant de commencer la modification, je vous invite à consulter :
- Cette page expliquant comment utiliser Tinkercad pour modifier un fichier 3D
- Cette page expliquant comment créer une classe sur Tinkercad (utile pour le travail en groupe ou en classe).
Étape 1 : Préparation de l’environnement
Une fois la classe créée sur Tinkercad , avec le fichier de référence correctement chargé, et que tous les élèves sont connectés, nous pouvons passer à la phase de modification.
Comment créer une classe sur tinkercad :
https://innovation.iha.unistra.fr/books/2-fablab-formation-machines-logiciels/page/creation-dune-classe-tinkercad
Sur l’interface principale de Tinkercad :
-
- Création du Boîtier Principal:
-
Ouvrir TinkerCad et démarrer un nouveau projet.
-
Placer un cube de base de 10,5 x 10,5 x 4 cm depuis la bibliothèque d'objets.
-
Ajouter un deuxième cube de 10,1 x 10,1 x 3,8 cm (Ne pas oublier à le convertir en perçage!).
- Venir centrer le 2ème cube au premier en sélectionnant les 2 cubes puis appuyez sur ce bouton
- Et ensuite appuyer sur ces 3 points noir.
-
Venir percer le deuxième cube au premier en appuyant sur ce bouton
(Bien sélectionner les 2 cubes en même temps).
Création des trou pour les vis :
- Créer un cylindre de 4 x 4 x 5 cm.
- Créer un cylindre de perçage de 2 x 2 x 5 cm.
- Le centrer et le percer.
Création du trou pour le Capteur :
- Créer un cube de 2 x 2 x 1.5 cm.
- Puis venir percer une paroi latéral de la boîte avec l'outil aligner comme précédemment.
- Placer le trou à l'emplacement souhaité pour le passage du capteur.
Conception du Capot :
- Créer un nouveau cube de 10,1 x 10,1 x 0,4 cm.
- Ajouter un deuxième cube de 9,9 x 9,9 x 0,4 cm en mode perçage et venir percer ce dernier au premier grâce à l’outil "perçage" en le centrant avec l'outil "aligner".
- Puis ensuite ajouter un cube en dessous de 10,5 x 10,5 x 0,1 cm toujours en le centrant
Ajustements Finaux :
-
Vérifier l'alignement du capot avec le boîtier principal.
-
Ajuster la position du capot pour qu'il puisse se fermer correctement.
-
Réviser les dimensions et l'agencement global pour assurer la cohérence du design.
Validation et Export :
- Vérifier visuellement la modélisation en 3D pour s'assurer de la conformité avec les spécifications.
- Exporter le modèle au format souhaité pour une utilisation ultérieure (STL, etc.).
Conclusion / Rangement / Démontage :
- Retour sur les notions clés de la séance.
- Q&R pour clarifier les doutes.
- Rangement en fin de séance.
- Éteindre les PC.
- Assemblage des Composants:
Fonctionnement du DHT22:
Le capteur DHT22 est un dispositif utilisé pour mesurer la température et l'humidité de l'air. Il fonctionne grâce à deux composants principaux : un thermistor pour la mesure de la température et un capteur capacitif pour l'humidité.
-
Température : Le thermistor, qui change de résistance en fonction de la température, permet de mesurer celle-ci avec une précision d'environ ±0.5°C dans une plage de -40°C à 80°C.
-
Humidité : Le capteur capacitif d'humidité détecte les variations dans la capacité électrique causées par l'humidité dans l'air, offrant une précision d'environ ±2 à 5% pour une humidité relative comprise entre 0% et 100%.
Le DHT22 communique les données via une seule broche numérique (data). Après une courte initialisation, il envoie les informations sous forme de bits, codées dans un protocole spécifique. L'appareil peut être interrogé à des intervalles d'environ 2 secondes, car il a une période de rafraîchissement des données assez lente.
Ce capteur est populaire pour sa simplicité d'utilisation, notamment avec des microcontrôleurs comme Arduino ou Raspberry Pi, et est très utilisé dans des projets de domotique ou de surveillance de l'environnement.
-
- Distribution des Composants : Fournir les cartes Arduino Nano, Shields, capteurs DHT22, et piles accus à chaque groupe.
- Essai en Autonomie : Les élèves assemblent les composants selon les instructions. L'enseignant aide si nécessaire.
- Explication de l'Assemblage : Montrer les différentes broches du capteur DHT22, comment le connecter au Shield et comment alimenter le système avec la pile accu.
Phase 2 - Impression 3D
Phase 2 - Impression 3D
Objectifs :
- Acquérir une introduction à la préparation de modèles pour l'impression 3D.
- Maîtriser l'utilisation du logiciel Cura.
- Préparer un modèle 3D pour l'impression avec les paramètres appropriés.
Compétences techniques :
- Utilisation générale de la préparation pour l'impression 3D.
- Utilisation spécifique du logiciel Cura.
Savoir-être et compétences transversales :
- Capacité à suivre des instructions détaillées.
Déroulement de la séance :
- Consignes de sécurité et précautions matérielles.
- Travail individuel.
- Présentation de l'activité du jour, rappel des objectifs.
1.Exportation de la boite :
- Pour exporter un fichier de Tinkercad il suffit de cliquer sur ce bouton
puis sur celui la
et le voilà qu'il se retrouve dans vos téléchargement.
2.Préparation du fichier pour l'impression :
- Dans un premier temps lancez le logiciel "Ultimaker Cura".
- Cherchez votre fichier dans votre explorateur et faite le glisser dans Cura.
- Par la suite configurez les paramètres d'impression :
- Ajustements éventuels des paramètres pour optimiser l'impression.
- Pour la génération du code G pour l'imprimante 3D appuyez sur ce bouton
- Maintenant vous avez plus qu'a transférer ce fichier sur la carte SD de l'imprimante utilisée et lancer l'impression.
Conclusion / Rangement :
- Récapitulation des points clés de la séance.
- Rangement du matériel en fin de séance.
Dans cette phase, les participants vont apprendre à préparer leur modèle 3D pour l'impression en utilisant le logiciel Cura. Ils vont importer leur fichier STL, ajuster les paramètres d'impression, générer le code pour l'imprimante 3D et exporter le fichier prêt pour l'impression. Si des questions se posent ou si vous avez besoin de plus d'informations, n'hésitez pas à demander !
Phase 3 - Programmation
Phase 3 - Programmation de la station
Objectifs
Compétences techniques:
- Programmation pour stocker les valeurs de température et d'humidité dans la mémoire de l'Arduino Nano.
Déroulement de la séance
-
Introduction:
- Présentation des éléments nécessaires pour la programmation.
- Importance de la programmation dans le projet de station météo.
-
Programmation:
- Commençons par la programmation sur Mblock.
- N'oubliez pas d'installer l'extension pour le capteur en cliquant sur ce bouton
,puis taper dans la barre de recherche "DHT22" et ensuite juste besoin de l'ajouter.
-
-
Avant de téléverser le code n'oubliez pas de décocher ces 2 cases ci-dessous qui se situe dans le moniteur série.
-
- Pour la suite nous allons passer sur le logiciel "Arduino IDE" car il nous offre plus de possibilités.
- Dans un premier temps télécharger la librairie Arduino DHT de Adafruit https://www.arduino.cc/reference/en/libraries/dht-sensor-library/
- bien installer la dépendance Adafruit Unified Sensor
#include <SoftwareSerial.h>
#include <DHT.h>
#include <EEPROM.h>
#define DHTPIN 9
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const int EEPROM_SIZE = 512; // Taille de l'EEPROM en octets
const int ENTRY_SIZE = sizeof(float) * 2; // Taille d'une entrée (température + humidité)
const int NUM_ENTRIES = EEPROM_SIZE / ENTRY_SIZE; // Nombre total d'entrées possibles
int currentAddress = 0; // Adresse actuelle pour stocker
bool storageFull = false; // Indique si l'EEPROM est pleine
unsigned long previousMillis = 0; // Dernier temps de stockage
const unsigned long interval = 3600000; // Intervalle d'une heure (en millisecondes)
void setup() {
Serial.begin(9600);
dht.begin();
Serial.println("Démarrage du système...");
}
void loop() {
unsigned long currentMillis = millis();
// Vérifie si une heure s'est écoulée
if (!storageFull && currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
// Lecture des données du capteur
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (!isnan(temperature) && !isnan(humidity)) {
// Vérifie si suffisamment d'espace reste dans l'EEPROM
if (currentAddress + ENTRY_SIZE <= EEPROM_SIZE) {
// Stocker la température
EEPROM.put(currentAddress, temperature);
currentAddress += sizeof(float);
// Stocker l'humidité
EEPROM.put(currentAddress, humidity);
currentAddress += sizeof(float);
// Affichage des données
Serial.print("Données stockées à l'adresse ");
Serial.print(currentAddress - ENTRY_SIZE);
Serial.print(": Température = ");
Serial.print(temperature);
Serial.print(" °C, Humidité = ");
Serial.println(humidity);
} else {
storageFull = true; // Indiquer que l'EEPROM est pleine
Serial.println("EEPROM pleine. Arrêt du stockage.");
}
} else {
Serial.println("Erreur de lecture du capteur DHT22.");
}
}
}
-
- Ce code va nous permettre de stocker la température et l'humidité dans la mémoire de notre Arduino nano et ca toute les heures.
- après avoir stocker les température et l'humidité il faut les récupérer, voici le code :
#include <EEPROM.h> const int EEPROM_SIZE = 512; // Taille totale de l'EEPROM en octets const int ENTRY_SIZE = sizeof(float) * 2; // Taille d'une entrée (température + humidité) const int NUM_ENTRIES = EEPROM_SIZE / ENTRY_SIZE; // Nombre total d'entrées (température + humidité) void setup() { Serial.begin(9600); Serial.println("Lecture des données stockées dans l'EEPROM..."); for (int i = 0; i < NUM_ENTRIES; i++) { int address = i * ENTRY_SIZE; // Lecture des données de l'EEPROM float storedTemperature, storedHumidity; EEPROM.get(address, storedTemperature); EEPROM.get(address + sizeof(float), storedHumidity); // Vérification et affichage des données Serial.print("Entrée "); Serial.print(i + 1); Serial.print(" à l'adresse "); Serial.print(address); Serial.print(": "); if (!isnan(storedTemperature) && !isnan(storedHumidity)) { Serial.print("Température = "); Serial.print(storedTemperature); Serial.print(" °C, Humidité = "); Serial.print(storedHumidity); Serial.println(" %"); } else { Serial.println("Valeurs non valides ou non initialisées."); } } } void loop() { // Pas besoin de code dans loop pour cette démonstration }
3. Validation:
-
- Vérification du programme pour s'assurer du bon fonctionnement.
- Test du stockage des valeurs dans la mémoire EEPROM.
4. Conclusion:
-
- Récapitulation des points clés de la séance.
- Réponses aux questions éventuelles.
Résolution de problèmes
- Si
dht.h
n'est pas reconnu quand vous vérifiez/compilez le fichier, essayer une librairie adaptée à la marque de votre DHT22. Par exemple pour DFRobot : - Cliquer sur Code > Télécharger ZIP https://github.com/CainZ/DHT
- Ajouter la librairie à la main dans ArduinoIDE
- Vérifier la bonne installation de la librairie, dans "contributed libraries"
Phase 4 - Mesure et Analyse des Données de Température avec le Capteur DHT22
Phase 4 - Mesure et Analyse des Données de Température avec le Capteur DHT22
Objectifs de la séance :
- Apprendre à utiliser des stations de mesure de température équipées de capteurs DHT22 et d’une carte Arduino Nano.
- Collecter des données de température à différents endroits sur une période donnée.
- Analyser les données recueillies grâce à Excel et réaliser des courbes de tendance.
- Comprendre l’impact des conditions environnementales sur la température.
Compétences techniques :
- Utilisation de capteurs et d’Arduino Nano : Installation, branchement et paramétrage des stations de mesure.
- Manipulation de données avec Excel : Importer des fichiers de données, organiser les informations en tableaux, tracer des graphiques (courbes de tendance, histogrammes, etc.).
- Traitement des données : Analyser les écarts de température selon les endroits et périodes de mesure.
Savoir-être :
- Rigueur : Suivre les étapes de mesure et d'analyse de façon précise et méthodique.
- Travail en équipe : Collaborer pour installer les stations, récolter les données et partager les résultats.
- Autonomie : Être capable d’installer la station de mesure et d’effectuer des relevés de manière indépendante.
Compétences transversales :
- Résolution de problèmes : Interpréter les anomalies ou incohérences dans les données et adapter les mesures.
- Communication scientifique : Présenter de manière claire et synthétique les résultats sous forme de graphiques et de conclusions.
- Esprit critique : Analyser les données avec discernement pour en tirer des conclusions pertinentes.
Déroulement de la séance :
-
Introduction
- Présentation des objectifs de la séance.
- Rappel du fonctionnement du capteur DHT22 et de l'Arduino Nano.
- Explication des points de mesure : définir les différents endroits où seront placées les stations (intérieur, extérieur, pièces fermées, etc.).
-
Installation des stations de mesure
- Mise en place des stations avec le capteur DHT22 à différents endroits prédéfinis.
- Vérification de la connectivité et du bon fonctionnement de chaque station.
- Lancement de la collecte des données (durée de mesure à définir : quelques heures ou une journée complète).
-
Collecte des données
- Chaque participant vérifie régulièrement les stations et enregistre les données (extraction via l’Arduino).
- Récupération des température via l'Arduino IDE, puis exportation sur Excel ou Open Office.
- Pour récupérer les température facilement il y a cette formule =DROITE(GAUCHE(A1; NBCAR(A1)-23); 5).
- Pour récupérer la valeur de l'humidité vous pouvez utiliser cette formule =DROITE(GAUCHE(A1; NBCAR(A1)-2); 5) si vous avez collez votre texte dans la case A1, ensuite si vous êtes sur Exel n'oubliez pas de les convertir en valeurs.
- Attention si vous êtes sur Libre Office, il faut copier vos valeur puis les coller en "collage spécial" et ensuite sur "Texte non formaté".
Et ensuite appuyer sur "OK". - Faire de même pour les valeurs de l'humidité.
-
Analyse des données sur Excel
- Importation des données dans Excel ou Libre Office.
- Structuration des informations sous forme de tableau.
- Création des graphiques : courbes de tendance pour visualiser les écarts de température selon les points de mesure.
-
Pour créer un graphique sur Excel sélectionnez votre tableau et allez dans "Insertion" puis "Graphiques Recommandés".
-
Sur Libre Office sélectionnez vos valeurs puis allez dans "Insertion", "Diagrammes", "Ligne", et prenez le 2ème.
- Après avoir obtenue l'image ci-dessus, faites un clic droit sur le graphique et ensuite dans "plage de données" allez dans "séries de données".
- Et vous avez juste à supprimer les données des heures.
- Sur Excel n'oubliez pas de changer l'échelle des température en mettant la température la plus basse à 0.
- Analyse des résultats : interpréter les différences entre les différents points de mesure.
- Faire la même chose pour l'humidité.
-
Conclusion et échanges
- Chaque participant présente ses résultats sous forme de graphiques.
- Discussion autour des facteurs qui peuvent influencer les écarts de température (environnement, exposition au soleil, ventilation, etc.).
- Synthèse des principaux apprentissages de la séance.