![]() |
![]() |
|||||||||||||||
GPS Мультичасы «МЕРКУРИЙ 402». Финал.
Автор: vitalyadm Предыдущая статья тут: «МЕРКУРИЙ 402-А. Продолжение» Здравствуйте дорогие друзья! ВВОДНОЕ И так, давайте для начала разберёмся. Фактически, все основные принципы работы, как цельного устройства - остались прежними, за исключением блока значений температуры и атмосферного давления. Теперь вместо датчика BMP180 находится модуль приёмника, а сам датчик располагается на передатчике. Значения температуры и атмосферного давления передаются по беспроводному каналу. Устанавливается приёмник на те же посадочные места, что и BMP. Зачем была осуществлена такая схема (приёмник - передатчик)? Печатная плата часов (как устройства в сборе), по сути, содержит на себе два независимых модуля, это сами часы на основе ATmega328 и модуль кругового циферблата (секунд), на основе ATmega8. Поэтому, для упрощения и в избежание тавтологии будем называть модуль часов - «основным модулем». Модуль кругового циферблата – «кольцо». Модуль приёмника значений температуры и давления – «приёмник». Передатчик – это отдельное, независимое устройство, с автономным питанием, позволяющее передавать значения атмосферного давления и температуры, его кстати, мы будем называть в дальнейшем – «передатчик». ЧАСЫ Как печатная плата, так и сами принципиальные схемы не потерпели каких- то либо серьёзных изменений за исключением всего нескольких элементов. (пары конденсаторов и иной стабилизатор питания), рассматривать подробно не будем, всё предельно просто. Обе платы, что новая (из этой статьи), что старая (из предыдущей статьи) абсолютно совместимы как по элементам, так и по подключению «приёмника». Практически, они почти идентичны. GPS модуль тот же, NEO-6M, желательно в виде красного шилда, другие могут не подойти по пинам. Вот такой: GPS антенна, обычная активная 25х25х8мм.
Принципиальная схема «основного модуля» Принципиальная схема «кольца» Все резисторы, конденсаторы и светодиоды в корпусе 0805.
Карта элементов, обратная сторона Основная печатная плата, фото вид с обеих сторон Заказывал платы в Китае, 5 штук вышли совсем не дорого, около 600 рублей, поэтому проблем здесь я не вижу никаких. Все файлы проекта, в том числе и гербер для заказа ПП будут прикреплены в конце статьи. Фюзы для прошивки ВСЕХ МК проекта будут также находится в архиве вместе с прошивками. Монтаж основной ПП советую осуществлять в обратном порядке, сначала только модуль «кольцо» и уже после проверки работоспособности монтировать «основной модуль», подробно поэтому моменту описано в предыдущей статье, если что можно подсмотреть там, не будем останавливаться на это теме и сразу идём к сборке «приёмника». Принципиальная схема «приёмника»
Карта элементов, лицевая сторона
Карта элементов, обратная сторона
Для организации радиоканала использовались готовые радио модули HC-12.
Очень удобно, стоимость одного модуля на алике всего 120-150р! При этом, это уже отстроенный приёмопередатчик, вообще в действительности это ни что иное как беспроводной UART. Никаких сложностей, вся организация канала между устройствами сводится к набору нескольких АТ команд. Очень важный плюс, у радио модуля есть спящий режим, в котором он потребляет около 16 мка! Для питания устройства от батареек – самое то. Из основных достоинств – их не надо сопрягать как блютуз, выбрал канал и вещай, как рации и дальность, максимум на сколько проверял – 200 метров берёт на ура с учётом, что передатчик находился в квартире, а я с ноутбуком и приёмником на улице т.е. видимость была не прямая. Частота 433Мгц. После сборки «бутерброда» из радио модуля и управляющей платы получилось вот такое устройство Микроконтроллер ATTiny2313 управляет как радио модулем, так и данными в целом, выступая неким посредником между ATMega8 и «передатчиком». На уровне Tiny идёт проверка корректности посылки, принятой от «передатчика», обработка этой посылки, возврат подтверждения о получении пакета, хранение и последующая передача полученной информации. Никакой предварительной настройки не требуется. Просто собирается «бутерброд» и устанавливается на основную ПП. В итоге получается следующая сборка
Припаивается передатчик к основной плате через штыри В роли антенны выступают две спаянные вместе антеннки от GSM модуля SIM800L, продаются отдельно. Можно просто смотать в виде пружины 30 сантиметров провода. Также, на плате HC-12 имеется разъём для подключения внешней антенны, это если нужно сильно увеличить радиус передачи. Сразу отвечу на вопрос, который может возникнуть у многих. «А почему нельзя было распаять всё на одной, основной, плате, не прибегая к «бутербродному» принципу? Зачем такой «огород городить» …?» Дело в том, что это разно модульный принцип построения устройства, например лично мне больше нравится такой подход. Почему? Так проще разрабатывать и потом собирать, когда отдельный блок — это небольшое устройство, проще отлаживать, да и интереснее как- то. А во-вторых, когда пришла идея сделать «беспроводной вариант» не только у меня, но и у некоторых уже были собраны часы, не перепаивать же полностью плату. Поэтому единственное решение – это выпаять датчик давления и припаять на его место «приёмник». Да и кстати, в реальности очень даже симпатично вышло Каких- то настроек или важных нюансов при монтаже часов в целом - нет, просто берутся ПП, берутся электронные компоненты, всё собирается, заливаются прошивки, после подачи питания часы должны сразу начать работать. И так, зелёный светодиод постепенно увеличивает яркость и постепенно уменьшает, время перехода яркости от макс. к мин. и обратно 2,5 секунды и больше ничего. Красный постепенно увеличивает яркость в зависимости от того, сколько времени прошло с момента последнего принятого пакета от передатчика – чем ярче, тем больше времени прошло с момента прихода последней посылки от передатчика.
Заканчивая этот раздел, пройдёмся по пунктам меню. Переход в настройки осуществляется нажатием кнопки «МЕНЮ». ПЕРЕДАТЧИК Сразу начнём с принципиальной схемы. Для начала разберём как осуществлён принцип приёма- передачи информации: Внимательно! Перемычка на «передатчике» определяет промежуток времени, через которое будет отправляться очередной пакет данных, чем реже отправка, тем меньше итоговое энергопотребление «передатчика», а следовательно срок службы батареек, но ниже частота смены значений текущей температуры и давления. И наоборот, если перемычка снята, то отправляем чаще, ток потребления больше, частота смены выше. Поэтому, рекомендую устанавливать перемычку, если «передатчик» питается от батареек, если же «передатчик» подключён к какому- то внешнему БП, то можно перемычку снять, ток потребления уже не важен. При установленной перемычке интервал отправки составляет 40 минут, при снятой перемычке интервал составляет 5 минут! Честно говоря, опытным путём было установлено, что 40 минут – вполне идеальный интервал для замера, чаще особо и не обязательно т.к. на столько быстро температура воздуха не меняется. Состояние перемычек как на приёмнике, так и на передатчике должно быть одинаково!!! Если на «передатчике» установлена, значит и на «приёмнике» устанавливается и наоборот. Суть в том, что «приёмник», исходя из состояния перемычки начинает «ждать» очередной пакет в вышеуказанных пределах (40 минут/5 минут) и если «приёмник» не дождётся 3 определённых перемычкой промежутка в подряд (снята - ~2 часа ожидания, установлена - 16,5 минут), то Tiny на «приёмнике» обнулит последние принятые значения, а на LED дисплее часов вместо температуры высветится «---°», а вместо давления «Р---». Зачем? Всё просто, для того чтобы понять, что пора менять батарейки на передатчике. Поэтому если на дисплее высветились прочерки, это значит «передатчик» перестал передавать данные, меняем батарейки! И так, далее. После пробуждения, ATMega на «передатчике» опрашивает датчики и формирует посылку с данными, после чего эта посылка отправляется на «приёмник». Но, после отправки, уже «передатчик» ожидает подтверждения от «приёмника», что отправленная посылка была успешно получена и данные корректны. Если же «передатчик» не получил подтверждения, то через 2 секунды он отправит пакет заново и так по кругу. Количество попыток отправки, если нет подтверждения о успешной доставке – 10 раз. Этот алгоритм необходим для исключения вариантов, когда на приёмник из-за неуверенного сигнала или каких- то преград приходит искажённый пакет данных или вообще не приходит. В реальности это выглядит примерно так: - Вася кричит Пете: «Триста-тридцать-пять», а Петя в ответ, когда услышит, кричит Васе «Хорошо». Если Вася от Пети «Хорошо» не услышал, значит крикнет Пете снова «335». При этом Петя, когда услышит, что- то от Васи, обязательно проверит, что он услышал, только ли число и ничего лишнего (формат соблюдён)? В ином случае Петя не будет кричать «Хорошо». Примерно так. После того, как сессия отправки пакета будет закончена, ATmega «передатчика» обесточит все датчики и снова перейдёт в режим сна т.е. максимального энергосбережения. Таким образом будет выполнен очередная последовательность бесконечного цикла отправки данных. В упрощённом виде это выглядит так: Пробуждение -> Считывание данных -> Отправка данных (в случае отсутствия подтверждения снова попытка отправки) -> Уход в сон. Ток потребления в режиме сна «передатчика» в целом - ~500 микроампер, в активном режиме 16-40 миллиампер. На практике, последний раз батарейки менял в ноябре прошлого года, сейчас май, т.е. комплекта батареек на момент написания статьи уже хватило как минимум на 5,5 месяцев – я считаю отличный результат! По монтажу так же, никаких настроек делать не нужно, просто собирается устройство и всё. Допускается несколько параллельно подключённых датчиков DS18B20, до 3- х штук. При этом будет высчитываться среднее значение суммы температур со всех найденных на линии датчиков. Точность измерения температуры 0.1 градуса, пределы специально не проверял, на практике -25 было, +48 тоже. Точность барометра 1мм/ртст. Единственный момент, я повторю его несколько раз! В принципе, добавить, наверное, уже и нечего. Изначально выглядело так, вид с обеих сторон:
А уже после монтажа и окончательной сборки вышло вот так:
Карта элементов, лицевая сторона
А так выглядит передатчик в сборе, но со снятой верхней крышкой. Помимо всего и прочего, добавлю ещё один раздел. КРОНШТЕЙН КРЕПЛЕНИЯ ДАТЧИКА ТЕМПЕРАТУРЫ Вынести датчик за окно- мало, его ещё нужно хорошо закрепить и очень желательно защитить от дождя иначе датчик может покрыться льдом и тогда в лучшем случае, он просто перестанет показывать правильные значения, в худшем повредится. Поэтому, пока шёл ремонт, из остатков профиля для гипсокартона и напечатанном на 3D принтере держателя, был сделан вот кронштейн. Модель, разумеется, в архиве. Сам держатель.
Прикручиваем его к профилю для гипсокартона винтами М3 из нержавейки.
Крепим стяжками датчик к держателю и одной стяжкой фиксируем провод
Вот и всё, дело за малым, осталось закрепить конструкцию за окном В итоге получилось и красиво, и очень практично, профиль оцинкован – соответственно не ржавеет и при этом датчик находится всегда под «крышей», а значит ни дождь, ни снег ему не страшен. По крайней мере, зиму пережил отлично, проверено 3D ПЕЧАТЬ И ОКОНЧАТЕЛЬНАЯ СБОРКА Все детали этого проекта были распечатаны из PLA, слой 0.1. Заполнение 20%. Самая долгая печать одного элемента составила 32 часа — это основной корпус часов. Поддержки нигде не отключались. В остальном, всё как обычно. Часы. В сборе.
Место установки GPS антенны, без крышки.
Плата часов фиксируется за счёт лицевой крышки (обода), вид без крышки
Вид корпуса изнутри
Ножки соединяются с дном подставки, клеить не обязательно, держится крепко
Подставка крепится к корпусу через две проставки. В архиве модель только одной ножки, вторая печатается в зеркале относительно первой. Весь корпус собирается исключительно на винтах, клей не использовал вообще. Подставка крепится к корпусу на винтах М4, сначала до самой шляпки на винт накручивается гайка, после чего винт вставляется изнутри, и конструкция собирается. Можно использовать болт, но болтов М4 под рукой не было. Вместо внешней гайки я использовал барашек (см. фото), так вышло симпатичнее. Для фиксации лицевой панели и платы часов используются винты М3. Для фиксации крышки антенны GPS и соответственно самой антенны - винты М2. Длину винтов подбирать по факту сборки, как удобнее. Передатчик. В сборе. Крышку я выделил жёлтым, хотя в реальности весь корпус передатчика распечатан из пластика одного цвета.
Без крышки. Вставка, выделанная красным кругом, используется для фиксации провода от датчика. В прорезь укладывается провод, после чего устанавливается вставка. Фиксируется двумя винтами М2. Платы (основная плата передатчика и плата с кнопкой) крепятся при помощи винтов М3. Крышка задвигается, после чего фиксируется двумя винтами (также М3). Контакты с пружинками и без для батареек я покупал на алике, стоят копейки. Ищется просто, в поиске «контакты для батареек», интересуют те, что размером 10х9х0.3мм. Контакты просто вставляются в посадочные места. ИТОГ Собственно, после всего, порой не простого, пути к конечному результату получилось то, что получилось…. Причём, лично я считаю, что это одна из лучших работ в моей жизни, а если учесть, что эти часы уже обратили не малое количество внимания на себя, в том числе «Я себе тоже такие хочу…», могу уверенно сказать: «Всё получилось!». Чего и вам желаю! А эту инсталляцию не могу оставить без внимания, делал один мой товарищ как подарок на день рождения. Он назвал это «РЕАКТОР», получилось действительно интересно. P.S. Так сказать, пользуясь случаем. Выражаю огромную благодарность Солдатову Александру Владимировичу (АКА takedown1) за помощь и огромную поддержку в проектах, да и просто творчестве, спасибо тебе огромное, дорогой товарищ!
Ссылка на ветку форума по теме «Часы серии "МЕРКУРИЙ 40х-А"» Пишите, не забывайте! И до новых встреч, дорогие друзья! Всё, финал!
Файлы: Все вопросы в Форум.
Эти статьи вам тоже могут пригодиться: |
|
|||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |