Запись данных с модуля DS3231 на SD карту

Запись данных с модуля DS3231 на SD карту

К продолжению статьи о модуле micro SD карт, сделаем небольшой пример в котором будем регистрировать данных датчика температуры. Для этого будем использовать модуль часов реального времени DS3231, который имеет встроенный датчик температуры.

Запись данных с модуля DS3231 на SD карту

Необходимые детали:
Arduino UNO R3 x 1 шт.
Модуль micro SD карт, SPI x 1 шт.
Часы реального времени DS3231 x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.

Подключение
В примере используем модуль micro SD карты и часы реального времени DS3231, с последнего будем считывать время и показания температуры (раз в три сукунды). Схема не сложная, собираем согласно рисунку ниже.

Подключение DS3231 и SD к Arduino

Для работы скетча необходимо три библиотеки «SD«, «SPI» и «DS3231» последняя библиотека не входит в среду разработки IDE Arduino, необходимо дополнительно установить ее, скачать можно конце статьи.

/*
Тестировалось на Arduino IDE 1.8.5
Дата тестирования 15.02.2019г.
*/ 

#include <SD.h>                                 // Подключаем библиотеку SD
#include <SPI.h>                                // Подключаем библиотеку SPI
#include <DS3231.h>                             // Подключаем библиотеку DS3231

File myFile;
DS3231  rtc(SDA, SCL);   
const int chipSelect = 4;                       // Указываем к какому выводу подключен CS

void setup() 
{
  Serial.begin(9600);                           // Открытие последовательную связь
  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();                             // Закрываем файла
  }
  else {
    Serial.println("error opening test.txt");   // Печатаем текст, если не удалось открыть файл
  }
  delay(3000);                                  // Пауза 3с 
}

Скачать скетч

После загрузки скетча Arduino начнет сохранять значения температуры каждые 3 секунды.

Запись данных с модуля DS3231 на SD карту

Теперь, через некоторое время можно подключить SD карту к компьютеру и открыть файл «TEST.txt», чтобы увидеть результаты.

Запись данных с модуля DS3231 на SD карту

При необходимости можно создать линейный график.

Ссылки
  Библиотека libraries-DS3231

 

Купить на Aliexpress
  Контроллер Arduino UNO R3
  Модуль SD кары, SPI
  Часы реального времени RTC DS3231
  Комплект проводов DuPont, 2,54 мм, 20 см

Купить в Самаре и области
  Купить контроллер Arduino UNO R3
  Купить Модуль SD кары, SPI
  Купить комплект проводов DuPont, 2,54 мм, 20 см

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *