Ang pag -log ng data ay isang mahalagang aspeto ng marami IoT, pagsubaybay sa kapaligiran, at mga proyekto na batay sa sensor. Na may isang Arduino at isang module ng SD card, kaya mo Mag -imbak ng data ng sensor, timestamp, at iba pang mga pagbabasa para sa pagsusuri sa hinaharap. Ang gabay na ito ay magpapakita sa iyo kung paano Ikonekta ang isang module ng SD card sa Arduino, sumulat at magbasa ng data, at mag -troubleshoot ng mga karaniwang isyu.
1. Ano ang kailangan mo
✅ Lupon ng Arduino (Uno, mega, nano, atbp.)
✅ Micro SD Card Module (batay sa SPI)
✅ MicroSD Card (FAT32 Formatted, Inirerekomenda ng 2GB - 32GB)
✅ Jumper wires
✅ Mga Sensor (Opsyonal, hal., DHT11, BMP280, atbp.)
🔹 Tandaan: Ang module ng SD ay nakikipag -usap sa paggamit ni Arduino SPI (Serial Peripheral Interface).
2. Wiring Ang SD Card Module sa Arduino
SD Card Module Pin | Arduino uno pin | Arduino Mega Pin |
---|---|---|
VCC | 5v | 5v |
Gnd | Gnd | Gnd |
MISO | 12 (spi miso) | 50 (spi miso) |
Mosi | 11 (spi mosi) | 51 (spi mosi) |
SCK | 13 (SPI SCK) | 52 (SPI SCK) |
CS (Chip Select) | 10 (SPI CS) | 53 (SPI CS) |
3. Pag -install ng kinakailangang library
- Buksan Arduino Ide.
- Pumunta sa Sketch → Isama ang Library → Pamahalaan ang mga aklatan.
- Maghanap SD at i -install ang SD Library ni Arduino.
4. Pagsisimula sa SD Card (Pagsubok Kung Gumagana ang SD Module)
Gamitin ang sumusunod pangunahing code ng pagsubok Upang suriin kung gumagana ang module ng SD:
#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
}
Ano ang ginagawa ng code na ito:
✔ Initialize ang SD module.
✔ Mga kopya "Handa na ang SD Card" kung napansin.
✔ Mga kopya "Nabigo ang pagsisimula ng SD card!" Kung mayroong isang error.
🔹 Pag -aayos:
✅ Suriin na ang SD card ay FAT32 Na -format.
✅ Matiyak Tamang mga kable (Miso, Mosi, SCK, at CS).
✅ Subukan ang isa pa CS PIN (hal., 4 sa halip na 10) at i -update ang code.
5. Ang data ng pagsulat sa SD card
Ang halimbawang ito Lumilikha ng isang file (data.txt
) at nagsusulat ng mga pagbabasa ng sensor dito.
#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
}
Ano ang ginagawa ng code na ito:
✔ Lumilikha o magbubukas data.txt
.
✔ Nagsusulat "Kumusta, ito ay isang test log!" sa file.
✔ Isinasara ang file pagkatapos ng pagsulat.
🔹 Mga Pag -andar sa Paghahawak ng File:
✔ SD.open("filename.txt", FILE_WRITE);
→ Buksan ang file para sa pagsulat.
✔ dataFile.println("Text");
→ Sumulat ng data upang mag -file.
✔ dataFile.close();
→ Isara ang file upang makatipid ng data.
6. Pagbasa ng Data mula sa SD Card
Gamitin ang code na ito sa Basahin at ipakita ang data mula sa SD card.
#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
}
Ano ang ginagawa ng code na ito:
✔ Magbubukas data.txt
para sa pagbabasa.
✔ Nag -print ng mga nilalaman ng file na Serial monitor.
🔹 Tip: Tiyaking ang file umiiral bago basahin Upang maiwasan ang mga pagkakamali.
7. Pag -log ng data ng sensor sa SD card
Ang halimbawang ito ay nag -log Ang data ng temperatura at kahalumigmigan mula sa isang sensor ng DHT11.
Mga kinakailangang sangkap
✅ DHT11 temperatura at sensor ng kahalumigmigan
✅ DHT Library (Adafruit DHT Sensor Library)
Mga kable para sa sensor ng DHT11
DHT11 PIN | Arduino Pin |
---|---|
VCC | 5v |
Gnd | Gnd |
Data | 2 |
Code: Pag -log ng DHT11 Data sa SD Card
#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
}
Ano ang ginagawa ng code na ito:
✔ Nagbabasa temperatura at kahalumigmigan mula sa Sensor ng DHT11.
✔ Log ang data sa log.txt
sa SD card.
✔ Nag -print ng mga halaga sa Serial monitor.
8. Mga tip sa pag -aayos
Suliranin: Hindi napansin ang SD card?
✅ Tiyakin na ang SD card ay FAT32 Na -format.
✅ Double-check Miso, Mosi, SCK, at CS Wiring.
✅ Subukan Iba't ibang SD card (Ang ilang mga kard ay hindi tugma).
Suliranin: Hindi naka -save ang data?
✅ Palagi Isara ang file Paggamit dataFile.close();
.
✅ Matiyak Sapat na espasyo sa imbakan ay magagamit sa SD card.
9. Mga praktikal na aplikasyon
✔ Sistema ng pagsubaybay sa panahon - temperatura ng log, kahalumigmigan, at presyon ng hangin.
✔ Pagmamanman ng enerhiya - Magtala boltahe at kasalukuyang pagbabasa sa paglipas ng panahon.
✔ Pagsubaybay sa GPS - Tindahan latitude at longitude data mula sa isang module ng GPS.
✔ Pag -log ng Kaganapan - Mag -record ng sensor na nag -trigger o mga pindutan ng pindutan.
10. Konklusyon
Gamit ang isang SD Card Module kasama si Arduino ay isang mahusay na paraan upang Mag -imbak ng data ng sensor, mga kaganapan sa log, o lumikha ng isang portable data logger. Kasama Komunikasyon ng SPI, madali mo Basahin at isulat ang mga file, ginagawang perpekto para sa IoT at mga proyekto ng automation.