Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Ответить

Re: Не очень простые часы на матричных индикаторах, зато с м

Чт янв 22, 2015 16:12:32

Ёшкин кот, нашел ошибку в сообщении про подключение радиодатчика! Приношу свои извинения! Вместо
AndyKorg писал(а):...
Со стороны часов приемник работает всегда. Что бы обеспечить такой режим работы надо ногу CE модуля nRF24L01+ соединить с землей. Подключение остальных выводов модуля к часам показано на рисунке.
....

надо читать "с ногой питания модуля"

Re: Не очень простые часы на матричных индикаторах, зато с м

Чт янв 22, 2015 17:41:02

Теперь и я все понял. Спасибо за разъяснения. Буду собирать и тестить. Жду обновлений. Модуль nRF24L01+ уже приехал, esp-01 на подходе. Удачи.

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+CIPSTATUS|STATUS:4+CIPSTATUS:0,"UDP","128.138.141.172",37,34000,0OK|?

Строка 2:
Код:
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+CIPSTATUS|STATUS:4+CIPSTATUS:0,"UDP","128.138.141.172",37,34000,0|OK|?

-- Если подключения к серверу нет, то подключаемся
Код:
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

Изменить адрес сервера точного времени можно в строках
Код:
AT+CIPSTATUS|STATUS:4+CIPSTATUS:0,"UDP","128.138.141.172",37,34000,0
AT+CIPSTART="UDP","128.138.141.172",37,34000

Вместо «128.138.141.172» вписать IP другого сервера времени.
На этом про работу с esp все.
В прошивке учтены пожелания уважаемого «protek5512» – убран незначащий ноль в температуре. Так же исправлен вывод минусовой температуры.
Насчет переделки бегущей строки пока думаю, мне счас интереснее прикрутить веб-сервер, поэтому немного отложу переделку этого.
Видео с настройкой и получением времени из Инета
Вложения
схема и печатка модуля.rar
(7.61 KiB) Скачиваний: 698
Прошивка esp8266.rar
(134.8 KiB) Скачиваний: 632
Прошивка.rar
(56.74 KiB) Скачиваний: 528
Исходники.rar
(161.2 KiB) Скачиваний: 717
Последний раз редактировалось AndyKorg Вт фев 03, 2015 10:10:01, всего редактировалось 1 раз.

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 писал(а):...происходит потеря карты и пульта.

Потеря карты это имеется в виду что карта не опознается в слоту после подачи питания, верно?
Настройки пульта не сохраняются и после передергивания питания надо настраивать заново, верно я понял?
Вложения
wifi.rar
(438 байт) Скачиваний: 451

Re: Не очень простые часы на матричных индикаторах, зато с м

Ср фев 04, 2015 09:17:07

Доброго здравия!Да показания датчиков в меню настройки правильные с присутствием не значещего нуля, датчики 0-лм35, 1-18б20.
Пропадание настроек пульта и карты происходит при пропадании сети они не регулярны через раз.Да настраивать приходится с нуля .

Re: Не очень простые часы на матричных индикаторах, зато с м

Пт июн 05, 2015 11:10:35

Что случилось? Где продолжение банкета?

Re: Не очень простые часы на матричных индикаторах, зато с м

Пт июн 05, 2015 11:46:56

protek5512 писал(а):Что случилось? Где продолжение банкета?

Приношу свои глубочайшие извинения. Никак не соберусь все собрать в кучу и опубликовать. Торжественно клянусь в эти выходные исправится. Если успею то добавлю измерение давления на BMP180. Пока предлагаю развлечься просмотром видео работы наших часиков в паре с web-интерфейсом.
Еще раз извиняюсь. :facepalm:

Re: Не очень простые часы на матричных индикаторах, зато с м

Ср апр 13, 2016 22:38:29

Доброго времени суток :) остались ли еще фотки самой платы? хотелось бы увидеть)) в Диптрейсе верхний и нижний слой как то перепутаны, хочется разобраться :)

Re: Не очень простые часы на матричных индикаторах, зато с м

Сб апр 16, 2016 13:44:24

Nikeech писал(а):.. остались ли еще фотки самой платы?...

Добрый день! Вот:Изображение
P.S. Со временем совсем швах, поэтому обновлениями очень мало занимаюсь. Сильно извиняюсь. Но потихоньку подпиливаю в направлении WiFi.

Re: Не очень простые часы на матричных индикаторах, зато с м

Вс апр 17, 2016 11:54:20

Извиняюсь за надоедливость, хочется все таки узнать в какую сторону смотрит Атмега, можно больше разрешением пожалуйста))

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-морды.
Вложения
WEBFiles.zip
Сайт внутрь esp8266
(36.74 KiB) Скачиваний: 381
esp8366.zip
wti-fi чип
(174.71 KiB) Скачиваний: 397
atmega32.zip
Два варианта подключения матриц
(66.73 KiB) Скачиваний: 374

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 и отказ от меги.
Испытываю жажду (конкретную) в оформлении матриц (шрифты, эффекты, анимация, доп сообщения)
Есть огромное желание (но нету нифига опыту) прикрутить к часикам какую нить онлайновую бегущую строку с новостями и погодой.

Re: Не очень простые часы на матричных индикаторах, зато с м

Пт апр 07, 2017 15:49:41

pilnikov писал(а):если кому интересна данная тема, могу выложить скетч, схемы и чертежи платок (непроверенные) своих изысканий в этом направлении.



выкладывай!

Re: Не очень простые часы на матричных индикаторах, зато с м

Сб окт 28, 2017 07:59:09

Чем можно заменить mbi5039gf и sn74lvc1g00 ?. Mbi5026 подойдет ? А то у китайцев найти немогу
Ответить