डेटा लॉगिंग कई का एक महत्वपूर्ण पहलू है IoT, पर्यावरण निगरानी, और सेंसर-आधारित परियोजनाएं। एक साथ Arduino और एक SD कार्ड मॉड्यूल, तुम कर सकते हो स्टोर सेंसर डेटा, टाइमस्टैम्प्स और अन्य रीडिंग भविष्य के विश्लेषण के लिए। यह गाइड आपको दिखाएगा कि कैसे करें एक एसडी कार्ड मॉड्यूल को Arduino से कनेक्ट करें, डेटा लिखें और पढ़ें, और सामान्य मुद्दों का निवारण करें।
1। आपको क्या चाहिए
✅ अर्डुइनो बोर्ड (UNO, मेगा, नैनो, आदि)
✅ माइक्रो एसडी कार्ड मॉड्यूल
✅ माइक्रोएसडी कार्ड (FAT32 स्वरूपित, 2GB -32GB अनुशंसित)
✅ जम्पर तार
✅ सेंसर (वैकल्पिक, जैसे, DHT11, BMP280, आदि)
🔹 टिप्पणी: एसडी मॉड्यूल Arduino के साथ संवाद करता है सीरियल पेरिफेरल इंटरफ़ेस).
2। एसडी कार्ड मॉड्यूल को Arduino को वायरिंग
एसडी कार्ड मॉड्यूल पिन | Arduino Uno पिन | अर्जिनो मेगा पिन |
---|---|---|
वीसीसी | 5V | 5V |
Gnd | Gnd | Gnd |
मिसो | 12 (एसपीआई मिसो) | 50 (एसपीआई मिसो) |
मोसी | 11 (एसपीआई मोसी) | 51 (एसपीआई मोसी) |
संप्रदाय | 13 (एसपीआई एससीके) | 52 (एसपीआई एससीके) |
सीएस (चिप सेलेक्ट) | 10 (एसपीआई सीएस) | 53 (एसपीआई सीएस) |
3। आवश्यक पुस्तकालय स्थापित करना
- खुला अर्डुइनो आइड.
- जाओ स्केच → पुस्तकालय शामिल करें → पुस्तकालयों का प्रबंधन करें.
- निम्न को खोजें एसडी और स्थापित करें Arduino द्वारा SD लाइब्रेरी.
4। एसडी कार्ड को आरंभ करना (यदि एसडी मॉड्यूल काम करता है तो परीक्षण)
निम्नलिखित का उपयोग करें मूल परीक्षण संहिता यह जांचने के लिए कि क्या एसडी मॉड्यूल काम कर रहा है:
#include <SPI.h>
#include <SD.h>
const int chipSelect = 10; // Set CS pin for SD card
void setup() {
Serial.begin(115200);
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
Serial.println("SD card is ready.");
}
void loop() {
// Nothing here
}
यह कोड क्या करता है:
✔ आरंभ करता है एसडी मॉड्यूल.
✔ प्रिंटों "एसडी कार्ड तैयार है" अगर पता चला।
✔ प्रिंटों "एसडी कार्ड इनिशियलाइज़ेशन विफल रहा!" अगर कोई त्रुटि है।
🔹 समस्या निवारण:
✅ जांचें कि एसडी कार्ड है FAT32 स्वरूपित.
✅ सुनिश्चित करना सही वायरिंग (मिसो, मोसी, एससीके और सीएस)।
✅ दूसरे की कोशिश करो सीएस पिन (जैसे, 10 के बजाय 4) और कोड अपडेट करें।
5। एसडी कार्ड को डेटा लिखना
यह उदाहरण एक फ़ाइल बनाता है (data.txt
) और इसके लिए सेंसर रीडिंग लिखता है.
#include <SPI.h>
#include <SD.h>
const int chipSelect = 10;
void setup() {
Serial.begin(115200);
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
File dataFile = SD.open("data.txt", FILE_WRITE);
if (dataFile) {
dataFile.println("Hello, this is a test log!");
dataFile.close();
Serial.println("Data written to SD card.");
} else {
Serial.println("Failed to open file.");
}
}
void loop() {
// Nothing here
}
यह कोड क्या करता है:
✔ बनाता है या खोलता है data.txt
.
✔ लेखन "हैलो, यह एक परीक्षण लॉग है!" फ़ाइल के लिए।
✔ लिखने के बाद फ़ाइल को बंद कर देता है।
🔹 फ़ाइल हैंडलिंग फ़ंक्शन:
✔ SD.open("filename.txt", FILE_WRITE);
→ लेखन के लिए खुली फ़ाइल।
✔ dataFile.println("Text");
→ फाइल करने के लिए डेटा लिखें।
✔ dataFile.close();
→ डेटा सहेजने के लिए फ़ाइल बंद करें।
6। एसडी कार्ड से डेटा पढ़ना
इस कोड का उपयोग करें एसडी कार्ड से डेटा पढ़ें और प्रदर्शित करें.
#include <SPI.h>
#include <SD.h>
const int chipSelect = 10;
void setup() {
Serial.begin(115200);
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
File dataFile = SD.open("data.txt");
if (dataFile) {
Serial.println("Reading file...");
while (dataFile.available()) {
Serial.write(dataFile.read()); // Print file content
}
dataFile.close();
} else {
Serial.println("Failed to open file.");
}
}
void loop() {
// Nothing here
}
यह कोड क्या करता है:
✔ खोलना data.txt
पढ़ने के लिए।
✔ फ़ाइल की सामग्री को प्रिंट करता है सीरियल मॉनिटर.
🔹 बख्शीश: सुनिश्चित करें कि फ़ाइल पढ़ने से पहले मौजूद है त्रुटियों से बचने के लिए।
7। एसडी कार्ड में सेंसर डेटा लॉगिंग
यह उदाहरण लॉग करता है DHT11 सेंसर से तापमान और आर्द्रता डेटा.
आवश्यक घटक
✅ DHT11 तापमान और आर्द्रता संवेदक
✅ डीएचटी लाइब्रेरी
DHT11 सेंसर के लिए वायरिंग
DHT11 पिन | अर्डुइनो पिन |
---|---|
वीसीसी | 5V |
Gnd | Gnd |
डेटा | 2 |
कोड: एसडी कार्ड के लिए DHT11 डेटा को लॉग करना
#include <SPI.h>
#include <SD.h>
#include <DHT.h>
#define DHTPIN 2 // Pin connected to DHT sensor
#define DHTTYPE DHT11 // Define sensor type (DHT11 or DHT22)
DHT dht(DHTPIN, DHTTYPE);
const int chipSelect = 10;
void setup() {
Serial.begin(115200);
dht.begin();
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
}
void loop() {
float temp = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temp) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
File dataFile = SD.open("log.txt", FILE_WRITE);
if (dataFile) {
dataFile.print("Temperature: ");
dataFile.print(temp);
dataFile.print(" °C, Humidity: ");
dataFile.print(humidity);
dataFile.println(" %");
dataFile.close();
} else {
Serial.println("Failed to write to SD card.");
}
Serial.print("Logged: Temp = ");
Serial.print(temp);
Serial.print(" °C, Humidity = ");
Serial.println(humidity);
delay(2000); // Log every 2 seconds
}
यह कोड क्या करता है:
✔ पुस्तकें तापमान और आर्द्रता से DHT11 सेंसर.
✔ डेटा को लॉग करता है log.txt
एसडी कार्ड पर।
✔ मानों को प्रिंट करता है सीरियल मॉनिटर.
8। समस्या निवारण युक्तियाँ
संकट: एसडी कार्ड का पता नहीं चला?
✅ सुनिश्चित करें कि एसडी कार्ड है FAT32 स्वरूपित.
✅ दोहरी जाँच मिसो, मोसी, एससीके और सीएस वायरिंग.
✅ कोशिश एक अलग एसडी कार्ड (कुछ कार्ड असंगत हैं)।
संकट: डेटा बचत नहीं है?
✅ हमेशा फ़ाइल बंद करें का उपयोग करते हुए dataFile.close();
.
✅ सुनिश्चित करना पर्याप्त भंडारण स्थान एसडी कार्ड पर उपलब्ध है।
9। व्यावहारिक अनुप्रयोग
✔ मौसम की निगरानी प्रणाली - लॉग तापमान, आर्द्रता और हवा का दबाव।
✔ ऊर्जा निगरानी - अभिलेख वोल्टेज और वर्तमान समय के साथ रीडिंग।
✔ जीपीएस ट्रैकिंग - इकट्ठा करना अक्षांश और देशांतर एक जीपीएस मॉड्यूल से डेटा।
✔ इवेंट लॉगिंग - रिकॉर्ड सेंसर ट्रिगर या बटन प्रेस।
10। निष्कर्ष
एक का उपयोग कर रहा है Arduino के साथ SD कार्ड मॉड्यूल के लिए एक शानदार तरीका है सेंसर डेटा, लॉग इवेंट्स को स्टोर करें, या पोर्टेबल डेटा लकड़हारा बनाएं। साथ एसपीआई संचार, आप आसानी से कर सकते हैं फ़ाइलें पढ़ें और लिखें, इसके लिए आदर्श बना रहा है IoT और स्वचालन परियोजनाएं.