Re: Не очень простые часы на матричных индикаторах, зато с м
Чт янв 22, 2015 16:12:32
Ёшкин кот, нашел ошибку в сообщении про подключение радиодатчика! Приношу свои извинения! Вместо
AndyKorg писал(а):... Со стороны часов приемник работает всегда. Что бы обеспечить такой режим работы надо ногу CE модуля nRF24L01+ соединить с землей. Подключение остальных выводов модуля к часам показано на рисунке. ....
Re: Не очень простые часы на матричных индикаторах, зато с м
Вт фев 03, 2015 08:18:18
Представляю вниманию уважаемой публики интернет-добавку в коктейль чипов под общим названием «матричные часы с музыкой». Пока эта добавка обеспечивает только получение времени с серверов точного времени. В дальнейшем планируется подцепить веб-сервер для управления часиками. Работа с Интернетом происходит через модeль ESP-01 фирмы Espessif systems (голимый Китай, зато дешево) посредством так называемой АТ-прошивки. Общий принцип действия таков: МК в часах читает с SD-карточки из файла wifi.cfg команды и передает их на выполнение в модуль ESP-01. Модуль выполняет команды, а ответы отправляет обратно в МК часов. Все это дело происходит через последовательный интерфейс (UART). Сначала немного о материальной реализации. Поскольку питание МК у нас 5 В, а модуль esp требует только 3.3В максимум, организован небольшой переходник. Этот самый переходник согласовывает уровни на выводе RTX микроконтроллера часов и модуля esp. Кроме того на переходнике установлен линейный стабилизатор для обеспечения питания модуля esp. С питанием пришлось немного рискнуть. У меня из маленьких корпусов стабилизаторов на 3.3В был только MCP1702, а у нее максимальный ток 250 мА Поскольку по паспорту модуль esp может жрать до 215 мА, а то и больше, то тут возможны эксцессы. Физически модуль выглядит так: Подключать к часам очень просто – питание на питание ? (на печатной плате рzдом с кварцем стоит блокировочный керамический конденсатор, питание можно взять с него) Вывод RXD wi-fi модуля соединяем с выводом TXD часов. А вывод TXD модуля соответственно с модулем RXD часов. (на плате часов есть контактные площадки подписанные RXD и TXD, опять же рядом с кварцем.) Теперь о нематериальом. Алгоритм взаимодействия с модулем esp вынесен в файлы esp8266hal.h и esp8266hal.c (esp8266 это название чипа в модуле esp-01) При запуске часов проверяется наличие модуля на шине UART. Для этого посылается команда «АТ», если модуль ответит «ОК» то считается, что модуль esp установлен. В результате в меню после пункта настройки шрифта управления часами появляются пункты «часовой пояс» и «взять время из интернета». В пункте «часовой пояс» нужно указать в каком часовом поясе UTC находятся часы с точностью до часа (поэтому на острове Норфолк часовой пояс установить не получится ? ) Затем в следующем пункте меню с помощью кнопки «ОК» запускаем процедуру получения времени из Интернета. При этом бегущая строка «взять время из интернета» сменится на мигающее «ждем». Если будут какие-то эксцессы то будет выведен текст ошибки с проблемой. (Ошибки с файловой системой SD-карты выводятся в виде кода «e2» - либо карты нет, либо диск не удалось открыть, либо файла wifi.cfg нет) В случае же нормального завершения операции появится строка «время загружено». На этом ручной запрос времени заканчивается. Автоматический запроса времени из Интернета происходит каждую неделю в субботу в 10 часов 10 минут утра. (Настраивается только через перекомпиляцию прошивки в define INET_TIME_DAY, INET_TIME_HOUR, INET_TiME_MINUTE в файле Clock.h) Теперь немного о командах в файле wifi.cfg Файл представляет собой обычный текст. Каждая строка файла это одна команда. Строка разделена символами вертикальной черты (“|”) на три части. Первая часть собственно сама АТ-комнада передаваемая в модуль esp. (Список АТ-команд esp можно посмотреть на фан сайт esp8266 на русском ) Вторая часть это ожидаемый ответ от модуля esp. В случае если в течение определенного времени от модуля esp ожидаемого ответа не будет получено, то на дисплей выводится третья часть команды. Третья часть команды может начинаться со знака вопроса. Знак вопроса в первой позиции третей части имеет специальное (сакральное ?) значение, он играет роль оператора if-error. Если выполнение строки пройдет без ошибок, то следующая строка пропускается. В случае же ошибки на дисплей ничего не выводится, а на выполнение отправляется следующая строка. Например такой кусок текста: Строка 1:
AT+CIPSTART="UDP","128.138.141.172",37,34000|0,CONNECT|Нет соединения с ntp сервером
Строка 3:
Код:
AT+CIPSEND=3|>|модуль не готов к передаче
Если при выполнении команды из строки 1 «AT+CIPSTATUS» микроконтроллер часов так и не дождется ответа «STATUS:4+CIPSTATUS:0,"UDP","128.138.141.172",37,34000,0OK» от модуля esp, следующей командой будет «AT+CIPSTART="UDP","128.138.141.172",37,34000» из строки 2. Если же команда из строки 1 выполнится с сообщением «STATUS:4+CIPSTATUS:0,"UDP","128.138.141.172",37,34000,0OK» т.е. верно, то будет выполнена команда из строки 3 «AT+CIPSEND=3», а не из строки 2. Так же существует специальная команда таймаута представленная символом «@» Если такой символ будет встречен в первой позиции строки то все данные поступившие от модуля esp за следующие 5 секунд будут проигнорированы. Точнее почти все, кроме данных начинающихся со строки «+IPD,» Команда «+IPD,» от модуля esp говорит о том что приняты какие-то данные по wifi и выдает эти самые данные. На этом про прошивку все. Описание программы в файле wifi.cfg -- Сброс модуля.
Код:
AT+RST|OK|Нет ответа от модуля
-- Ожидается 5 секунд, что бы пропустить лишний выхлоп от модуля со всякими дурацкими данными
Код:
@
-- Проверка версии прошивки модуля
Код:
AT+GMR|0020000903|Версия прошивки модуля не поддерживается
-- Проверка текущего режима (должен быть режим АР+ST – точка доступа и клиент wifi)
Код:
AT+CWMODE?|+CWMODE:3|?
–- Включение режима AP+ST если предыдущая команда выполнилась с ошибкой
Код:
AT+CWMODE=3|OK|Режим AP-ST не включился
-- Проверка подключения к сети с именем "default"
Код:
AT+CWJAP?|+CWJAP:"default"|?
-– если подключения к сети "default" нет, то подключаемся
Код:
AT+CWJAP="default","пароль"|OK|Не удалось подключится к сети WiFi
-- Подождем 5 секунд для подключения
Код:
@
-– Проверяем наличие подключения к серверу точного времени "128.138.141.172"
-- Если подключения к серверу нет, то подключаемся
Код:
AT+CIPSTART="UDP","128.138.141.172",37,34000|0,CONNECT|Нет соединения с ntp сервером
–- Подготовить модуль к передаче 3 байт. Протокол обмена на порту 37 (порт сервера точно времени) требует, что бы был отправлен любой символ на порт 37. В этой команде как раз и указывается длина передаваемых данных в три символа: сам символ и два служебных - возврат каретки и переводы строки.
Код:
AT+CIPSEND=3|>|модуль не готов к передаче
-- Отправляем эти самые символы. Букву «D» и возврат каретки и перевод строки. Служебные символы добавляет прошивка.
Код:
D|SEND OK|передача не удалась
-- Ожидается ответ. Все данные игнорируются за исключением тех что придут по команде +IPD
Код:
@
–- Закрывается соединение.
Код:
AT+CIPCLOSE|CLOSED|Закрытие соединения не удалось
Как настроить файл wifi.cfg для своей сети или для другого сервера времени. Для задания имени и пароля своей wi-fi сети необходимо в строках AT+CWJAP?|+CWJAP:"default"|? код AT+CWJAP="default","пароль"|…. вместо слова default указать имя своей сети, а вместо слова пароль указать пароль от сети. Например для сети с именем «kvartia12» и паролем «secret» строки будут выглядеть так:
Код:
AT+CWJAP?|+CWJAP:"kvartia12"|? AT+CWJAP="kvartia12","secret"|OK|Не удалось подключится к сети WiFi
Изменить адрес сервера точного времени можно в строках
Вместо «128.138.141.172» вписать IP другого сервера времени. На этом про работу с esp все. В прошивке учтены пожелания уважаемого «protek5512» – убран незначащий ноль в температуре. Так же исправлен вывод минусовой температуры. Насчет переделки бегущей строки пока думаю, мне счас интереснее прикрутить веб-сервер, поэтому немного отложу переделку этого. Видео с настройкой и получением времени из Инета
Re: Не очень простые часы на матричных индикаторах, зато с м
Вт фев 03, 2015 08:29:33
Про прошивку модуля esp-01. Дело в том, что ПО модуля активно развивается и на момент разработки часов актуальная была версия 0.2 на основе SDK версии 0.9.3 В новые прошивки добавляют как функции так и баги. Поэтому берем файл прошивки из предыдущего сообщения. И файл утилиты заливающей прошивку в модуль отсюда Помимо самого модуля нужен Com-порт с выходным напряжением 3.3 В. Можно и 5В, но тогда надо или через переходник или согласовать уровень на выводе TX порта. У меня есть плата Pinboard от easyelectonics, там это все уже есть. Прошиваем следующим образом: 1. Подключаем esp-01 так: вывод GPIO0 сажаем на землю, TX и RX к переходнику. Ногу CH_PD на питание +3.3В 2. Подаем питание. 3. Запускаем утилиту esp8266_flasher.exe 4. Указываем порт в поле ввода, там где написано «COM1» 5. Нажимаем кнопку “Bin” и выбираем файл прошивки. Файл прошивки должен лежать в корне диска. 6. Нажимаем кнопку «Download». Должна появится надпись «что-то там erase» и побегут цифры загрузки. В конеце загрузки может быть сообщение об ошибке. Не обращайте внимания на это дело. 7. Снимаем с ноги GPIO0 землю. Пробуем подсоединится к модулю через ком-порт на скорости 115200 с помощью любой терминальной программы. В ответ на символы «АТ»+возврат каретки+перевод строки модуль должен ответить «ОК» Проверяем версию прошивки командой «AT+GMR» модуль должен ответить строкой 0020000903 Можно также выполнить вручную команды из файла wifi.cfg что бы проверить как работает wi-fi и вообще сеть.
Re: Не очень простые часы на матричных индикаторах, зато с м
Вт фев 03, 2015 12:03:22
УХ ты! Очередное обновление. За Вами не угонешся. Спасибо. Возникло пару вопросов : 1. Какие фьюз биты ставить в ATtiny13 для термодатчика ? 2. Где брать файл wifi.cfg ?
Re: Не очень простые часы на матричных индикаторах, зато с м
Вт фев 03, 2015 14:39:26
Доброго здравия! Перепрошил и не понял,вместо показаний температуры отображаются 0 при настройке датчиков показания нормальные но с незначищами нулями,прошил старую там хоть с нулями но корректно после перепрошивок так-же происходит потеря карты и пульта.
Re: Не очень простые часы на матричных индикаторах, зато с м
Вт фев 03, 2015 16:41:20
почемучка писал(а):...1. Какие фьюз биты ставить в ATtiny13 для термодатчика ?
Для averdude часть командной строки должна выглядеть так:
Код:
-U lfuse:w:0x7a:m -U hfuse:w:0xff:m
почемучка писал(а):...2. Где брать файл wifi.cfg ?
как всегда - забыл приложить, извиняюсь, прикладываю.
protek5512 писал(а):Перепрошил и не понял,вместо показаний температуры отображаются 0 при настройке датчиков показания нормальные ...
Т.е. при настройке значения датчиков отображаются. а в бегущей строке нули? Правильно я понял? И еще уточните пожалуйста какие датчики подцеплены и через какой интерфейс.
protek5512 писал(а):...происходит потеря карты и пульта.
Потеря карты это имеется в виду что карта не опознается в слоту после подачи питания, верно? Настройки пульта не сохраняются и после передергивания питания надо настраивать заново, верно я понял?
Re: Не очень простые часы на матричных индикаторах, зато с м
Ср фев 04, 2015 09:17:07
Доброго здравия!Да показания датчиков в меню настройки правильные с присутствием не значещего нуля, датчики 0-лм35, 1-18б20. Пропадание настроек пульта и карты происходит при пропадании сети они не регулярны через раз.Да настраивать приходится с нуля .
Re: Не очень простые часы на матричных индикаторах, зато с м
Пт июн 05, 2015 11:46:56
protek5512 писал(а):Что случилось? Где продолжение банкета?
Приношу свои глубочайшие извинения. Никак не соберусь все собрать в кучу и опубликовать. Торжественно клянусь в эти выходные исправится. Если успею то добавлю измерение давления на BMP180. Пока предлагаю развлечься просмотром видео работы наших часиков в паре с web-интерфейсом. Еще раз извиняюсь.
Re: Не очень простые часы на матричных индикаторах, зато с м
Ср апр 13, 2016 22:38:29
Доброго времени суток остались ли еще фотки самой платы? хотелось бы увидеть)) в Диптрейсе верхний и нижний слой как то перепутаны, хочется разобраться
Re: Не очень простые часы на матричных индикаторах, зато с м
Сб апр 16, 2016 13:44:24
Nikeech писал(а):.. остались ли еще фотки самой платы?...
Добрый день! Вот: P.S. Со временем совсем швах, поэтому обновлениями очень мало занимаюсь. Сильно извиняюсь. Но потихоньку подпиливаю в направлении WiFi.
Re: Не очень простые часы на матричных индикаторах, зато с м
Вс апр 17, 2016 19:42:42
Нечем сделать увы Не совсем понятно в чем проблема? Если в определении стороны установки компонентов, то слой 1 - это слой ПОД матрицами и на него ничего не устанавливается, только перемычки пропаять перед монтажом матриц.
Re: Не очень простые часы на матричных индикаторах, зато с м
Пн апр 18, 2016 15:40:42
Матрицы на слое топ или бот находятсья? Когда стали заказывать платы возник вопрос что на нижнем слое (бот) при споставлении слоев надписи получились НЕ зеркальные так и должно быть или необходимо зеркалить слои?
Re: Не очень простые часы на матричных индикаторах, зато с м
Вт апр 19, 2016 06:47:16
Nikeech писал(а):Матрицы на слое топ или бот находятсья?
На top.
Nikeech писал(а):...необходимо зеркалить слои?
Тут я не помошник, это зависит от технологии изготовления. Если домашнее изготовления то для проводников top текст зеркалить если на проводниках, если на маске то нет. Для проводников bottom и маски bottom зеркалить. Для маски top не зеркалить.
Re: Не очень простые часы на матричных индикаторах, зато с м
Вс май 01, 2016 17:17:46
Всех трудящихся с праздником! Извиняюсь за задержку с обновлениями - переезжал в другой город и прочее... Подправил работу с датчиками, добавил датчик атмосферного давления BMP180. Добавил настройку скорости бегущей строки. Но самое вкусное - теперь наши часы предсказывают погоду! Прогноз погоды забирается с сайта openweathermap.org и выводится в бегущую строку. Например утром сообщается о температуре и погодных явлениях на день и вечер, а вечером на следующее утро и следующий день. Таким образом мы всегда будем знать когда картошку сажать, а когда сеять! Или вместо погоды можно выводить любую строку. Все это настраивается через web-интерфейс. Исходники теперь лежат на Githab Прошивка для esp8266 Прошивка для радиодатчика температуры. Сюда прикрепляю откомпилированые прошивки для atmega32 и esp8266 и web-морды.
Re: Не очень простые часы на матричных индикаторах, зато с м
Пт окт 28, 2016 22:43:55
если кому интересна данная тема, могу выложить скетч, схемы и чертежи платок (непроверенные) своих изысканий в этом направлении. На данный момент имеются часики на есп8266 со следующим функционалом: 1. Поддержка дисплеев на holtek ht16k33(i2c 7seg common cathode), tm1637(spi 7seg common anode), lcd1602 over pcf8574(i2c), внешней полноцветной матрицы 16х32 с драйвером мега2560 (over serial) 2. 7 будильников с возможностью управлять функционалом, играть 14 мелодий, работать по выбранным дням недели, управлять внешней нагрузкой. 3. Отображать инфу (ака влажность, давление, температура) с сайта тингспик.ком (туда инфа попадает с внешнего датчика на той же есп схема и скетч на которую тоже присутствуют). На лсд и матрице инфа выводится бегущей строкой на великом и могучем (если лсд с поддержкой) 4. Автоуправление яркостью дисплеев. 5. Автосинхронизация over ntp 6. Настройка часиков over Web
На данный момент ведутся работы по прикручиванию к часикам матрицы на max7219. В перспективе переход на есп32 и отказ от меги. Испытываю жажду (конкретную) в оформлении матриц (шрифты, эффекты, анимация, доп сообщения) Есть огромное желание (но нету нифига опыту) прикрутить к часикам какую нить онлайновую бегущую строку с новостями и погодой.