Module de carte SD d'interfaçage pour l'enregistrement des données

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous allons interfacer le module de carte SD avec arduino pour l'enregistrement des données. Nous verrons un aperçu du module de carte SD et comprendrons ses configurations de broches et ses composants embarqués. Enfin, nous allons construire un circuit pour enregistrer les données de température et d'humidité sur la carte SD.



Carte numérique sécurisée

La carte SD ou la carte Secure Digital est une aubaine pour l'électronique moderne car elle offre un stockage de grande capacité à une taille minimale. Nous avons utilisé la carte SD pour le stockage multimédia dans l'un des projets précédents (lecteur MP3). Ici, nous allons l'utiliser pour l'enregistrement des données.

L'enregistrement des données est l'étape fondamentale pour enregistrer l'occurrence passée d'un incident. Par exemple: des scientifiques et des chercheurs capables d'interpréter l'élévation de la température mondiale.



Ils sont arrivés à cette conclusion après avoir compris la tendance à la hausse des températures en examinant les données des dernières décennies. L'enregistrement des données sur l'incident actuel peut également révéler l'occurrence future.

Étant donné qu'arduino est un excellent microcontrôleur pour la lecture des données des capteurs et prend en charge divers protocoles de communication pour lire les capteurs et les périphériques de sortie d'entrée, la connexion entre le module de carte SD arduino a fait du gâteau.

Étant donné qu'arduino ne dispose d'aucun stockage autre que son propre espace de stockage de programme, nous pouvons ajouter un stockage externe à l'aide du module décrit dans cet article.

Jetons maintenant un œil au module de carte SD.

Image du module de carte SD:

Image du module de carte SD:

Revers du module et configuration des broches:

Revers du module et configuration des broches:

Il y a six broches et il prend en charge le protocole de communication SPI (interface périphérique série). Pour Arduino UNO, les broches de communication SPI sont 13, 12, 11 et 10. Pour Arduino mega, les broches SPI sont 50, 51, 52 et 53.

Le projet proposé est illustré avec Arduino UNO si vous avez un autre modèle d'Arduino, veuillez vous référer à Internet pour les broches SPI.

Le module se compose d'un support de carte qui maintient la carte SD en place. Un régulateur de 3,3 V est fourni pour limiter la tension aux cartes SD car il est conçu pour fonctionner à 3,3 V et non à 5 V.

Il a un circuit intégré LVC125A à bord qui est un décalage de niveau logique. La fonction du décalage de niveau logique est de réduire les signaux 5V d'arduino en signaux logiques 3,3V.

Maintenant, cela conclut le module de carte SD.

En utilisant le module de carte SD, nous pouvons stocker n'importe quel roi de données, ici nous allons stocker des données texte. Nous stockerons les données de température et d'humidité sur la carte SD. Nous utilisons également un module d'horloge en temps réel pour enregistrer l'heure avec les données du capteur. Il enregistre les données toutes les 30 secondes.

Diagramme schématique:

Module de carte SD d

Le module RTC gardera une trace de l'heure et enregistrera la date et l'heure sur la carte SD.

Le voyant d'erreur clignote rapidement si la carte SD échoue ou ne s'initialise pas ou si la carte SD n'est pas présente. Le reste du temps, la LED reste éteinte.

COMMENT RÉGLER L'HEURE DE RTC:

• Téléchargez la bibliothèque ci-dessous.
• Une fois la configuration matérielle terminée, connectez l'arduino au PC.
• Ouvrez l'IDE arduino
• Accédez à Fichier> Exemples> DS1307RTC> SetTime.
• Téléchargez le code et RTC sera synchronisé avec l'heure de l'ordinateur.
• Téléchargez maintenant le code ci-dessous.

Veuillez télécharger la bibliothèque arduino suivante avant de télécharger le code.

DS1307RTC: github.com/PaulStoffregen/DS1307RTC

DHT11 température et humidité: arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Programme:

//-----Program developed by R.Girish-----//
#include
#include
#include
#include
#include
#include
#define DHTxxPIN A0
const int cs = 10
const int LED = 7
dht DHT
int ack
int f
File myFile
void setup()
{
Serial.begin(9600)
pinMode(LED,OUTPUT)
if (!SD.begin(cs))
{
Serial.println('Card failed, or not present')
while(true)
{
digitalWrite(LED, HIGH)
delay(100)
digitalWrite(LED, LOW)
delay(100)
}
}
Serial.println('Initialization done')
}
void loop()
{
myFile = SD.open('TEST.txt', FILE_WRITE)
if(myFile)
{
Serial.println('----------------------------------------------')
myFile.println('----------------------------------------------')
tmElements_t tm
if(!RTC.read(tm))
{
goto A
}
if (RTC.read(tm))
{
Serial.print('TIME:')
if(tm.Hour>12) //24Hrs to 12 Hrs conversion//
{
if(tm.Hour==13)
{
Serial.print('01')
myFile.print('01')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==14)
{
Serial.print('02')
myFile.print('02')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==15)
{
Serial.print('03')
myFile.print('03')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==16)
{
Serial.print('04')
myFile.print('04')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==17)
{
Serial.print('05')
myFile.print('05')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==18)
{
Serial.print('06')
myFile.print('06')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==19)
{
Serial.print('07')
myFile.print('07')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==20)
{
Serial.print('08')
myFile.print('08')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==21)
{
Serial.print('09')
myFile.print('09')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==22)
{
Serial.print('10')
myFile.print('10')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==23)
{
Serial.print('11')
myFile.print('11')
Serial.print(':')
myFile.print(':')
}
else
{
Serial.print(tm.Hour)
myFile.print(tm.Hour)
Serial.print(':')
myFile.print(':')
}
Serial.print(tm.Minute)
myFile.print(tm.Minute)
Serial.print(':')
myFile.print(':')
Serial.print(tm.Second)
myFile.print(tm.Second)
if(tm.Hour>=12)
{
Serial.print(' PM')
myFile.print( ' PM')
}
if(tm.Hour<12)
{
Serial.print('AM')
myFile.print( ' AM')
}
Serial.print(' DATE:')
myFile.print(' DATE:')
Serial.print(tm.Day)
myFile.print(tm.Day)
Serial.print('/')
myFile.print('/')
Serial.print(tm.Month)
myFile.print(tm.Month)
Serial.print('/')
myFile.print('/')
Serial.println(tmYearToCalendar(tm.Year))
myFile.println(tmYearToCalendar(tm.Year))
Serial.println('----------------------------------------------')
myFile.println('----------------------------------------------')
} else {
A:
if (RTC.chipPresent())
{
Serial.print('RTC stopped!!!')
myFile.print('RTC stopped!!!')
Serial.println(' Run SetTime code')
myFile.println(' Run SetTime code')
} else {
Serial.print('RTC Read error!')
myFile.print('RTC Read error!')
Serial.println(' Check circuitry!')
myFile.println(' Check circuitry!')
}
}
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
f=DHT.temperature*1.8+32
Serial.print('Temperature(C) = ')
myFile.print('Temperature(°C) = ')
Serial.println(DHT.temperature)
myFile.println(DHT.temperature)
Serial.print('Temperature(F) = ')
myFile.print('Temperature(°F) = ')
Serial.print(f)
myFile.print(f)
Serial.print('n')
myFile.println(' ')
Serial.print('Humidity(%) = ')
myFile.print('Humidity(%) = ')
Serial.println(DHT.humidity)
myFile.println(DHT.humidity)
Serial.print('n')
myFile.println(' ')
}
if(ack==1)
{
Serial.println('NO DATA')
myFile.println('NO DATA')
}
for(int i=0 i<30 i++)
{
delay(1000)
}
}
myFile.close()
}
}

// ----- Programme développé par R.Girish ----- //

Une fois que le circuit est autorisé à enregistrer des données pendant un certain temps, vous pouvez retirer la carte SD connectée à votre ordinateur, il y aura un fichier TEXT.txt dans lequel toutes les données de température et d'humidité sont enregistrées avec l'heure et la date, comme indiqué ci-dessous.

REMARQUE: L'idée ci-dessus est un exemple d'interface et d'enregistrement de données. L'utilisation de ce projet dépend de votre imagination, vous pouvez enregistrer des données de capteur de toute nature.

Prototype de l'auteur:

Prototype de module de carte SD interfacé avec Arduino




Précédent: Capteurs sans contact - infrarouge, température / humidité, capacitif, lumière Un article: Comment connecter un capteur de photodiode IR dans un circuit