Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Kartu SD Arduino dan Tutorial Pencatatan Data

Dalam Tutorial Arduino ini kita akan belajar cara menggunakan modul SD Card dengan Board Arduino. Juga dalam kombinasi dengan modul DS3231 Real Time Clock kami akan membuat contoh data logging di mana kami akan menyimpan data sensor suhu ke SD Card dan mengimpornya ke Excel untuk membuat grafiknya. Anda dapat menonton video berikut atau membaca tutorial tertulis di bawah ini.

Cara Kerja

Pertama mari kita lihat Modul Kartu SD. Ini bekerja dengan Kartu MicroSD standar yang tegangan operasinya 3,3 V. Oleh karena itu, modul ini memiliki pengatur tegangan dan pemindah level sehingga kita dapat menggunakannya dengan pin 5 V dari Papan Arduino.

Modul Kartu SD memiliki enam pin, dua untuk memberi daya pada modul, pin VCC dan GND, dan empat pin lagi untuk komunikasi SPI. Inilah cara kita perlu menghubungkannya ke Papan Arduino.

Perhatikan bahwa setiap Papan Arduino memiliki pin SPI yang berbeda yang harus dihubungkan sesuai dengan itu.

Anda bisa mendapatkan komponen yang diperlukan untuk Tutorial Arduino ini dari link di bawah ini:

  • Modul Kartu Micro SD………………..
  • Dewan Arduino ……………………………
  • Breadboard dan Kabel Lompat ……… 

Kode Modul Kartu SD Arduino

Selanjutnya kita perlu memprogram Arduino. Berikut kode sederhananya:

/*
 *  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)

Deskripsi kode:  Jadi pertama-tama kita perlu memasukkan perpustakaan SD dan SPI standar, buat objek "File" dan tentukan pin ChipSelect dari bus SPI, pin 53 dalam kasus saya untuk Arduino Mega Board. Untuk contoh ini kita ingin kode kita dieksekusi hanya sekali, jadi semua kode akan ditempatkan di bagian “setup”, sedangkan bagian “loop” akan tetap kosong.

Jadi pertama-tama kita perlu memulai komunikasi serial dan mendefinisikan pin ChipSelect sebagai output. Kita harus melakukan ini karena pin ChipSelect harus “Low” agar komunikasi SPI antara modul dan Arduino bekerja.

Selanjutnya, dengan menggunakan fungsi SD.begin() kita akan menginisialisasi kartu SD dan jika inisialisasi berhasil pernyataan “if” akan menjadi benar dan String “kartu SD siap digunakan.” akan tercetak pada serial monitor, jika tidak maka akan tercetak string “SD card initialization failed” dan juga program akan dihentikan.

Selanjutnya, dengan menggunakan fungsi SD.open() kita akan membuat file baru bernama “test.txt”, termasuk argumen FILE_WRITE yang berarti bahwa kita dapat membaca dan menulis ke file tersebut. Jika file sudah ada, fungsi SD.open() hanya akan membukanya.

Jadi jika file telah berhasil dibuat terlebih dahulu kita akan mencetak string “Writing to file” pada serial monitor kemudian menggunakan fungsi myFile.println() kita akan mencetak teks “Testing text 1, 2 ,3…” ke dalam mengajukan. Setelah itu kita perlu menggunakan fungsi close() untuk memastikan bahwa data sebelumnya yang ditulis ke file disimpan secara fisik ke SD Card.

Selanjutnya, kita akan melihat bagaimana kita dapat membaca dari file tersebut. Jadi sekali lagi kita akan menggunakan fungsi yang sama, SD.open(), tetapi kali ini karena file “test.txt” telah dibuat, fungsi tersebut hanya akan membuka file tersebut. Kemudian menggunakan fungsi myFile.read() kita akan membaca dari file dan mencetaknya di serial monitor. Fungsi read() sebenarnya hanya membaca satu karakter dalam satu waktu, jadi oleh karena itu kita perlu menggunakan loop “while” dan fungsi myFile.available() untuk membaca semua karakter atau seluruh data yang telah ditulis sebelumnya. Pada akhirnya kita harus menutup file.

Sekarang setelah mengupload kode ke Arduino, jika semuanya sudah beres, berikut ini akan muncul di monitor serial.

Seperti yang kita lihat, kartu SD telah berhasil diinisialisasi, penulisannya juga berhasil, dan juga membaca data tertulis atau string “Teks Pengujian 1, 2 ,3…” telah berhasil dibaca. Jika kita membuka kartu SD di komputer kita, kita dapat melihat file “test.txt” yang dibuat dan teks tertulis di dalamnya.

Pencatatan Data Kartu SD Arduino

Sekarang mari kita buat contoh lain yang lebih menarik dari data logging sensor suhu. Untuk tujuan itu kita akan menggunakan modul DS3231 Real Time Clock yang memiliki sensor suhu built-in juga. Anda dapat menemukan detail lebih lanjut tentang cara menghubungkan dan menggunakan modul ini di tutorial saya sebelumnya.

Jadi setelah menghubungkan kedua modul ke Arduino mari kita lihat kode untuk contoh ini.

/*
 *  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)

Deskripsi Kode:  Pertama kita perlu menyertakan pustaka yang diperlukan untuk kedua modul, lalu buat dua objek dan di bagian penyiapan inisialisasinya.

Di bagian loop menggunakan fungsi Serial.print() kita akan mencetak waktu dan nilai suhu pada monitor serial, dengan karakter “koma” di antara keduanya dan baris baru setelah nilai suhu. Kami membutuhkan bentuk garis ini sehingga kami dapat dengan mudah mengimpornya dan membuat bagan di Excel. Perhatikan juga bahwa nilai suhu diubah menjadi bilangan bulat.

Jadi nilai yang sama ini juga akan ditulis ke dalam file “test.txt” yang baru dibuat dan pada akhirnya kita hanya perlu menambahkan penundaan yang akan mewakili interval perekaman data suhu.

Setelah mengupload kode, Arduino akan mulai menyimpan nilai suhu setiap 3 detik. Setelah beberapa saat, kita dapat membuka kartu SD di komputer untuk melihat hasilnya.

Untuk membuat bagan di Excel, kita perlu mengimpor file ini dan inilah cara kita melakukannya:

Dari menu data kita perlu mengklik tombol "Dapatkan Data Dari Teks" dan pilih file teks. Di sini kita akan memilih “Delimited” dan klik next, dan pada langkah kedua, pilih koma sebagai pembatas dan kemudian selesaikan wizard.

Jadi proses ini akan memasukkan nilai waktu dan suhu ke dalam kolom terpisah. Sekarang kita hanya perlu memilih kedua kolom dan dari menu insert pilih “Insert line chart”. Ini akan membuat grafik di mana kita dapat melihat nilai suhu setiap 3 detik.

Itu saja untuk tutorial ini, jangan ragu untuk mengajukan pertanyaan apa pun di bagian komentar di bawah.


Proses manufaktur

  1. [Video] Pencatatan dan dasbor data Mesin (PLC) dijelaskan
  2. Tutorial Kunci RFID Arduino
  3. Cara Membuat Monitor Energi Arduino dan Data Logger
  4. Animasi dan Permainan LCD
  5. Pencatat Data Suhu dan Kelembaban
  6. Python3 dan Komunikasi Arduino
  7. Radio FM Menggunakan Arduino dan RDA8057M
  8. Tutorial Sensor Sidik Jari Arduino
  9. Tutorial Arduino :Piano Mini
  10. Tutorial Arduino 01:Memulai