Запись данных с модуля 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, с последнего будем считывать время и показания температуры (раз в три сукунды). Схема не сложная, собираем согласно рисунку ниже.
Для работы скетча необходимо три библиотеки «SD«, «SPI» и «DS3231» последняя библиотека не входит в среду разработки IDE Arduino, необходимо дополнительно установить ее, скачать можно конце статьи.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
/* Тестировалось на 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 секунды.
Теперь, через некоторое время можно подключить SD карту к компьютеру и открыть файл «TEST.txt», чтобы увидеть результаты.
При необходимости можно создать линейный график.
Ссылки
Библиотека 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