Az adatnaplózás soknak kulcsfontosságú aspektusa IoT, környezeti megfigyelés és érzékelő-alapú projektek- Egy Arduino és egy SD -kártya modul, tudsz Tárolja az érzékelő adatait, az időbélyegeket és az egyéb leolvasásokat A jövőbeli elemzéshez. Ez az útmutató megmutatja, hogyan kell Csatlakoztasson egy SD -kártya modult az Arduino -hoz, Írja be és olvassa el az adatokat, és elhárítsa a közös problémákat.
1, amire szüksége van
✅ Arduino Board (Uno, Mega, Nano stb.)
✅ Mikro SD kártya modul (SPI-alapú)
✅ MicroSD kártya (FAT32 formázott, 2 GB - 32 GB ajánlott)
✅ Jumper vezetékek
✅ Érzékelők (opcionális, például DHT11, BMP280 stb.)
🔹 Jegyzet: Az SD modul az Arduino -val kommunikál SPI (soros perifériás interfész).
2. Az SD -kártya modult az Arduino -ra huzalja
SD kártya modul tű | Arduino Uno Pin | Arduino Mega Pin |
---|---|---|
VCC | 5 V -os | 5 V -os |
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. A szükséges könyvtár telepítése
- Nyitott Arduino ide.
- Elindul Vázlat → Vegye fel a könyvtárat → Könyvtárak kezelése.
- Keres SD és telepítse a SD könyvtár Arduino.
4. Az SD -kártya inicializálása (tesztelje, ha az SD modul működik)
Használja a következőket alapvető teszt kód Annak ellenőrzése, hogy az SD modul működik -e:
#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
}
Mit csinál ez a kód:
✔ Inicializálja a SD modul.
✔ Nyomatok "Az SD -kártya készen áll" Ha észlelik.
✔ Nyomatok "Az SD -kártya inicializálása sikertelen!" Ha hiba van.
🔹 Hibaelhárítás:
✅ Ellenőrizze, hogy az SD -kártya van -e FAT32 formázott.
✅ Biztosít helyes vezeték (Miso, Mosi, SCK és CS).
✅ Próbálj meg egy másikat CS PIN (például 4 helyett 4) és frissítse a kódot.
5. Adatok írása az SD -kártyára
Ez a példa létrehoz egy fájlt (data.txt
) és az érzékelő leolvasásait írja rá.
#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
}
Mit csinál ez a kód:
✔ Létrehozza vagy kinyitja data.txt
.
✔ Ír "Helló, ez egy tesztnapló!" a fájlhoz.
✔ Írás után bezárja a fájlt.
🔹 Fájlkezelési funkciók:
✔ SD.open("filename.txt", FILE_WRITE);
→ Nyissa meg a fájlt az íráshoz.
✔ dataFile.println("Text");
→ Adatok írása a fájlba.
✔ dataFile.close();
→ Zárja be a fájlt az adatok mentéséhez.
6. Adatok olvasása az SD -kártyáról
Használja ezt a kódot Olvassa el és jelenítse meg az adatokat az SD -kártyáról.
#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
}
Mit csinál ez a kód:
✔ Kinyit data.txt
Az olvasáshoz.
✔ Kinyomtatja a fájl tartalmát Soros monitor.
🔹 Tipp: Győződjön meg arról, hogy a fájl olvasás előtt létezik A hibák elkerülése érdekében.
7. Az érzékelő adatainak naplózása az SD -kártyára
Ez a példa napló Hőmérsékleti és páratartalom -adatok egy DHT11 érzékelőtől.
Szükséges alkatrészek
✅ DHT11 hőmérsékleti és páratartalom -érzékelő
✅ DHT könyvtár (AdaFruit DHT érzékelő könyvtár)
Vezetékek a DHT11 érzékelőhöz
DHT11 PIN | Arduino Pin |
---|---|
VCC | 5 V -os |
GND | GND |
ADAT | 2 |
Kód: DHT11 adatok naplózása az SD -kártyára
#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
}
Mit csinál ez a kód:
✔ Olvasható hőmérséklet és páratartalom a DHT11 érzékelő.
✔ Bejelentkezik az adatokat log.txt
Az SD -kártyán.
✔ Az értékeket kinyomtatja Soros monitor.
8. Hibaelhárítási tippek
Probléma: Az SD -kártyát nem észlelték?
✅ Győződjön meg arról, hogy az SD -kártya van -e FAT32 formázott.
✅ Kétszer ellenőrizzen Miso, Mosi, SCK és CS vezetékek.
✅ Megpróbál Egy másik SD -kártya (Néhány kártya nem kompatibilis).
Probléma: Az adatok nem mentenek meg?
✅ Mindig Zárja be a fájlt felhasználás dataFile.close();
.
✅ Biztosít Elég tárolóhely elérhető az SD -kártyán.
9. Gyakorlati alkalmazások
✔ Időjárás -megfigyelő rendszer - A log hőmérséklete, a páratartalom és a légnyomás.
✔ Energiafigyelés - nyilvántartás feszültség és áram Olvasások az idő múlásával.
✔ GPS -követés - Tárolás szélesség és hosszúság Adatok egy GPS modulból.
✔ Eseménynaplózás - Rekord -érzékelő kiváltó vagy gombnyomás.
10. Következtetés
Egy SD kártya modul Arduino -val nagyszerű módja annak Tárolja az érzékelő adatait, a naplózási eseményeket, vagy hozzon létre egy hordozható adatnaplót- Vel SPI -kommunikáció, könnyen Olvassa el és írjon fájlokat, ideálissá téve IoT és automatizálási projektek.