Урок ESP8266. Подключение DS3231 к NodeMCU.

Цель этого урока — объяснить, как подключить часы реального времени DS3231 к ESP8266 (Node MCU). В статье рассмотрим, как создать простую программу для настройки времени и даты RTC и выведем данные в монитор порта.

Для урока подключения DS3231 к NodeMCU понадобится.

Модуль реального времени DS3231 бывает нескольких твипов. Самый распространённый приведён на картинке ниже.

часы реального времени DS3231 к ESP8266 (Node MCU)

У меня не было в наличии данного модуля, и я использовал вот такой.

У меня не было в наличии данного модуля, и я использовал вот такой.

Также есть версия DS3231 mini.

версия DS3231 mini

Распиновка DS3231 mini.

Распиновка DS3231 mini

Которую я уже использовал в своих Arduino проектах. Не зависимо от вида модуля подключаются и работают они одинаково.

В уроке будем использовать библиотеки ESP8266 для Arduino IDE. Вы можете посмотреть здесь, как настроить Arduino IDE для поддержки ESP8266.

Схема подключения DS3231 к NodeMCU.

Аппаратная схема подключения платы DS3231 к ESP8266 очень проста и показана на рисунке ниже.

Схема подключения DS3231 к NodeMCU.

Как видно на схеме, DS3231 использует интерфейс I2C для взаимодействия с микроконтроллерами. Поскольку мы используем IDE Arduino, у нас есть библиотека Wire для обработки протокола I2C, которую позже будем использовать при создании программы для взаимодействия с RTC.

Как описано в документации библиотек ESP8266 для Arduino IDE, контакты по умолчанию I2C в библиотеке Wire — это контакты 4 (SDA) и 5 (SCL). Если вы используете плату NodeMCU, примите во внимание, что контакты платы не соответствуют контактам ESP8266. Подключать нужно к контактам D2 (SDA) и D1 (SCL).

Вот краткий обзор распиновки ESP-12E NodeMCU

Библиотека для работы с DS3231.

Среда Arduino предоставляет широкий спектр библиотек для взаимодействия с различными устройствами, и DS3231 не является исключением. Итак, мы используем библиотеку, показанную на рисунке ниже, которая, как указано в описании, протестирована на ESP8266.

Библиотека для работы с DS3231.

Её можно установить с помощью менеджера библиотек Arduino IDE.

менеджера библиотек Arduino IDE

Эта библиотека предоставляет простые в использовании функции для взаимодействия с RTC, при этом программисту не нужно беспокоиться о низкоуровневых деталях протокола I2C. Кроме того, в ней есть несколько примеров кода, которые помогут начать работу с DS3231.

Скетч вывода даты и время с DS3231 в монитор порта.

Как было сказано ранее, создадим простую программу для настройки времени и даты часов реального времени, а затем считаем данные и выведем в монитор порта.

Скетч вывода даты и время с DS3231 в монитор порта.

Во-первых, нам нужно подключить недавно установленную библиотеку, которая позволяет взаимодействовать с DS3231, а также библиотеку Arduino, которая реализует связь с устройствами I2C.

Функции для взаимодействия с RTC предоставляются, как методы класса RtcDS3231:

Библиотека RTC использует класс RtcDateTime, который позволяет нам создавать объекты для хранения информации о дате и времени.

Итак, объявляем объект этого класса и передаем в конструктор данных от года до секунд. Наконец, мы вызываем метод setDateTime для объекта RtcDS3231 и передаем ему объект RtcDateTime, содержащий информацию о дате и времени.

Затем считываем текущую дату и время из RTC в функции основного цикла. В этом простом примере мы будем опрашивать RTC каждые 5 секунд.

Чтобы получить текущее время и дату, вызываем метод GetDateTime для нашего ранее определенного объекта RtcDS3231 (который мы назвали «rtcObject»). Этот метод вернет объект RtcDateTime, как использовали ранее в функции настройки.

Класс RtcDateTime имеет метод для получения каждого из параметров даты и времени. Мы будем использовать эти методы, чтобы получить их в виде строки (с помощью функции sprintf ).

Когда у нас есть вся информация о дате и времени в строке, отправляем ее в последовательный порт.

В конце основного цикла ставим задержку в 5 секунд.

Примечание. Хотя в этом примере используется массив символов, мы также можем использовать строковый объект для вывода параметров времени и даты. Тем не менее, важно знать, что мы можем использовать массивы символов как строки, что более эффективно. Кроме того, в чистом C нет объектов, поэтому строки всегда являются массивами символов.

Полный Скетч вывода даты и время с DS3231 в монитор порта, располагается ниже. Также скетч вы можете скачать внизу статьи в разделе «Файлы для скачивания»

Тестирование Подключения DS3231 к NodeMCU.

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

Тестирование Подключения DS3231 к NodeMCU.

Заключение.

Это был простой пример по базовым возможностям DS3231.

Это был простой пример по базовым возможностям DS3231. Тем не менее, у этого RTC модуля есть еще несколько функций, которые будем изучать в следующих уроках.

Понравился Урок Подключение DS3231 к NodeMCU? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.


Источник: arduino-tex.ru