Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Tutoriel sur la carte SD Arduino et l'enregistrement de données

Dans ce didacticiel Arduino, nous apprendrons à utiliser un module de carte SD avec la carte Arduino. Également en combinaison avec le module DS3231 Real Time Clock, nous créerons un exemple d'enregistrement de données dans lequel nous stockerons les données d'un capteur de température sur la carte SD et les importerons dans Excel pour en faire un graphique. Vous pouvez regarder la vidéo suivante ou lire le didacticiel écrit ci-dessous.

Comment ça marche

Examinons d'abord le module de carte SD. Il fonctionne avec les cartes MicroSD standard dont la tension de fonctionnement est de 3,3 V. Par conséquent, le module dispose d'un régulateur de tension et d'un sélecteur de niveau afin que nous puissions l'utiliser avec les broches 5 V de la carte Arduino.

Le module de carte SD a six broches, deux pour alimenter le module, les broches VCC et GND, et quatre autres broches pour la communication SPI. Voici comment nous devons le connecter à la carte Arduino.

Notez que chaque carte Arduino a des broches SPI différentes qui doivent être connectées en conséquence.

Vous pouvez obtenir les composants nécessaires pour ce didacticiel Arduino à partir des liens ci-dessous :

  • Module de carte micro SD………………..
  • Carte Arduino ……………………………
  • Breadboard et Jump Wires ……… 

Code du module de carte SD Arduino

Ensuite, nous devons programmer l'Arduino. Voici un code simple :

/*
 *  Arduino SD Card Tutorial Example
 *  
 *  by Dejan Nedelkovski, www.HowToMechatronics.com
 */

#include <SD.h>
#include <SPI.h>

File myFile;

int pinCS = 53; // Pin 10 on Arduino Uno

void setup() {
    
  Serial.begin(9600);
  pinMode(pinCS, OUTPUT);
  
  // SD Card Initialization
  if (SD.begin())
  {
    Serial.println("SD card is ready to use.");
  } else
  {
    Serial.println("SD card initialization failed");
    return;
  }
  
  // Create/Open file 
  myFile = SD.open("test.txt", FILE_WRITE);
  
  // if the file opened okay, write to it:
  if (myFile) {
    Serial.println("Writing to file...");
    // Write to file
    myFile.println("Testing text 1, 2 ,3...");
    myFile.close(); // close the file
    Serial.println("Done.");
  }
  // if the file didn't open, print an error:
  else {
    Serial.println("error opening test.txt");
  }

  // Reading the file
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("Read:");
    // Reading the whole file
    while (myFile.available()) {
      Serial.write(myFile.read());
   }
    myFile.close();
  }
  else {
    Serial.println("error opening test.txt");
  }
  
}
void loop() {
  // empty
}Code language: Arduino (arduino)

Description du code :  Nous devons donc d'abord inclure les bibliothèques SD et SPI standard, créer un objet "File" et définir la broche ChipSelect du bus SPI, la broche 53 dans mon cas pour l'Arduino Mega Board. Pour cet exemple, nous voulons que notre code ne soit exécuté qu'une seule fois, donc tout le code sera placé dans la section "configuration", tandis que la section "boucle" restera vide.

Nous devons donc d'abord démarrer la communication série et définir la broche ChipSelect comme sortie. Nous devons le faire car la broche ChipSelect doit être "Low" pour que la communication SPI entre le module et l'Arduino fonctionne.

Ensuite, en utilisant la fonction SD.begin(), nous initialiserons la carte SD et si l'initialisation réussit, l'instruction "if" deviendra vraie et la chaîne "La carte SD est prête à être utilisée". sera imprimé sur le moniteur série, sinon la chaîne "Échec de l'initialisation de la carte SD" sera imprimée et le programme sera également terminé.

Ensuite, en utilisant la fonction SD.open(), nous allons créer un nouveau fichier nommé "test.txt", y compris l'argument FILE_WRITE, ce qui signifie que nous pouvons à la fois lire et écrire dans le fichier. Si le fichier existe déjà, la fonction SD.open() l'ouvrira simplement.

Donc, si le fichier a été créé avec succès, nous imprimerons d'abord la chaîne "Writing to file" sur le moniteur série, puis en utilisant la fonction myFile.println(), nous imprimerons le texte "Testing text 1, 2 ,3…" dans le dossier. Après cela, nous devons utiliser la fonction close() pour nous assurer que les données précédentes écrites dans le fichier sont physiquement enregistrées sur la carte SD.

Ensuite, nous verrons comment nous pouvons lire à partir du fichier. Donc encore une fois on va utiliser la même fonction, SD.open(), mais cette fois comme le fichier « test.txt » a déjà été créé, la fonction va juste ouvrir le fichier. Ensuite, en utilisant la fonction myFile.read(), nous lirons le fichier et l'imprimerons sur le moniteur série. La fonction read() ne lit en fait qu'un seul caractère à la fois, nous devons donc utiliser la boucle "while" et la fonction myFile.available() pour lire tous les caractères ou toutes les données précédemment écrites. À la fin, nous devons fermer le fichier.

Maintenant, après avoir téléchargé le code sur l'Arduino, si tout va bien, ce qui suit apparaîtra sur le moniteur série.

Comme nous pouvons le voir, la carte SD a été initialisée avec succès, l'écriture sur celle-ci a également réussi, et la lecture des données écrites ou de la chaîne "Testing text 1, 2 ,3…" a été lue avec succès. Si nous ouvrons la carte SD sur notre ordinateur, nous pouvons voir le fichier "test.txt" créé et le texte qui y est écrit.

Enregistrement des données de la carte SD Arduino

Faisons maintenant un autre exemple plus intéressant d'enregistrement de données d'un capteur de température. À cette fin, nous utiliserons le module d'horloge en temps réel DS3231 qui possède également un capteur de température intégré. Vous pouvez trouver plus de détails sur la façon de se connecter et d'utiliser ce module dans mon tutoriel précédent.

Ainsi, après avoir connecté les deux modules à l'Arduino, examinons le code de cet exemple.

/*
 *  Arduino Temperature Data Logging
 *  
 *  by Dejan Nedelkovski, www.HowToMechatronics.com
 */

#include <SD.h>
#include <SPI.h>
#include <DS3231.h>

File myFile;
DS3231  rtc(SDA, SCL);

int pinCS = 53; // Pin 10 on Arduino Uno

void setup() {
    
  Serial.begin(9600);
  pinMode(pinCS, OUTPUT);
  
  // SD Card Initialization
  if (SD.begin())
  {
    Serial.println("SD card is ready to use.");
  } else
  {
    Serial.println("SD card initialization failed");
    return;
  }
  rtc.begin();    
}
void loop() {
  Serial.print(rtc.getTimeStr());
  Serial.print(",");
  Serial.println(int(rtc.getTemp()));
 
  myFile = SD.open("test.txt", FILE_WRITE);
  if (myFile) {    
    myFile.print(rtc.getTimeStr());
    myFile.print(",");    
    myFile.println(int(rtc.getTemp()));
    myFile.close(); // close the file
  }
  // if the file didn't open, print an error:
  else {
    Serial.println("error opening test.txt");
  }
  delay(3000);
}Code language: Arduino (arduino)

Description du code :  Nous devons d'abord inclure les bibliothèques nécessaires pour les deux modules, puis créer les deux objets et dans la section de configuration, les initialiser.

Dans la section boucle utilisant la fonction Serial.print(), nous imprimerons les valeurs d'heure et de température sur le moniteur série, avec un caractère "virgule" entre eux et une nouvelle ligne après la valeur de température. Nous avons besoin de cette forme de lignes pour pouvoir les importer facilement et créer un graphique dans Excel. Notez également que les valeurs de température sont converties en nombres entiers.

Ainsi, ces mêmes valeurs seront également écrites dans le fichier "test.txt" nouvellement créé et à la fin, nous n'avons qu'à ajouter un délai qui représentera l'intervalle d'enregistrement des données de température.

Après avoir téléchargé le code, l'Arduino commencera à stocker les valeurs de température toutes les 3 secondes. Après un certain temps, nous pouvons ouvrir la carte SD sur notre ordinateur pour voir les résultats.

Pour créer un graphique dans Excel, nous devons importer ce fichier et voici comment procéder :

Dans le menu des données, nous devons cliquer sur le bouton "Obtenir les données du texte" et sélectionner le fichier texte. Ici, nous allons choisir "Délimité" et cliquer sur suivant, et dans la deuxième étape, sélectionnez la virgule comme délimiteur, puis terminez l'assistant.

Ainsi, ce processus insérera les valeurs de temps et de température dans des colonnes séparées. Maintenant, nous avons juste besoin de sélectionner les deux colonnes et dans le menu d'insertion, sélectionnez "Insérer un graphique en courbes". Cela créera le graphique où nous pourrons voir les valeurs de température toutes les 3 secondes.

C'est tout pour ce tutoriel, n'hésitez pas à poser n'importe quelle question dans la section des commentaires ci-dessous.


Processus de fabrication

  1. [Vidéo] La journalisation des données et le tableau de bord de la machine (PLC) expliqués
  2. Tutoriel sur le verrouillage RFID Arduino
  3. Comment créer un moniteur d'énergie et un enregistreur de données Arduino
  4. Animation LCD et jeux
  5. Enregistreur de données de température et d'humidité
  6. Communication Python3 et Arduino
  7. Radio FM utilisant Arduino et RDA8057M
  8. Tutoriel sur le capteur d'empreintes digitales Arduino
  9. Tutoriel Arduino 01 :Prise en main