Оглавление:

Настройка часов реального времени DS3231 RTC (часов реального времени) точно, быстро и автоматически с помощью Java (+ -1 с): 3 шага
Настройка часов реального времени DS3231 RTC (часов реального времени) точно, быстро и автоматически с помощью Java (+ -1 с): 3 шага

Видео: Настройка часов реального времени DS3231 RTC (часов реального времени) точно, быстро и автоматически с помощью Java (+ -1 с): 3 шага

Видео: Настройка часов реального времени DS3231 RTC (часов реального времени) точно, быстро и автоматически с помощью Java (+ -1 с): 3 шага
Видео: 🤖Я в шоке! ChatGPT пишет Arduino проекты 2024, Июль
Anonim
Точная, быстрая и автоматическая установка DS3231 RTC (часов реального времени) с помощью Java (+ -1 с)
Точная, быстрая и автоматическая установка DS3231 RTC (часов реального времени) с помощью Java (+ -1 с)

Это руководство покажет вам, как установить время на часах реального времени DS3231 с помощью Arduino и небольшого Java-приложения, которое использует последовательное соединение Arduino.

Основная логика этой программы:

1. Arduino отправляет последовательный запрос.

2. Программа на Java смотрит, какой день / месяц /… запросил arduino, и отправляет соответствующие данные обратно.

3. После того, как вся необходимая информация собрана, Arduino сохраняет данные в DS3231.

Модуль DS3231 RTC

Модуль DS3231 RTC - это относительно дешевый модуль RTC с высокой точностью. (несколько минут в год)

Существуют разные разновидности, основная функциональность которых одинакова с небольшими отличиями.

Подробное сравнение можно найти здесь: Сравнение DS323x | maximintegrated.com

Купить DS3231: DS3231 | ebay.com

Лист данных: DS3231 Лист данных | maximintegrated.com

Лист данных: DS1307 Лист данных | maximintegrated.com

Необходимые детали

1x Arduino (Nano, Uno, MEGA и т. Д.)

4x перемычки

1x модуль DS3231 (модуль DS1307)

Шаг 1. Подключение

Проводка
Проводка

Подключите DS3231, как показано на изображении выше. Конечно, вы можете сделать это без использования макета, но это будет немного сложнее. Я использовал Arduino Nano для демонстрации, но Uno или MEGA тоже должны работать. (Другие тоже могут работать, но мне лень подтверждать)

  • Ардуино -> DS3231
  • A4 -> SCL
  • A5 -> ПДД
  • 5 В -> VCC
  • GND -> GND

Шаг 2: Код Arduino

Код Arduino
Код Arduino

Загрузите файл.ino снизу и загрузите его на свой Arduino (в моем случае - Nano).

Для правильной работы скетча необходимо установить следующие библиотеки:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Учебное пособие по загрузке кода на ваш Arduino можно найти здесь (arduino.cc).

В Arduino IDE убедитесь, что код был отправлен правильно. (Загрузка завершена)

Теперь ваш Arduino готов получать информацию о времени

Загрузите код здесь: DS3231TimeSync.zip (mediafire.com)

Загрузите исходный код здесь: DS3231TimeSyncSRC.zip (mediafire.com)

Репозиторий GitHub: DS3213 RTC Time Sync (github.com)

Репозиторий Bitbucket: DS3231 RTC Time Sync (bitbucket.com)

Шаг 3. Приложение Java

Приложение Java
Приложение Java

1. Запустите загруженный ранее файл «DS3231Sync.jar», дважды щелкнув его

2. Откроется небольшое диалоговое окно с запросом порта вашего Arduino

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

(См. Изображения выше)

3. Откроется другое диалоговое окно с запросом смещения часового пояса

Смещение относительно местного времени вашего компьютера. Чтобы установить RTC на ваше местное время, просто введите +00: 00.

Очень важно, чтобы вы вводили смещение часового пояса в определенном формате!

Общий формат: + чч: мм или -чч: мм. Всегда включайте ведущие нули!

(Например: -03: 00; -06: 00; +09: 00; +02: 30)

4. Приложение Java запустит небольшое окно с консольным выводом

Следите за сообщениями с подтверждением, например: "Время истекло".

Когда процесс установки времени завершится, код будет печатать текущее время на DS3231 каждые 5 секунд. Вы можете убедиться, что время установлено правильно.

Если вы не получите никакого вывода через ~ 20 секунд, нажмите кнопку сброса на вашем Arduino и подождите снова.

Если он по-прежнему не работает, проверьте скетч на Arduino и / или загрузите его снова. (Важно: закройте порт в приложении Java перед загрузкой в Arduino; в противном случае он заблокирует последовательный порт!) Затем сбросьте соединение в программе Java.

(Программа на Java использует LocalDateTime для получения текущей даты.)

Время выставлено. Повеселись

Если у вас возникли неразрешимые проблемы с установкой времени, прокомментируйте ниже и поделитесь со мной своим файлом log.txt (в той же папке, что и банка). Большое спасибо!