RTClib — часы реального времени
DS1307 и DS3231, будильники, календарь
Настоящее время без интернета: подключение модуля RTC, установка времени, будильники, точность и батарейка.
Прогресс раздела0/62 · 0%
- Зачем RTC, если есть millis: время после отключенияmillis() — это аптайм, а не время: обнуление после сброса, уход резонатора до 0,5% в сутки, потерянная дата после отключения питания и чем всё это лечится.16 мин
- DS1307 и DS3231: сравнение модулей часовDS1307 против DS3231: кварц снаружи против термокомпенсации, минуты ухода в месяц против ±2 ppm, питание 5 В против 3,3–5 В, будильники и цена выбора.15 мин
- Подключение DS1307: провода и батарейкаПодключаем модуль DS1307 к Arduino по I2C: VCC на 5 В, SDA-A4, SCL-A5, батарейка CR2032, бит останова CH и проверка, что часы живут после отключения.16 мин
- Два RTC на шине: резервные часыDS1307 и DS3231 по 0x68 на одной шине: почему конфликт адресов, чем спасают TCA9548A и вторая шина, сверка unixtime раз в час и подгонка резервных часов.16 мин
- Часы без модуля: эмуляция RTC на millisЧасы без RTC на millis: завод один раз из Serial, счёт делением и остатком, переход через полночь, дни и честная цена — уход резонатора до 7 минут в сутки.16 мин
- Итоговый проект: таймер умной теплицыИтоговый проект: DS3231 ведёт расписание, реле включает лампу и насос, датчик почвы и DHT запрещают перелив и холод — весь проект в одном скетче без delay.17 мин
- Обратный отсчёт до даты: Новый год на дисплееСчётчик до полуночи 2026: цель DateTime(2026,1,1), остаток разностью unixtime без TimeSpan, дни и минуты на LCD, зуммер в последние десять секунд.16 мин
- Две зоны: местное время и UTCВторая зона поверх DS3231: UTC из unixtime минус смещение, сезонная поправка switch по месяцу и вывод LOCAL 21:05 / UTC 18:05 на дисплее платы.15 мин
- Суточный архив: 24 слота температурыСуточная карточка температуры: снимок getTemperature() раз в час в массив на 24 слота, ASCII-график в Serial, минимум и максимум по кнопке, перенос в EEPROM.16 мин
- Полевой тест дрейфа: сколько уходит именно ваш модульИзмеряем уход часов по-настоящему: эталон с NTP, два замера через неделю, пересчёт секунд в ppm, таблица вердиктов и ступени от подводки до калибровки.16 мин
- Два будильника DS3231 и сон: дежурный узел на одном пинеДва аппаратных будильника тянут один пин INT/SQW: карта регистров A1 и A2, флаги A1F и A2F, цепочка пробуждения спящего узла и обязательный сброс флага.17 мин
- Сработать в 18:30: момент, штамп дня и разность unixtimeБудильная минута проскочила между пробуждениями: момент через больше-или-равно, штамп дня против повторов, остаток и опоздание разностью unixtime.16 мин
- По будням в 7:00: таблица расписаний на все дни неделиРасписание с собственной строкой на каждый день: таблица 7х2, маска «по будням» в один бит, флаг сработки и подвод времени кнопками без ожидания субботы.16 мин
- Каждая строка со штампом: журнал событий в SerialЖурнал событий с метками времени в Serial: анатомия строки, паддинг нулей, уровни INFO и WARN, CSV-режим под локаль Excel и цена опоздавшего штампа.16 мин
- Секунда щёлкнула — экран ожил: часы без delayСобытийные часы на LCD и OLED: кадр рисуется в момент смены секунды, loop свободен для кнопок подвода времени, I2C-трафик вдвое ниже, чем у delay(500).16 мин
- Полив в 7:00 на 10 минут: окно, флаг и EEPROMНасос включается по DS3231 в 7:00 на десять минут: окно вместо равенства секунд, флаг уже полил в EEPROM и защита от второго срабатывания при сбое питания.15 мин
- Сколько работал насос: unixtime-разница и сводка в полночьСчитаем наработку насоса разницей unixtime: метка на старте, дельты секунд в копилку суток и сводка в Serial ровно в полночь — без переносов часов и минут.16 мин
- Летнее время и RTC: кто должен знать про сдвигDS3231 хранит время как есть, а сезонный сдвиг решает скетч: где жить флагу летнего времени, когда Европа переводит стрелки и почему в России сдвига нет.15 мин
- Мини-будильник с зуммером: сравнение HH:MM, флаг и кнопка тишиныБудильник на DS3231: сравнение часов и минут каждую секунду, флаг уже прозвенел против повторов и кнопка тишины на D2.16 мин
- Обратный отсчёт до даты: дни и часы до события через unixtimeОбратный отсчёт до Нового года и дня рождения: разность unixtime одним минусом, перевод секунд в дни и часы, потолок int на Uno и ветка для прошедшей даты.15 мин
- Установка времени из Serial: команда SET, парсинг и защита вводаКоманда SET 2025-01-15 10:30:00 из монитора: парсинг по разделителям, диапазоны вместо веры в юзера, rtc.adjust и честный отказ на кривой ввод.16 мин
- Сверка RTC с телефоном: подвод времени по Bluetooth без сетиСверка часов DS3231 со смартфоном: HC-05 на 9600 бод, делитель 1к/2к на линии RX, команда ТЧЧММ из приложения-терминала и эхо-ответ для сверки.16 мин
- Восход и закат: солнечная арифметика для света и поливаСвет и полив по солнцу вместо жёсткого расписания: широта и долгота, угол минус 0,833 градуса, сумерки, полярный день и сверка скетча с калькулятором NOAA.17 мин
- 29 февраля: високосный год и несуществующие датыБудильник на 29 февраля молчит четыре года, 31 июня живёт в регистрах.15 мин
- Будильник в millis-цикле: сравнение DateTime, будни и snoozeБудильник на DS3231 без регистров: сравнение DateTime в millis-цикле, расписание по будням, отсрочка snooze на девять минут и ловушка пропущенной секунды.16 мин
- Логирование времени: CSV-строка «2025-03-08 14:05:00,temp»Строка «2025-03-08 14:05:00,23.4» из RTC: склейка полей с ведущими нулями, запись на SD-карту и эхо в Serial, грабли String и десятичной запятой в таблицах.16 мин
- Часы на LCD: день недели по-русски и правка кнопкамиЧасы на LCD 16x2 с DS3231: день недели по-русски из dayOfTheWeek, мигающие двоеточия и правка времени кнопками без ноутбука — автомат режима и adjust.17 мин
- DS1307 против DS3231: сравнение и замена модуляDS1307 против DS3231: точность ±20-50 ppm против ±2 ppm, ловушка питания 5 В, батарейки CR2032 и LIR2032, общий адрес 0x68 и замена модуля одной строкой.16 мин
- Полив по расписанию: RTC + реле по часамПолив по расписанию: слоты в массиве (час, минута, длительность), окно срабатывания с флагом против повторов, реле на пине 7 и насос 5 В от отдельного питания.16 мин
- Перевод часов: летнее/зимнее время без ручной возниПеревод часов скетчем: последнее воскресенье месяца через day(), корректировка по флагу раз в сутки, ловушка несуществующего часа, UTC вместо локального.16 мин
- Аквариум: рассвет и закат ШИМ-светом по времени RTCРассвет и закат в аквариуме: рампа яркости 40 минут по часам DS3231, окно светового дня, analogWrite и MOSFET вместо реле, обход кнопкой, ловушки ШИМ на Uno.16 мин
- Инкубатор: поворот лотка по таймеру и тревога по температуреИнкубатор на DS3231: поворот лотка серво каждые 3 часа без delay, температура кристалла как вторая линия контроля, зуммер за коридором, журнал в Serial.17 мин
- Полив двух зон: очередь насоса, таймауты и защита от сухого ходаДве зоны на одном насосе: очередь millis-автоматом, таймаут зоны и потолок, сухой ход по току ACS712, блокировка в EEPROM, которую не снимает перезагрузка.17 мин
- Подключение DS3231: точность и температурная компенсацияПочему DS3231 уходит на секунды в год, а DS1307 — на минуты в месяц: термокомпенсированный кварц, чтение температуры и служебных регистров по шине I2C.18 мин
- RTClib: установка и первый скетчСтавим библиотеку Adafruit RTClib через менеджер, проверяем rtc.begin() и lostPower(), устанавливаем время одной строкой и читаем дату в Serial-монитор.15 мин
- DateTime: разбор объекта времениПоля и методы объекта DateTime: год, месяц, день, часы, unixtime, день недели; сравнение моментов операторами и сдвиг на интервал через TimeSpan.16 мин
- Будильник на DS3231: сравнение времени и флагКормушка в 7:30 без шестидесяти повторов: минуты от полуночи, окно срабатывания, флаг fired и сброс после полуночи.15 мин
- Ночь и день по часам: расписание с гистерезисомДосветка курятника в 19:50 до 06:10: минуты от полуночи, разворот сравнения через полночь и гистерезис порогов против скачков времени.15 мин
- Дрейф кварца RTC: сколько уходит за месяцПолив в 7:00 через месяц поливает в 7:12: арифметика ppm, DS1307 против DS3231 в цифрах, тест против millis и компенсация в скетче.16 мин
- Установка времени: adjust и текущая компиляцияКак часы узнают который час: DateTime(__DATE__,__TIME__) и момент сборки, ручная установка шестью числами, зазор компиляции и команда set из монитора.16 мин
- unixtime: секунды с 1970 годаСчитаем от эпохи: зачем unixtime дате, арифметика дней вычитанием, день недели из числа, ловушка 86400 в int и границы 2038 и 2106 годов.16 мин
- Дни недели и месяцы: форматирование выводаПн/Вт/Ср из dayOfTheWeek и красивые даты без библиотек: массивы имён на русском, родительный падеж месяцев, ведущие нули и три формата вывода.16 мин
- Часы на LCD: RTC и дисплей вместеНастольные часы на LCD 16x2 и DS3231 по I2C: раскладка по клеткам, центрирование строки времени, мигающее двоеточие, дата и температура чипа во второй строке.16 мин
- Часы на OLED: крупный циферблатКрупные цифры на SSD1306: геометрия шрифта Adafruit_GFX, setTextSize(2), пиксельный setCursor вместо клеток, мигающее двоеточие и цена кадра в байтах.16 мин
- Будильники DS3231: два независимых таймераАппаратные будильники чипа: регистры Alarm 1 и Alarm 2, режимы от секунды до дня недели, флаги A1F/A2F, общий пин INT/SQW и сброс флага после звонка.17 мин
- Прерывание от RTC: пробуждаем ArduinoПин SQW у DS3231 отдаёт честный секундный такт: подключаем его к D2, ловим attachInterrupt по FALLING и будим плату из powerDown ради экономии батареи.16 мин
- Расписание на неделю: таймер поливаРасписание полива по дням недели поверх DateTime: массив плана, утреннее окно, флаг «уже полил сегодня» и проверка подменой времени через rtc.adjust.16 мин
- Автополив: RTC, реле и датчик почвыАвтополив на RTC: насос через реле на D7 и датчик почвы на A0 — поливаем по расписанию, только если земля сухая: гистерезис и страховка по времени.17 мин
- Свет по расписанию: включение на закатеОкно освещения по часам DS3231 и реле: от часа X до часа Y без щелчков каждую секунду, флаги состояния, граница через полночь и честный разговор про закат.16 мин
- Сравнение DateTime: раньше, позже, интервалыСравниваем моменты как машины: операторы DateTime на плате, unixtime-разности в симуляторе, хронология из трёх отметок и ловушка беззнаковой разности.16 мин
- TimeSpan: длительности и арифметика времениTimeSpan из RTClib: сдвиг момента на интервал, обратный отсчёт до дедлайна и ловушка hours() у выдержки в 36 часов — плюс unix-арифметика для симулятора.17 мин
- Кормушка по расписанию: RTC и сервоКормушка на DS3231 и серво: слоты кормления по часам с флагами, интервалы на unixtime и что происходит с millis-расписанием после отключения питания.16 мин
- Drift часов: DS1307 против DS3231 в цифрахСколько секунд в месяц теряет дешёвый кварц: паспорт ±20 ppm, конденсаторы нагрузки, температура и старение — бюджет ухода и когда дрейф ломает расписание.16 мин
- Точность RTC: ppm и секунды за месяцПереводим ppm в секунды: кварц 32768 Гц, формула дрейфа и калькулятор — сколько на самом деле уходят ±2 ppm у DS3231 и ±20 ppm у дешёвого кварца.16 мин
- Батарейка CR2032: ресурс и заменаСколько живёт батарейка CR2032 в модуле DS3231: расчёт ресурса от тока 0,84 мкА, признаки разряда, замена таблетки без потери времени и скетч-полисмен в Serial.16 мин
- LIR2032: перезаряжаемая альтернатива и зарядLIR2032 против CR2032: напряжение и ёмкость, зарядная ветка с диодом и 200 Ом, расчёт тока заряда, ловушки вздутия и скетч-сторож откатов времени в EEPROM.16 мин
- NTP и RTC: синхронизация через ESP32Пара ESP32 и DS3231: метка времени из сети, запись в RTC одним вызовом, суточная калибровка и часы, которые не боятся ни перезагрузки, ни моргания света.16 мин
- Календарь праздников: годовые таблицы в кодеГодовая таблица праздников в массивах: проверка «сегодня праздник?» одним проходом цикла, диапазон январских каникул, отсчёт дней с високосной поправкой.16 мин
- Логгер с метками времени: SD плюс RTCКаждая строка журнала со штампом YYYY-MM-DD HH:MM:SS: сборка через pad2, close() после записи и почему RTC-штамп переживает сброс, а millis-метка — нет.16 мин
- Термометр DS3231: встроенный датчик температурыgetTemperature() — термометр внутри часов: шаг 0,25 °C и самонагрев, контроль нагрева корпуса с гистерезисом и бесплатная колонка температуры в журнале.15 мин
- Часы DS3231: настоящее время на платеЗачем Arduino отдельные часы: модуль DS3231 с точностью ±2 ppm и батарейкой CR2032, установка времени rtc.adjust и чтение rtc.now() в Serial-монитор.20 мин
- Часы с будильником: LCD + RTCНастольные часы с будильником на Arduino: LCD 16x2 и DS3231 на одной шине I2C, флаг срабатывания, ловушка шестидесяти будильников и дневной цикл.22 мин