RSS блога
Подписка
DIY часы на DS3231 - расширяем функционал
- Цена: 761,84 руб.
- Перейти в магазин
Часы были куплены и собраны год назад. Так как все покупки участвующие в обзоре покупались давно и продавцы их уже не продают, ссылки ведут на аналогичные предложения.
Данные часы уже несколько раз обозревались:
Набор для самостоятельной сборки матричных часов на DS3231,
Часы – конструктор на высокоточном (extremely accurate I2C) чипе DS3231.
Основой часов является микроконтроллер stc15w1k24s и микросхема rtc ds3231. Сменив прошивку микроконтроллера и подключив дополнительные модули мы можем увеличить функционал часов.
В модернизации принимали участие или тестировались:
Модуль bmp180 GY-68 — $1.97
Модуль si7021 GY-21 — $2.87
Модуль bme280 GYBMEP — $4.07
usb — uart конвертер на CH340G — $2.55
Модули bmp180 и si7021 были между собой спаяны.
Расстояние между отверстиями модулей 5 мм.
Изначально для изготовления П-образных контактов пытался изогнуть штырьки от гребенок PLS, но почему-то при изгибании они лопались. Пришлось применить жилу от провода ПВ-1/ПУВ 1х0,5 мм( диаметр жилы примерно 0.7мм ).
и подпаяны к часам.
Точки подключения модулей.
Перепрошиты и собраны.
Отличия прошивки от стандартной(заводской):
1. При подключенном модуле si7021 — вывод влажности.
2. При подключенном модуле bmp180 — вывод давления.
3. При подключенном модуле bme280 — вывод давления и влажности.
4. Будильник с выбором дней недели.
5. 6 уровней яркости.
6. Наши праздники.
7. Возможность корректировки хода ds3231.
8. Пока отсутствуют анимация/эффекты.
GitHub Repository с проектом под Keil, поддержку STC15 в Keil можно добавить через STC-ISP.
Архив с HEX файлом.
STC-ISP v6.86D
Перепрошивал часы с помощью STC-ISP и USB-UART адаптера на CH340G. С напряжением 3.3v.
Input IRC frequency: 18.432 MHz
При перепрошивке просто прислонял шлейф к контактным площадкам.
Данные часы уже несколько раз обозревались:
Набор для самостоятельной сборки матричных часов на DS3231,
Часы – конструктор на высокоточном (extremely accurate I2C) чипе DS3231.
Основой часов является микроконтроллер stc15w1k24s и микросхема rtc ds3231. Сменив прошивку микроконтроллера и подключив дополнительные модули мы можем увеличить функционал часов.
В модернизации принимали участие или тестировались:
Модуль bmp180 GY-68 — $1.97
Модуль si7021 GY-21 — $2.87
Модуль bme280 GYBMEP — $4.07
usb — uart конвертер на CH340G — $2.55
Модули bmp180 и si7021 были между собой спаяны.
Расстояние между отверстиями модулей 5 мм.
Изначально для изготовления П-образных контактов пытался изогнуть штырьки от гребенок PLS, но почему-то при изгибании они лопались. Пришлось применить жилу от провода ПВ-1/ПУВ 1х0,5 мм( диаметр жилы примерно 0.7мм ).
и подпаяны к часам.
Точки подключения модулей.
Перепрошиты и собраны.
Отличия прошивки от стандартной(заводской):
1. При подключенном модуле si7021 — вывод влажности.
2. При подключенном модуле bmp180 — вывод давления.
3. При подключенном модуле bme280 — вывод давления и влажности.
4. Будильник с выбором дней недели.
5. 6 уровней яркости.
6. Наши праздники.
7. Возможность корректировки хода ds3231.
8. Пока отсутствуют анимация/эффекты.
GitHub Repository с проектом под Keil, поддержку STC15 в Keil можно добавить через STC-ISP.
Архив с HEX файлом.
STC-ISP v6.86D
Перепрошивал часы с помощью STC-ISP и USB-UART адаптера на CH340G. С напряжением 3.3v.
Input IRC frequency: 18.432 MHz
При перепрошивке просто прислонял шлейф к контактным площадкам.
+58 |
34794
25
|
Самые обсуждаемые обзоры
+73 |
3703
145
|
+53 |
3900
69
|
+35 |
2978
57
|
А вот на основании изменения давления за последние 6-12 часов вполне можно принять решение брать ли с собой зонт или отправиться куда-то налегке.
Мне до работы 25 км — по пути погода может радикально переменится раза 2.
Вот такая маленькая и гордая страна с грустными синоптиками :D
Хотя именно осадки в ближайщие пару дней они угадывают очень точно
ПС
хочу прошить свои часики под bme280
и добавить дни рождения своего семейства
В теории и bmp280 должен.
Сначала ищется по адресу 0x76, потом по 0x77, при удачной проверке 0x76, 0x77 не проверяется.
По chipid определяется модель датчика, и его возможности.
проверялось на:
bmp180 — I2C address 0x77 chipid 0x55
bme280 — I2C address 0x76 chipid 0x60
Только вот несколько вопросиков…
Можно ссылочку на саму програмку-прошивальщик, где её скачать можно? Если не подключать дополнительные модули, а только пролить. Будут работать часики?
Если с одним модулем BMP180, без si7021, будут работать?
Будут.
Будут.
Интересно, в заводской прошивке почасовой сигнал был только один раз, при смене часа… А в той прошивке исправлено?
А сколько раз нужно при смене часа?
Подскажите вот ещё что… Можно как то прошивку с часов «списать», чтоб потом можно было «откат» сделать...?
У меня двое часов на новой прошивке, нормально себя чувствуют.
А как вы включает и Отключаете почасовой сигнал..?
А анимация часов тоже есть?
В меню — on/off.
Анимации/эффектов нет, в меню пункт disp есть, но он ни на что не влияет.
Про точность, жаль что единственную si7021 впаял в часы она тоже что то свое показывала. Все трое воткнуты в одну бредбоард, после 15 минутного прогрева:
Да можно в меню подстроить отображаемую температуру в диапазоне -9 +9 градусов.
1. часы выключены.
2. нажимаем «Download» или «Check MCU»
3. если на часы припаяны контакты и подсоединен шлейф, то нажимаем кнопку на UART или вручную отключаем и подключаем вывод VCC.
если не припаяны то просто начиная с GND прислоняем гребенку, VCC должен податься последним и не отпускаем до радостного писка часов.
Опыты лучше начать с кнопки «Check MCU»
А можно в праздники добавить день энергетика 22 декабря..?
А чтоб этот архив использовать, его нужно ещё как то в Keil v9.56 обработать?
И сам обзор малоинформативен. В комментариях и то больше информации почерпнул, чем в обзоре.
такие часы
Таких часов у меня нет.
При открытии проекта в Keil было сообщение о том что «Target device not found», ну или что то в этом роде. В библиотеке девайсов STC контроллеров, конечно же, не оказалось. Пришлось добавить их вручную, взяв за основу стандартный контроллер 8051.
Без добавления поддержки данного контроллера в Keil получаю ошибку: sys.h(4): warning C318: can't open file 'STC15.H'
Уменьшение частоты мигания двоеточия между часами и минутами в два раза.
Изменение типа дисплея в пункте меню DiSP для отображения только времени с 1 на 5, как в заводской прошивке.
Увеличение интервала, через который отображаются показатели (дата, день недели, температура, давление и влажность), с 5 до 60 сек.
Большое спасибо v0tang за предосталенные исходники его прошивки.
Добавление в показатели года (на первом месте), минут и секунд (после дня недели) — отображаются 5 сек, чтобы можно было посмотреть точность хода часов.
В режиме отображения только времени (тип дисплея 5) нажатие кнопки SET приводит к отображению показателей, начиная с года, и кончая празником, если он есть. Последующие нажатия кнопки SET во время отображения показателей приводят к пропуску показателя. Так можно быстро добраться до интересующих показателей (виджетов).
Добавлен пункт меню EXiT — выход из меню, помимо долгого нажатия на кнопку SET.
Изменены выходы из пунктов меню FONT и MiDP: в исходной версии v0tang (файл OldDIYClock[18.432].hex, 56440 bytes от 10.09.2017), если тип дисплея был не равен 1, т.е. осуществлялся режим отображения показателей через 5 сек, то при выборе пункта меню FONT или MiDP и нажатии кнопки SET, отображения показателей через 5 сек больше не происходило. Чтобы оно возобновлялось, надо было нажимать еще раз кнопку SET. Может так и было задумано, но я это изменил. У меня при выходе из пунктов меню FONT, MiDP и EXiT путем нажатия кнопки SET отображение показателей (когда тип дисплея не равен 5) не останавливается.
Большое спасибо v0tang за предоставленные им исходники его прошивки.
Поскольку значение STRG сохраняется в EEPROM, то также, как и при других изменениях параметров, хранящихся в EEPROM, я делал прошивку с галкой у Erase all EEPROM data next time program… в прошивальщике, для удаления всех данных из EEPROM.
PS: прошивал без сброса EEPROM.
Баг, или всё-таки нужно прошить со сбросом?
Прошивка здесь.
Нашел в display.c константы #define DISPLAYSIZE 22 и #define RENDSERBUFFERSIZE 254, изменил 254 на 512 — отображение начинается с 48 символа. Подскажите как увеличить объем буфера экрана.
Я же имел ввиду адресацию, то есть те переменные что используются в [скобках] и имеют размерность uint8_t
display.c
display.h
В теории это решит вашу проблему
рекомендую рассчитать RENDSERBUFFERSIZE = 6 * максимальная строка, у контроллера не так много памяти.