Сегодня в
уроке мы сохраним данные и время
считывания данных в
файл. Который можно
открыть в
Excel и построить график.
Как вывести
график на смартфон, в режиме реального
времени смотрите тут:
Arduino SD карта. Воспроизводим звуки и музыку в wav формате.
Для
урока нам понадобиться:
1. Arduino
UNO
или Arduino
NANO
2. Модуль
SD карты
.
3. Беспаечная
макетная плата
.
4. Соединительныепровода.
5.
Модуль реального времени DS3231
Модуль
DS3231
выбрал не случайно. В нем есть датчик
температуры
. И мы можем сохранять
значение температуры
и время замеров
.
Это
наглядный пример
использования
легирование
показаний с датчиков
. Вы
можете использовать другое датчики:
DS18B20,
DHT11,
DHT22
.
Также
вы
можете
использовать одновременно несколько
датчиков и сохранять
показание с них.
Подключаем
SD-модуль и
модуль реального времени DS3231
к Arduino UNO по
схеме.
Для работы
нам понадобиться
библиотека DS3231.h.
Скачать
ее можно с
сайта разработчика или в
разделе для скачивания файлов внизу
страницы.
Мы
уже научились
работать с картой,
если возникнут сложности посмотрите
предыдущий урок:
Arduino SD карта. Создаем, удаляем файлы. Чтение, запись файлов.
Перейдем
сразу к
модулю
времени DS3231
.
Для
его подключения нужно добавить всего
пару строк:
#include <DS3231.h> // Библиотека для часов реального времени
// Подключаем часы реального времени
DS3231 rtc(SDA, SCL); //(A4 = SDA, A5 = SCL)
void setup() {
....
rtc.begin(); // инициализируем часы реального времени
}
Для
вывода текущего времени и температуры
есть 2 функции.
#include <SD.h>
#include <SPI.h>
#include <DS3231.h> // Библиотека для часов реального времени
File myFile;
// Подключаем часы реального времени
DS3231 rtc(SDA, SCL); //(A4 = SDA, A5 = SCL)
// Измените это в соответствии с вашей платой расширения или модулем;
const int chipSelect = 4;
void setup() {
// Открыть последовательное соединение и ждать открытия порта:
Serial.begin(9600);
Serial.println("Initializing SD card...");
if (!SD.begin(chipSelect))
{
Serial.println("initialization failed!");
while (1);
}
Serial.println("initialization done.");
rtc.begin(); // инициализируем часы реального времени
}
void loop() {
// выведим время и черз запятую температуру с дачика модуля DS3231
Serial.print(rtc.getTimeStr());
Serial.print(",");
Serial.println(int(rtc.getTemp()));
// открываем файл для записи
myFile = SD.open("test.csv", 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(10000); /// ждем 10 сек. И повторяем запись данных в файл.
}
Для
примера
работы выведем
время и показания в
монитор порта.
И
точно такие же показания будем сохранять
в наш файл.
Можно
сохранять
в текстовый файл. А можно сохранить
в файл
TEST.csv.
Это тоже текстовый файл. Но его можно
сразу
открыть в Excel.
Осталось
только
построить
график
по полученным данным.
У
вас наверное возникнет
вопрос, почему у меня так скачет
температура? Нет
у меня нет резкого изменения
температуры в комнате.
Просто я
погрел пальцами модуль времянки.
И после он постепенно
остывал.
Этот
небольшой урок дает представления
о возможностях легирования
данных с использованием
Arduino и SD карты.
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока. И до встречи в следующем уроке.
Понравилась статья? Поделитесь ею с друзьями:
Файлы для скачивания
|
DS3231.zip | 379 Kb | 586 |
Скачать
Вы можете скачать файл.
|
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.