Окт 152016
 

ГРИ часы под управлением ESP8266

Опубликовано 21.09.2015.
Создано при помощи КотоРед.

О конструкции.

Основой часов служит модуль ESP-12(WiFi) с чипом ESP8266 китайской компании Espressif. Пожалуй, радиолюбитель у которого есть интернет, уже знает или хотя бы слышал об этих модулях. Останавливаться на описании смысла нет.

Устройство ориентировано на повторение новичками. Исходя из этого, платы не сложные, сделаны по «ЛУТ» технологии, программатор не требуется (модуль программируется через COM-порт), средой программирования выбрана Arduino IDE.
На платах есть напряжение опасное для жизни!

Так будут выглядеть часы без корпуса после сборки:

Предмет повествования состоит из из 3 плат: платы индикации, силовой и основной.

Все они крепятся друг к другу разъёмом PLS-10, в духе Arduino шилд. Я не стал разорятся на покупку разъёмов 🙂 и повыпаивал штырьки из старых материнских плат.

Что же умеет программа:

  • связываться с NTP сервером и получать от него точное время (раз в сутки);
  • считать время между сеансами связи;
  • синяя подсветка, которую можно включить и отключить;
  • статическая индикация;
  • Ночной режим (по времени).

На плате предусмотрена возможность установки датчика температуры и фото резистора, но софтовой поддержки нет (я их просто забыл на работе 🙂 в пятницу).

Планировалось в начале что кнопками можно будет выставить время, если нет связи. Чуть позже пришло понимание, что если уж часы построены на модуле специально предназначенном (в этом устройстве) для получения времени из инета, и установка времени ими лишнее. Поэтому кнопками можно вклвыкл подсветку и принудительно запросить время.
Будильник в часах отсутствует по причине моей уверенности в том, что если он не может звонить когда нет света , то он и не нужен.

Если Вас заинтересовала эта конструкция и есть желание повторить, то к телу схеме.

Алгоритм работы прост:

  • при включении посылаем запроспакет на NTP сервер;
  • ответ преобразуем во время;
  • в бесконечном цикле каждую секунду обновляется информация в сдвиговых регистрах(что бы мигнуть точкой) и каждые 1/20 с опрашиваются кнопки.
  • Спустя 24 часа очередной запрос на NTP сервер и опять в цикл.

О сборке.

Начинаем с преобразователя 12 в 180В. Собираем часть, показанную на фото:

Подаем питание. и в точке А должна быть генерация (если есть осциллограф) или ~9В (при наличии только мультиметра).
Далее собираем оставшуюся часть схемы преобразователя, не забыв изолировать конденсаторы от платы.

Подаем 12В. В точке (к аноду) должны наблюдать напряжение 180В. Бинго!

Собираем часть схемы отвечающую за получения напряжения 3.3В

В точке С должно быть 3.3В светодиод так же должен загореться. Не забудьте временно для проверки соединить землю(см. фото ниже).

Следующим на очереди блок индикации. Тут все просто — нужно все элементы запаять на плату и затем обязательно проверить их работу. К слову, SMD светодиоды у меня приклеены супер-клеем к плате и соединены МГТФом, их надо приклеить и проверить работу(!) в первую очередь.

Проверяем ключ светодиодной подсветки, подав 3.3В в точку С — подсветка должна загореться. Убрали — погаснуть(12В подключить к подсветке не забудьте).
Проверяем работу анодного ключа. Для этого требуется подать напряжение 3.3В в точку А и точку D,F,G или К соединить с землей. При этом соответствующая лампа должна загореться.
При снятии напряжения с точки А, лампа должна погаснуть.
Аналогично, подачей напряжения (3.3В) на точку А и В проверяется двоеточие из неонок.

Затем собираем плату индикации, внимательно позванивая дорожки под резисторами перемычками.
В ней проверять особо нечего. Единственное советую, мультиметром померить что бы небыло короткого по питанию.

После собираем оставшуюся часть основой платы (источники на ней собраны ранее). Перед уствновуой изолируем » дно» модуля.

После этого пришло время запрограммировать «сердце» часов — ESP8266.

Аккуратнее с проводами которые приходят с COM-порта, там есть напряжение 12В и оно может «убить» модуль.

Для этого нам понадобится Arduino IDE и спаянный кабель к СОМ-порту.

Для начала попробуем связаться с модулем. Для этого нам понадобится терминал ( я пользовался CoolTerm).
Скачиваем и устанавливаем на компьютер приложение CoolTerm. Запускаем приложение и для настройки жмем Options

потом в всплывающем окне в вкладке Serial Port выбираем наш COM порт и скорость передачи данных.Некоторые модули ESP8266 работают на скорости 57600 или 9600, модули с новой прошивкой на скорости 115200 бод. После этого переходим на вкладку Terminal и в строке Terminal Mode выбираем режим работы Line Mode и жмем OK

Мой ESP завелся на 9600.
.
Подключаемся к СОМ-порту(согласователь уровней распаян на самой плате — ADM3202). Подаем питание на основную плату.

Потом в главном окне программы жмем Connect

при удачном подключении введем в строке ввода команду “АТ” и нажмём ENTER на клавиатуре для отправки команды в ESP ответит ОК, если у нас при отправке в ответом будут крякозябры – измените скорость передачи данных на другую.

Как только получили ответ ОК воодим команду: AT+CIOBAUD=115200
Что бы переключить модуль на скорость 115200 (быстрее будет заливаться прошивка).

ESP должен вернуть — ОК.
Закрываем CoolTerm. Выключаем плату.

Далее:

  • Качаем(если не установлена) Arduino IDE с офф сайта (https://www.arduino.cc/en/Main/Software), устанавливаем.
  • Запустить Arduino IDE, далее Файл – Настройки – в поле Additional Boards Manager URLs вставить ссылку на стабильную версию http://arduino.esp8266.com/package_esp8266com_index.json
  • Инструменты – Плата – Boards Manager
  • В Boards Manager в поле фильтра введите esp8266 или вручную пролистайте список и кликните на ESP8266 by ESP8266 Community Forum
  • Кликните Install и дождитесь окончания загрузки (около 130 Мегабайт). Если загрузка произошла слишком быстро, возможно, что вы уже устанавливали Arduino IDE для ESP8266 и потребуется почистить кэш Boards Manager, иначе у вас останется установленной старая версия. Нужно сначала деинсталлировать старую версию, а потом необходимо удалить файлы кэша. Для Win7 x64 удалите файлы из папки C:UsersПользовательAppDataRoamingArduino15 и повторите все, начиная с п.2
  • Закройте Boards Manager и в меню Инструменты выберите Плата – Generic ESP8266
  • Установите частоту вашего модуля 80 или 160Mhz, размер флеш памяти и выберите последовательный порт, к которому подключена плата(я ничего не менял, кроме порта).

Запаиваем перемычку с ножки GPIO0 на землю!

Включаем питание платы.
Открываем скреч (в архиве ниже) . Изменяем на свой пароль и логин WiFi, временную зону.

Нажимаем кнопку Выгрузить (на фото выше — стрелочка влево). Программа от компилируется и зальется в модуль.
Отключаем питание. Снимаем перемычку . Собираем часы полностью.

При включении питания Вы должны увидеть это:

Программу каждый может изменять для себя и заливать заново. Мной была использована, лишь,маленькая толика от возможностей модуля.
Удачной сборки!

Файлы:
Программа исходник
Платы

Понравилось? Поделитесь:

:

Sorry, the comment form is closed at this time.