Table des matières:

Affichage de la température et de l'humidité et collecte de données avec Arduino et traitement : 13 étapes (avec images)
Affichage de la température et de l'humidité et collecte de données avec Arduino et traitement : 13 étapes (avec images)

Vidéo: Affichage de la température et de l'humidité et collecte de données avec Arduino et traitement : 13 étapes (avec images)

Vidéo: Affichage de la température et de l'humidité et collecte de données avec Arduino et traitement : 13 étapes (avec images)
Vidéo: Enregistrer les données des capteurs dans une base de données 2024, Juillet
Anonim
Affichage de la température et de l'humidité et collecte de données avec Arduino et traitement
Affichage de la température et de l'humidité et collecte de données avec Arduino et traitement

Intro: il s'agit d'un projet qui utilise une carte Arduino, un capteur (DHT11), un ordinateur Windows et un programme de traitement (téléchargeable gratuitement) pour afficher les données de température, d'humidité sous forme numérique et de graphique à barres, afficher l'heure et la date et exécuter un compte jusqu'à la minuterie pendant le programme et l'enregistrement de toutes les données dans un format.csv lorsque le programme est fermé.

Inspiration:

Tout d'abord, je DOIS dire que je suis un débutant total et que j'ai beaucoup appris de ce projet. J'essaie donc d'écrire ce Instructable pour être lu et compris par un débutant total.

J'avais vu divers projets Arduino pour mesurer la température et l'humidité mais je voulais un programme qui:

1) Température et humidité mesurées

2) Affichage des données à la fois sous forme de graphique (j'ai choisi un graphique à barres) et sous forme numérique

3) A une fonction d'horloge

4) A un compte à rebours "Run Time"

5) Enregistre ces données dans un format de fichier.csv (excel).

Je me suis inspiré des programmes créés par Sowmith Mandadi, R-B et aaakash3, mais aucun de ceux-ci n'était exactement ce que je voulais. J'ai donc appris à écrire du code de base et j'ai fait ce que je voulais.

Étape 1: Ce dont vous aurez besoin:

Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin

Pièces et matériaux:* Ordinateur – J'ai utilisé un ordinateur Windows Système d'exploitation Windows 10

(Je suis sûr que Linux ou Mac pourraient être utilisés, je n'en ai tout simplement pas, donc je ne vais pas expliquer comment utiliser ces systèmes d'exploitation)

* Carte Arduino - J'ai utilisé une carte Arduino Uno, mais n'importe quelle carte Arduino avec USB fera l'affaire

* Câble USB - Câble USB A/B - Identique à l'ancien type "câble d'imprimante" (généralement livré avec la carte Arduino)

*Capteur de température/humidité DHT 11 - peu coûteux de 4 à 8 $

(Remarque: il existe 2 versions, j'ai utilisé la version à 3 broches, la version à 4 broches nécessitera l'utilisation d'une maquette et d'une résistance de 10K, la 3 broches a une carte de circuit imprimé qui comprend la résistance de 10K) voir les diagrammes de Fritzing dans les prochaines étapes

* Fils de connexion

Fils Dupont (doubles extrémités femelles) en cas de connexion à 3 broches DHT11 sans maquette

Cavalier standard fils M/F (une extrémité mâle une extrémité femelle) et fils de cavalier M/M (les deux extrémités mâles) pour connecter 4 broches DHT11 - voir l'étape 2 pour plus d'informations

*Arduino IDE - un programme pour écrire des programmes Arduino (appelés sketches) gratuit @

www.arduino.cc/en/Main/Software

*Processing - un programme pour écrire des croquis de traitement gratuitement @

processing.org/download/

* Fichier "DHTLib" - un fichier de bibliothèque (il s'agit d'un fichier qui va dans le programme IDE Arduino sous le dossier appelé "Bibliothèque", il devra être ajouté à l'esquisse Arduino avant que l'Arduino puisse lire les données du DHT11 - voir étape 5 pour télécharger le fichier et les instructions

Étape 2: connectez Arduino à DHT11

Connectez Arduino à DHT11
Connectez Arduino à DHT11
Connectez Arduino à DHT11
Connectez Arduino à DHT11
Connectez Arduino à DHT11
Connectez Arduino à DHT11
Connectez Arduino à DHT11
Connectez Arduino à DHT11

Déterminez d'abord quel DHT11 vous avez

J'ai utilisé le 3 broches car il a déjà la résistance 10K nécessaire.

Si vous avez le 4 broches, vous aurez besoin d'une résistance de 10K et d'une maquette

Connectez le DHT11 à la carte Arduino. Ce programme demande que la broche de signal DHT 11 soit connectée à la broche Arduino #7, la broche Pos (+) connectée à 5V sur Arduino et Neg (-) à GND sur Arduino.

Reportez-vous aux diagrammes et aux diagrammes de frittage

Étape 3: Téléchargez l'IDE Arduino

Télécharger l'IDE Arduino
Télécharger l'IDE Arduino

Téléchargez l'IDE Arduino et installez-le sur l'ordinateur

www.arduino.cc/en/Main/Software

Étape 4: Connectez Arduino à l'ordinateur

Connecter Arduino à l'ordinateur
Connecter Arduino à l'ordinateur

Installez d'abord l'IDE Arduino, il dispose de pilotes pour la connexion USB Arduino.

Connectez Arduino à l'ordinateur via USB.

Attendez que l'ordinateur reconnaisse la carte Arduino et installe les pilotes.

Ouvrez le programme IDE et vérifiez la connexion série.

Si la carte Arduino n'apparaît pas dans le port Outils> (cercle rouge), fermez l'IDE et rouvrez-le.

*Important* une fois l'IDE ouvert et la carte Arduino connectée via USB. La carte Arduino doit être connectée au bon port série. Sur les ordinateurs Windows, il s'agit du port COM. Pour ce faire dans l'IDE, allez dans Outils>Port:>Ports série. Comme le montre le schéma, le port série (cercle rouge) doit correspondre au port répertorié dans le coin inférieur droit du programme IDE (cercle jaune).

Étape 5: Charger la bibliothèque

Charger la bibliothèque
Charger la bibliothèque
Charger la bibliothèque
Charger la bibliothèque
Charger la bibliothèque
Charger la bibliothèque
Charger la bibliothèque
Charger la bibliothèque

Chargez la bibliothèque pour le DHT11. C'était déroutant pour moi au début, mais c'est vraiment assez simple.

Téléchargez le fichier appelé « DHTLib » et décompressez-le. Copiez le fichier « DHTLib » décompressé.

La référence sur cette bibliothèque peut être trouvée à:

playground.arduino.cc/Main/DHTLib

(Il a été écrit par Rob Tillaart sur la base du travail d'autres personnes)

Recherchez le dossier Arduino sur votre ordinateur et ouvrez-le. (Ce sera partout où vous avez téléchargé l'IDE et l'avez installé sur l'ordinateur)

Voir schéma

Recherchez le fichier appelé « bibliothèques » et ouvrez-le, puis collez le dossier « DHTLib » dans le fichier « bibliothèques ». Fermez-le, puis redémarrez l'IDE.

Voir schéma

Une fois l'IDE rouvert, vous pouvez vérifier que la bibliothèque DHT a été installée. Esquisse> Inclure la bibliothèque.

Voir schéma

Remarque En cliquant sur DHTLib dans l'onglet "inclure la bibliothèque", la bibliothèque sera placée dans le code Arduino sous la forme "#include dht.h".

Vous n'avez pas besoin de le faire car il est déjà dans le code que vous téléchargerez à l'étape suivante.

Étape 6: Obtenez le code Arduino

Obtenez le code Arduino
Obtenez le code Arduino

Téléchargez le fichier Temp_Hum_Instructable.zip et décompressez. Ouvrez le Temp_Hum_Instructable.ino avec l'IDE Arduino.

Regardez alternativement le code suivant et copiez et collez ou tapez exactement dans l'IDE Arduino:

#comprendre

dht DHT; #define DHT11PIN 7// définit la broche 7 pour la connexion du signal DHT11 void setup(){ Serial.begin(9600); // ouvre la série } void loop() { int chk =DHT.read11(DHT11PIN);//lit DHT11 Serial.print(DHT.temperature, 0);//imprime temp en série Serial.print(", "); // imprime une virgule dans la série Serial.print (DHT.humidity, 0); // imprime l'humidité dans la série Serial.println (); // délai de retour chariot (2000); // attendez 2 secondes }

Lorsque vous avez terminé, cela devrait ressembler au diagramme ci-dessus

Étape 7: Chargez le code sur Arduino

Charger le code sur Arduino
Charger le code sur Arduino
Charger le code sur Arduino
Charger le code sur Arduino
Charger le code sur Arduino
Charger le code sur Arduino
Charger le code sur Arduino
Charger le code sur Arduino

Enregistrez d'abord le croquis à l'emplacement et avec un nom dont vous vous souviendrez, Exemple: Temp_Hum.

Ensuite, vous devez charger le croquis sur la carte Arduino en appuyant sur le bouton flèche pointant vers la droite (télécharger).

Voir schéma

Cela prendra quelques secondes; vous verrez une barre de progression en bas à droite.

Ensuite, vous verrez: Message de téléchargement terminé en bas à gauche et texte blanc en bas de l'IDE vous informant de la mémoire

Voir schéma

Si vous obtenez un code d'erreur (texte orange en bas de l'IDE), il doit être l'un des suivants

  1. La bibliothèque "DHTlib" n'a pas été copiée correctement
  2. Le port COM n'est pas configuré correctement
  3. Le capteur n'a pas été connecté correctement
  4. Le code n'a pas été chargé correctement dans l'IDE Le texte orange peut être parcouru et il donnera une idée de ce qui ne va pas. Revenez en arrière et vérifiez qu'il s'agit probablement d'une simple erreur.

Une fois cela fait, regardez attentivement votre carte Arduino. Toutes les deux secondes, la petite LED à côté des lettres "TX" clignotera. C'est l'Arduino qui renvoie les informations à l'ordinateur. Pour vérifier cela, cliquez sur le petit symbole de loupe dans le coin supérieur droit de l'IDE.

Voir schéma

Cela ouvrira le moniteur série et affichera les données de température et d'humidité séparées par une virgule. Vous noterez que les données de température sont répertoriées en degrés Celsius. C'est OK, nous convertirons en Fahrenheit plus tard (ou pas si vous avez choisi).

Voir schéma

Fermez ensuite le moniteur série, puis fermez l'IDE. (Vous avez pensé à l'enregistrer, n'est-ce pas?). Maintenant, regardez à nouveau la carte Arduino (ne la déconnectez pas de l'USB qui est l'endroit où elle est alimentée et envoie des données au port série de l'ordinateur). Clignote-t-il toujours ? Oui Super. Une fois le programme chargé sur l'Arduino, il fonctionnera tant qu'il sera alimenté.

Remarque sur le code: si vous regardez le code Arduino commençant par "boucle vide ();". Les 5 lignes de code suivantes indiquent à l'Arduino de lire les données du DHT et de les imprimer sur le bus série séparés par une virgule. La ligne suivante « retard (2000); » dit à l'Arduino d'attendre 2 secondes (2000 millisecondes) afin que les données soient reçues toutes les 2 secondes. Ensuite, il revient à "void loop ();" - une commande qui indique à l'Arduino de recommencer. La modification de la valeur dans la ligne de retard changera la fréquence de réception des données. Exemple: passer à (600000) changera à 10 minutes (600000 millisecondes = 10 minutes). Recevoir des données toutes les 2 secondes finit par être beaucoup de données, donc maintenant vous savez comment changer la fréquence de lecture des données. N'oubliez pas que si vous modifiez la valeur plus tard, vous besoin de télécharger le nouveau programme.

D'accord, asseyez-vous et respirez, vous êtes à plus de la moitié du chemin. Ouais!!

Étape 8: Télécharger et installer le traitement

Téléchargement et installation du traitement
Téléchargement et installation du traitement
Télécharger et installer le traitement
Télécharger et installer le traitement

processing.org/download/

Assez simple, sélectionnez le programme qui correspond à votre ordinateur pour Windows 64 bits contre 32 bits. Si vous ne le savez pas, ouvrez le Panneau de configuration sur votre ordinateur (affichage des icônes et non des catégories) et accédez au système, il y sera répertorié.

Voir schéma

Téléchargez puis installez le programme.

La première fois que vous ouvrez et exécutez le traitement, vous obtiendrez probablement un message de sécurité Java. Cliquez sur « autoriser » pour les réseaux privés. Java est le langage informatique utilisé par Processing (et Arduino IDE). Fait intéressant, je n'ai jamais eu le message de sécurité avec Arduino IDE, juste en cours de traitement.

Étape 9: Traitement du code

Code de traitement
Code de traitement

OK maintenant pour le code de traitement.

C'était la partie la plus difficile pour moi, mais aussi la plus grande opportunité d'apprentissage. Alors que le code Arduino comptait environ 20 lignes, ce code a +/- 270 lignes dans le code principal et 70 + dans les classes.

Maintenant, la première chose que vous devriez vous demander est « Qu'est-ce que les cours ? ». Bonne question. Cela fait référence à la programmation orientée objet. En bref, il se passe un tas de choses dans le code principal: définir la taille et la couleur de l'affichage, une horloge, une minuterie, du code pour afficher l'emplacement du curseur, du code pour enregistrer les données dans un fichier.csv et quelques lignes qui traitent du code qui affiche les graphiques à barres. Alors que l'IDE Arduino avait tout le code sur une seule page, ce code de traitement comporte trois onglets. Le premier est le code principal et les deux suivants sont le code qui affiche les graphiques à barres. (Ce code est en fait stocké dans trois fichiers distincts dans le dossier Code de traitement.) Les onglets distincts sont appelés « classes » et sont définis aux lignes 48 et 56, puis affichés par les lignes 179-182 du code principal. Les personnes qui ont écrit le programme de traitement appellent cette programmation orientée objet. (voir: https://processing.org/tutorials/objects/ pour une brève description).

Fondamentalement, les classes (Recta1, Recta2) de ce code créent des rectangles qui se déplacent de haut en bas en fonction des données reçues du DHT11 via série. Pensez au thermomètre à l'ancienne, plus le mercure monte, plus il fait chaud, mais cela se fait avec des données et non avec du mercure. En réalité, les classes créent quatre rectangles, deux rectangles statiques qui représentent l'arrière-plan du thermomètre et deux rectangles dynamiques qui répondent aux données et se déplacent de haut en bas. En plus de déplacer les rectangles, le code modifie la couleur du rectangle dynamique et la couleur de l'affichage numérique de la température et de l'humidité en fonction des données reçues par série.

Étape 10: Traitement des fichiers de code

Quelques notions de base sur le traitement du code:

Je recommande fortement de lire Make: Getting Started withProcessing par Casey Reas et Ben Fry, les fondateurs de Processing.

processing.org/books/#reasfry2

Je n'essaierai pas d'expliquer tous les aspects du traitement ou de l'écriture de code pour le traitement. Comme je l'ai dit plus tôt, je suis un débutant et je pense qu'il y a de bien meilleures personnes avec qui apprendre. Je comprends cependant le code que j'ai écrit (les essais et les erreurs sont de bons professeurs).

1. Le premier doit inclure des bibliothèques (comme dans Arduino) et déclarer des variables (lignes 1-25)

2. Ensuite, installez le tableau d'affichage (lignes 27-63)

3. Exécutez une partie répétée du code - ce que je veux dire, c'est que cette partie du code se répétera tant que le programme sera en cours d'exécution. Vous vous souviendrez dans Arduino "void loop ();" (Étape 6). En cours de traitement, il s'agit désormais de « void draw(); » (Lignes 65-184)

4. La prochaine étape consiste à récupérer les données du port série et à les affecter à des variables (int, float, String)

int-

flotter-

Chaîne de caractères-

(Lignes 185-245)

4. Enfin un moyen de fermer le programme et d'enregistrer les données (lignes 246-271)

Ok: Téléchargez le fichier Temp_Hum_F_3_2 (pour Fahrenheit)

Ou Temp_Hum_C_3_1 (pour Centigrade)

et décompressez le fichier. Ouvrir avec Traitement.

Étape 11: Police en cours de traitement

Police en cours de traitement
Police en cours de traitement

Important: j'attire votre attention sur les lignes 36-37

36 font =loadFont("SourceCodePro-Bold-48.vlw");//charge la police stockée dans les données

dossier 37 textFont(font);

Cette bibliothèque de polices "SourceCodePro-Bold-48.vlw" est incluse dans les téléchargements de fichiers de traitement et n'a pas besoin d'être modifiée pour fonctionner.

Cependant, pour changer la police en autre chose, vous devrez charger la nouvelle police dans l'esquisse de traitement ET remplacer "SourceCodePro-Bold-48.vlw" par la nouvelle police.

. Heureusement, Processing a rendu la première partie très facile.

Ouvrez d'abord une esquisse puis cliquez sur:

Outils>Créer une police

cela ouvre une fenêtre

Voir schéma

Faites défiler jusqu'à la nouvelle police souhaitée, cliquez dessus, puis cliquez sur OK. La police a maintenant été chargée dans le dossier de croquis.

Remplacez ensuite le texte "SourceCodePro-Bold-48.vlw" par le nom exact de la nouvelle police (y compris le format de fichier.vlw)

Si cela n'est pas fait, la nouvelle police ne sera pas chargée dans le code et le code donnera des erreurs (tout comme les erreurs dans Arduino - dans la boîte noire au bas du programme).

Étape 12: Terminer

Finir
Finir
Finir
Finir
Finir
Finir
Finir
Finir

Pour démarrer le programme de traitement, cliquez sur la flèche, vous pouvez obtenir un avertissement Java, cliquez sur: Autoriser l'accès.

Voir schéma

OK, le programme a-t-il fonctionné ? Si c'est le cas, vous obtiendrez un affichage comme celui vu dans le diagramme.

(Non ? Voir dépannage à l'étape suivante)

Oui? Essayez maintenant de tenir le DHT11 dans votre paume fermée ou de le placer sous le flux d'air chaud d'un sèche-cheveux. Les chiffres devraient changer. Oui? Super. cela signifie que tout fonctionne bien.

Pour fermer le programme et enregistrer les données, cliquez sur la case « Cliquez ici pour fermer et enregistrer les données ».

Maintenant, pour trouver les données enregistrées, accédez au dossier de traitement Temp_Hum_F_3_1 ou Temp_Hum_C_3_1 (vous devriez pouvoir le trouver vous-même maintenant), ouvrez-le et recherchez le dossier Données. Ouvrez-le et vous devriez voir un fichier.csv nommé d'après la date et l'heure à laquelle vous avez fermé le programme (exemple 1-10-18--22-30-16.csv signifie 10 janvier 2018 22:30:16). Ouvrez-le avec Excel (ou l'équivalent du tableur Open office). Vous devriez voir quelque chose comme le diagramme. Colonnes pour la date, l'heure, la durée d'exécution, la température et l'humidité avec des données. Vous pouvez maintenant représenter graphiquement les données avec Excel ou tout ce que vous voulez en faire. (Remarque: si vous regardez la première entrée de données, les données de température et d'humidité ne sont pas correctes, c'est normal et ce n'est qu'une erreur lorsque le programme démarre pour la première fois)

d'accord ouais !!!!!

Tu l'as fait

Si vous avez des questions, veuillez les poster et je ferai de mon mieux pour vous répondre et vous aider.

Merci d'être resté avec ça et bonne chance. J'espère que ce n'est qu'un début…..

Ensuite pour moi Bluetooth et éventuellement Android….

Étape 13: Dépannage

Dépannage
Dépannage
Dépannage
Dépannage

Problèmes Arduino

Si vous obtenez un code d'erreur (texte orange en bas de l'IDE), il doit être l'un des suivantsLa bibliothèque "DHTlib" n'a pas été copiée correctement

Le port COM n'est pas configuré correctement

Le capteur n'a pas été connecté correctement

Le code n'a pas été chargé correctement dans l'IDE

Si tout l'Arduino semble aller bien, n'oubliez pas d'ouvrir le moniteur série et de voir si les données sont affichées

Si vous voyez des données correctes, cela signifie que le côté Arduino fonctionne. N'oubliez pas de fermer le moniteur série avant de commencer le traitement, si le moniteur série est ouvert, le traitement ne peut pas lire les données.

Problèmes de traitement:

Ceux-ci seront affichés dans la partie inférieure du programme de traitement.

Si vous obtenez une erreur décrivant "police", revenez à l'étape 11 et chargez la police comme décrit.

Si vous obtenez une erreur qui ressemble à: Erreur, désactivation de serialEvent () pour COM4 null - redémarrez simplement l'esquisse de traitement en cliquant sur la flèche comme à l'étape 12

Si vous obtenez une erreur indiquant: Erreur d'ouverture du port série - essayez de changer les lignes 32-34 en quelque chose comme où "COM4" correspond au port COM dans votre croquis Arduino

myPort = newSerial(this, "COM4", 9600);//Port myPort.bufferUntil('\n')//attendez que la série ait des données

Conseillé: