Запись данных с модуля 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 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Провода DuPont, 2,54 мм, 20 см
  Модуль SD кары, SPI
  Часы реального времени RTC DS3231

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

О нас Сергей

Посмотреть также

OLED термометр и гигрометр на HTU21D

OLED термометр и гигрометр на HTU21D

В предыдущих статьях рассказывал о датчике температуры и влажности HTU21D, так же, показывал пример подключения его к ESP8266. Сегодня приведу пример подключения датчика HTU21D к Arduino UNO с отображением показаний на OLED дисплей.

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

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