Съдържание:

Настройка на DS3231 RTC (часовник в реално време) точно, бързо и автоматично с помощта на Java (+-1s): 3 стъпки
Настройка на DS3231 RTC (часовник в реално време) точно, бързо и автоматично с помощта на Java (+-1s): 3 стъпки

Видео: Настройка на DS3231 RTC (часовник в реално време) точно, бързо и автоматично с помощта на Java (+-1s): 3 стъпки

Видео: Настройка на DS3231 RTC (часовник в реално време) точно, бързо и автоматично с помощта на Java (+-1s): 3 стъпки
Видео: Контроллер автоматического пуска-останова с часами реального времени DS3231 2024, Юли
Anonim
Настройка на DS3231 RTC (часовник в реално време) точно, бързо и автоматично с помощта на Java (+-1s)
Настройка на DS3231 RTC (часовник в реално време) точно, бързо и автоматично с помощта на Java (+-1s)

Този Instructable ще ви покаже как да настроите часа на DS3231 часовник в реално време с помощта на Arduino и малко Java приложение, което използва серийната връзка на Arduino.

Основната логика на тази програма:

1. Arduino изпраща серийна заявка.

2. Програмата Java разглежда кой ден/месец/… arduino е поискал и изпраща съответните данни обратно.

3. След като се събере цялата необходима информация, arduino съхранява данните в DS3231.

Модулът RTC DS3231

R32 модулът DS3231 е сравнително евтин 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 също трябва да работят. (Други може също да работят, но съм мързелив да потвърдя)

  • Arduino -> DS3231
  • A4 -> SCL
  • A5 -> SDA
  • 5V -> VCC
  • GND -> GND

Стъпка 2: Кодът на Arduino

Кодът на Ардуино
Кодът на Ардуино

Изтеглете.ino файла отдолу и го качете на вашия Arduino (в моя случай Nano).

Скицата се нуждае от следните библиотеки, за да работи правилно:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Урок за това как да качите код на вашия arduino можете да намерите тук (arduino.cc).

В IDE на Arduino проверете дали кодът е изпратен правилно. (Качването приключи)

Вашият 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.

Важно е да въведете изместването на часовата зона в определен формат!

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

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

4. Приложението Java ще стартира малък прозорец с конзолен изход

Следете за съобщения за потвърждение като: „Часът е зададен завършен“

Когато процесът на зададено време приключи, кодът ще отпечатва текущото време на DS3231 на всеки 5 секунди. Можете да потвърдите, че часът е зададен правилно.

Ако не получите никакъв изход след ~ 20 секунди, натиснете бутона за нулиране на вашия arduino и изчакайте отново.

Ако все още не работи, проверете скицата на Arduino и/или я качете отново. (Важно: Затворете порта в приложението Java, преди да го качите в Arduino; в противен случай той ще блокира серийния порт!) След това нулирайте връзката в програмата Java.

(Програмата Java използва LocalDateTime, за да получи текущата дата.)

Часът е зададен. Забавлявай се

Ако имате някакви неразрешими проблеми при настройването на часа, моля, коментирайте по -долу и споделете вашия log.txt (в същата папка като буркана) с мен. Благодаря много!