Часы на ГРИ v2. Задания на доработку

Sergo_ST

★★★★★★✩
15 Мар 2020
829
753
@Sergo_ST, сам модуль блютуз не проблема сопрячь с Ардуино, были бы свободны пины для подключения. В идеале бы найти модуль с подключением по I2C - тогда можно было бы впараллель с, допустим, DS3231 повесить на одну шину.
А зачем i2c? Чем тот же UART хардверный/софтверный не устраивает?
 

poty

★★★★★★✩
19 Фев 2020
3,024
902
Можно и по UART, если пины свободны. В оригинальной плате - свободны, но какое-либо подключение к ним на плате не предусмотрено. На многих клонах что-то туда да подключено. Т.е., это можно сделать, но потребуется разводить плату с учётом загрузки этих пинов.
 

Sergo_ST

★★★★★★✩
15 Мар 2020
829
753
Добавить на плату место под BT модуль не проблема. Для уже готовых оригинальных плат можно будет просто подпаять модуль на проводки к линиям UART и питанию. Для прошивки часов можно сделать перемычку на питание BT модуля.
 

poty

★★★★★★✩
19 Фев 2020
3,024
902
@Sergo_ST, если идти вот так, "в лоб", то написать приёмную часть этого взаимодействия несложно. Надо только придумать "протокол", совершенно не проблема.
Я говорил несколько о другом. Оригинальная конструкция многого не имеет в принципе. По сути, это только часы, без секунд, с эффектами переключения цифр. Без будильника (звука), нормального управления подсветкой, метеоданных... Многие собирают всё именно так, но тогда - что такого сложного нужно настраивать? В качестве основы "оригиналы" достаточно "благодарны", но добавление всех этих "фич" занимает выводы. Не буду говорить о всех реализациях, участвовал только в COVID-19, там эти TX/RX просто заняты другим "оборудованием". Т.е., просто подпаяться к этим выводам - не получится. Для того, чтобы такую конструкцию сделать хотя бы повторяемой, нужно освободить эти выводы непосредственно на плате, одновременно предусмотрев место для блютус модуля. Не вижу здесь тоже больших проблем, просто по сравнению с лобовым вариантом сложность реализации несколько возрастает.
Почему я упомянул I2C: можно подпаяться к любой существующей плате (как минимум во всех них есть DS3231 с таким интерфейсом) и сделать своеобразный плагин. Кстати, такие модули существуют, как-то раньше я этим просто не интересовался. В частности, на nRF51822.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
@Sergo_ST, я блютузами не пользуюсь. Мне с ESP8266 проще. Причём, без связки с Arduino. А если и привязывать что-то к этим часам, то, по-хорошему, нужен лишь протокол обмена (или хотя бы приёма - только в Ардуино) командами через UART. Тогда и с ПК можно было бы терминалом время установить. (А если протокол приблизить к GPS-посылкам, чтобы парсинг не утяжелять, то вообще будет без разницы, что подключать - то есть не обязательно иметь на борту этот модуль постоянно.)

@poty, а если сам ESP-01 использовать как I2C-слейв? (Есть библиотека, в которой заявлена устойчивая работа мастером, но не слейвом. Не пробовал, но тут есть источник проблем. В теории GPIO0/GPIO2 подтянуты вверх - и это требуется для старта модуля. Если при подаче питания кто-то дёрнет шину вниз, ESP не будет работать, как ожидается. Например, если при старте GPIO0=LOW, ESP перейдёт в режим программирования...)
Но если уж заморачиваться, то почему бы не взять ESP-12E/F или уже с обвязкой что-то типа Wemos D1 Mini? Тут уже можно городить полноценный I2C-клиент.

Но не проще ли взять ESP8266 как основной процессор? Это, конечно, другая схема будет (и такие схемы известны), другие часы...
 

poty

★★★★★★✩
19 Фев 2020
3,024
902
А если и привязывать что-то к этим часам, то, по-хорошему, нужен лишь протокол обмена (или хотя бы приёма - только в Ардуино) командами через UART.
Так об этом и речь. Просто терминал - это для упёртых админов, не каждый сможет командами at пользоваться, как сейчас модно говорить, usability - не на высоте будет. А вот если приложение сделать, то никто и знать не будет, что там посередине - блютус или Wi-Fi?
а если сам ESP-01 использовать как I2C-слейв?
Вот это - очень заманчивое решение. Немного бы меня подтянуть в этом вопросе (где почитать) - я бы попробовал. Надеюсь, с программированием справлюсь, ничего сложного, думаю, там нет.
не проще ли взять ESP8266 как основной процессор?
Вот здесь, думаю, не проще. Я потихоньку двигаюсь в этом направлении, но в известных реализациях многие отмечают не очень плавную работу функций реального времени при проблемах с сетью. Видимо, несколько реал-тайм процессов не уживаются на одном проце, несмотря на существенно большую частоту.
Кроме того, никак не могу понять, почему аппаратный PWM ограничен 1000Гц? Это значит, DC/DC преобразователь нужно делать на внешней микросхеме и нужно где-то взять адекватное тактирование для динамической индикации и эффектов.
 
Изменено:

Sergo_ST

★★★★★★✩
15 Мар 2020
829
753
На сколько я знаю, ESP очень узко специализирована на работе с веб, поэтому не думаю что это хорошая идея полностью строить на ней часы(по крайней мере нужен внешний преобразователь и желательно драйвер для управления лампами)...
Опять же, не утверждаю, тк с ними особо не работал(только UDP обмен данными), плюс специфичный язык программирования LUA(мне C как то ближе).

В общем для себя сделаю на BT модуле, исходники выложу, мб кому пригодится...
 

poty

★★★★★★✩
19 Фев 2020
3,024
902
@Sergo_ST, готов помочь, если помощь нужна. Не обещаю, что быстро, но идея с приложением мне очень нравится.
 

Sergo_ST

★★★★★★✩
15 Мар 2020
829
753
@poty, хорошо, если что отпишу.
Но начну заниматься в любом случае не скоро, тк нужно сначала дождаться платы, затем прошивку написать и только потом заниматься приложением...
 
Изменено:

Старик Похабыч

★★★★★★★
14 Авг 2019
4,200
1,287
Москва
Какое то время назад я начал для одних проприетарных часов делать управление по web, но так как я в веб не сильно продвинут, то пока жду странички от опытных разработчиков :)
И через какое то время до меня дошло что таки можно просто по USB управлять каким то приложением (там выше все правильно написано)
Вылиллось вот в такое приложение, (закрытое): Я не дизайнер как мог делал:
1616336507693.png
И да, часам будет пофиг, что с другой стороны, есп, пк, блютус.. главное что бы оно могло понимать и отвечать на нужные команды, коих с десяток наверное
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
@poty, терминал - это не про AT-команды, а про терминальную программу. Хотя бы по типу того монитора порта, что в Arduino IDE встроен, - он позволяет строку отправить, типа "T=151847,D=20210327" или иной какой, чтобы контроллер вытащил дату-время из неё и установил. Если делать для Wi-Fi/BT, то можно слать разные конфигурационные параметры, чтобы отобразить или установить их. Типа в МК отправляешь "T=?,D=?,CFG=?", а в ответ приходит "T=151847,D=20210327,AT=0715,AD=W,NTB=2300,NTE=0700..." (с выводом времени и дней недели будильника, начала-конца ночного режима и прочего). Эти параметры отображает программа/web-страница для настройки, исправленное засылает обратно в МК. Можно слать не весь конфиг, а запрашивать его кусочками по параметру или по блоку параметров - это уже детали, которые можно потом обсудить.

А вот real-time и ESP8266 - это не совсем совместимые категории. Потому и ограничение частоты ШИМ в 1 кГц (можно меньше - от 100 Гц), что ШИМ формируется программно. Ну нет у esp8266 того изобилия аппаратных возможностей, как у Atmega328P, в том числе, таймеров. Программно почти всё, даже поддержка I2C (потому и работает на любых выводах, кроме GPIO16).
Надо, конечно, упомянуть, что есть в ESP8266 аппаратный ШИМ аж на 312 кГц, но отмечается, что при его работе такие помехи прут, что его использование не совместимо с Wi-Fi.

Конечно, ESP8266 не так хорош (и не так документирован, к слову), как Атмеги, но и его используют в коммерческих проектах. И его вполне можно приспособить для часов. Да, нужна обвязка - неизбежно. И обвязка по последовательным интерфейсам - выводов-то всего ничего. И потому в обработчике прерывания уже не получится установить комбинацию для К155ИД1. И для питания придётся ШИМ-контроллер использовать... Но я пару недель назад собрал часы на ESP8266 - работают... Программа пока чужая - это вопрос времени.

Но давайте разделим темы: 1) ESP8266 как источник точного времени для текущего проекта и 2) ESP8266 как ядро часов на ГРИ.
 

poty

★★★★★★✩
19 Фев 2020
3,024
902
@gcat, мне ситуация непонятна. Во всех случаях DUTY влиять должен, причём заметно (либо напряжением, либо нагревом деталей). Предполагаю, что есть где-то значительная утечка тока в высоковольтной части, не позволяющая напряжению подняться. Здесь многие говорят про неотмытый флюс или другое замыкание контактов, но это бы проявлялось фантомными цифрами или цифрами, которые на зажигаются. Весьма вероятно, что дело в неправильном сопротивлении в анодной цепи: если оно слишком маленькое, то лампы будут выступать в качестве своеобразных стабилитронов, просто сбрасывая напряжение в ток через себя. Но тогда индикаторы бы, скорее всего, светились достаточно ярко. Возможно, какие-то утечки в высоковольтном конденсаторе, но тоже не всё сходится (>300В на холостом ходу). Чуть выше по ветке была проблема с входным 5В, но и конденсатор имеется, и измерение проводили.
Как вариант - что-то не так с измерительным прибором (например, маленькое входное сопротивление, шунтирующее высоковольтный конденсатор). Ещё может быть вариант со слишком большой индуктивностью дросселя.
Так как преобразователь напряжения здесь очень простой (ключ-MOSFET, дроссель, диод и конденсатор), то чудес быть не должно. Надо искать, как мне кажется, во внешних цепях.
1) ESP8266 как источник точного времени для текущего проекта
Всё же хотелось бы чего-нибудь попроще в этом качестве, но начать можно и с этого.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
@poty, попроще - это как раз терминал (монитор порта из Arduino IDE) и парсинг строки, полученной через Serial. Тогда и "посложнее" будет таким же, только подключаться будет не ПК по проводу, а BT- или Wi-Fi-адаптер.
 
  • Лойс +1
Реакции: Старик Похабыч

poty

★★★★★★✩
19 Фев 2020
3,024
902
Я про попроще говорил про простейший Web-сайт на самом маленьком модуле. Как его подключать к Ардуино - вопрос второй.
 
  • Лойс +1
Реакции: technotrasher

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
Так и я про то:
  1. Проектируем протокол - систему команд/ответов (по типу "T134511" для установки времени или ответа о текущем времени, "T?" для запроса, аналогично про дату и другие конфигурационные параметры). Для унификации шлём только символьные строки.
  2. Добавляем в прошивку часов парсер строки, полученной из Serial, и формирователь ответов на запросы для отправки в Serial.
  3. Часами уже можно управлять с ПК через USB-UART на плате Arduino.
  4. Пишем web-морду для ESP-01 (или иной платы на ESP8266 - процессор-то одинаковый, только у ESP-01 не все выводы наружу оформлены), учим модуль получать и отправлять данные с UART (RX/TX). Соединяем по RX/TX модуль и Arduino - часами можно управлять по Wi-Fi через web-морду.
  5. Если подключим ещё один GPIO от ESP к Reset Arduino, то получим возможность прошивать часы "по воздуху". (Если используется ESP-12E/F, то есть памяти хотя бы 8 мегабит (1 мегабайт), то и ESP можно прошивать "по воздуху"...)
  6. Аналогично для BT: пишем программу для смартфона, подключаем BT-модуль к RX/TX.
В результате можно остановиться на шаге 3, на шаге 4 или переставить шаг 6 после шага 3 и остановиться на нём (он станет шагом 4) - всё это не сложно. Если создан протокол, то дальше больше программной суеты.
Но шаги 1 и 2 делать придётся для любого способа управления из предложенных.
 
  • Лойс +1
Реакции: technotrasher

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Я про попроще говорил про простейший Web-сайт на самом маленьком модуле. Как его подключать к Ардуино - вопрос второй.
Берете наш фреймворк EmbUI, из коробки получаете синхронизацию времени, mqtt, веб-приложение, локализацию и т.д.

Затрат на написание 0. Как может выглядеть интерфейс поглядеть можно в ветке лампы. Фреймворк открыт и доступен всем в гите.
 

poty

★★★★★★✩
19 Фев 2020
3,024
902
@kDn, а рекомендуемый МП или модуль готовый? (Я про аппаратную часть)
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@poty, не понял вопроса... Фреймворк будет одинаково нормально работать как на esp01, так и на esp8266/esp32, при этом в каком они виде - вемос/ноде или просто голый модуль - не важно.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@poty, отдельной темы по фреймворку нет, если хотите создайте такую где удобно. Будут вопросы - помогу :), без проблем.
 

cda2023

✩✩✩✩✩✩✩
22 Ноя 2020
1
0
А можно эти часы перевести с платформы нано на esp32 (c wifi). Добавится возможность сделать синхронизацию по wifi (web морду) связь с удаленными датчиками ... Достаточно переделать соединение под esp32 и пере развести плату если назначения контактов изменится, отпадет необходимость держать модуль часов реального времени (периодически синхронизировать и от встроеного генератора поддерживать ход часов).
 

JokerShooter

✩✩✩✩✩✩✩
16 Дек 2022
1
0
Здравствуйте! Кто сможет доработать скетч? Надо прикрутить будильник и обратный таймер
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
501
224
Избыточное цитирование. Отредактируй или сообщение будет удалено
А можно эти часы перевести с платформы нано на esp32 (c wifi)......
нет. esp не хватит на все со всеми фишками и подсветками. чисто часы. я добавил просто esp32 в сам проект. и это работает. но. модуль времени все равно обязателен. и это далеко не просто переразвести дорожки.
 
Изменено: