Часы на esp8266 и max7219 + android управление

Тема в разделе "Глядите, что я сделал", создана пользователем IvanUA, 28 авг 2017.

?

Вы повторили это проект?

  1. Нет (просто ознакомился)

    35 голосов
    13,2%
  2. Да, один раз (попробовал)

    111 голосов
    41,9%
  3. Да, не однократно

    123 голосов
    46,4%
Можно выбрать сразу несколько вариантов.
  1. Иван, приветствую!
    Использую часы (версия 4.4, двустрочная) с небольшой доработкой - вывожу курсы валют, тексты новостей. Тексты новостей отправляю с одноплатника через функцию вывода сообщения, которая появилась между 4.1 и 4.4 (до этого я у себя ее сделал и примерно точно также, за исключением небольшого нюанса, который и вас прошу сделать - посмотрите, если не затруднит, в моем форке по вхождению "delayedString"). Теперь о проблеме. Как я выяснил, часы не очень любят юникодовскую строчку - некоторые символы становятся битыми. Прикладываю файл. Попробуйте скопировать в нем текст и вставьте в вебинтерфейс отправки - увидите артефакты (в месте "из Москвы"). Может что посоветуете?
     

    Вложения:

    • test1.txt
      Размер файла:
      353 байт
      Просмотров:
      195
    Последнее редактирование: 27 мар 2021
  2. пока решил проблему так - перекодировал в 1251 и преобразовал каждый байт в %XX (хекс). Но че то как то все равно кривовато - большие буквы съелись (сделал все маленькие), %A0 выводится криво, надо менять на %20, кавычки тоже похоже "так себе".
    Короче нужен фильтр "выводимого на экран" с учетом "имеющихся символов в системе"....
     
  3. IvanUA

    IvanUA Гуру

    Доброго времени суток. В вашем примере некоторые пробелы действительно в другой кодировке. Заменил их в примере (приложил).
    Я посмотрю, смогу ли поправить эту проблему с пробелами. Но позже.
    Если есть еще какие проблемные символы, прикладывайте - я посмотрю что смогу сделать.
     

    Вложения:

    • test2.txt
      Размер файла:
      348 байт
      Просмотров:
      194
  4. Вот эти пока что нашел:
    .replace("%A0", "%20").
    replace("%AB", "%22").replace("%BB", "%22")

    Вообще все тексты берутся отсюда:
    https://meduza.io/rss/all

    Не думаю, что у них там проблема с кодировкой, но полной уверенности нет. Насчет "делэйедСтринг", вот код (ниже). Основная идея была "припарковать" новостную строчку, а чтобы часы уже вывели ее "в общем цикле" - после погоды и валюты.

    Код (C++):
    void handle_message(){
      if(verific()) return;
      if(server.arg("text")!=""){
        server.send(200, "text/plain", "OK");
        if (server.arg("delayed") == "1") {
          String text = server.arg("text").c_str();
          delayedString = text;
        } else {
          String text = server.arg("text").c_str();
          for(int i = 0; i < 3; i++){
            bip();
          }
          printStringWithShift(("        " + String(text) + "           ").c_str(), timeScrollSpeed, 1);
          if(printCom) {
            printTime();
            Serial.println(text);
          }
        }
      }
    }
    нет, все таки какая то хрень творится с пробелами, я пока сдался. после моих манипуляций у меня только маленькими буквами работает, большие половину съедает. Итого текст обрабатывается так:

    Код (Java):
    log("news text got: ${nr.newsText}")
                val b: ByteArray = nr.newsText.toLowerCase().toByteArray(Charset.forName("CP1251"))
                var updString = b.toHexString("","","").replace("%A0", "%20").
                    replace("%AB", "%22").replace("%BB", "%22")
                nr.newsText = updString
                //nr.newsText = String(b, Charset.forName("CP1251"))
                log("news text got updated: ${nr.newsText}")
     
    Последнее редактирование: 28 мар 2021
  5. Evgen2910

    Evgen2910 Нерд

    Поменял адрес датчика все завелось ) теперь все супер )

    P.S.Хотел спросить по поводу фоторезистора, насколько я понял принцип работы - при меньшей освещенности часики должны притухать, у меня же наоборот - при нормальной работе (в кабинете) в вебе показывает уровень 5 и нормальная яркость, прикрываю датчик - показывает уровень 15 и яркость на максимум... По идее должно быть наоборот?
     
    Ивaн_С нравится это.
  6. IvanUA

    IvanUA Гуру

    По идее должно автоматически определяться
    Код (C++):
    int br=analogRead(brightPin);
          if(lowLivelBrightness<=upLivelBrightness){
            if(br<lowLivelBrightness) lowLivelBrightness=br;
            if(br>upLivelBrightness) upLivelBrightness=br;
          } else {
            if(br<upLivelBrightness) upLivelBrightness=br;
            if(br>lowLivelBrightness) lowLivelBrightness=br;
          }
          levelBridhtness=map(br,lowLivelBrightness, upLivelBrightness, leds.volBrightsMin, leds.volBrightsMax);
          sendCmdAll(CMD_INTENSITY, levelBridhtness);
     
  7. IvanUA

    IvanUA Гуру

    Поправил.
    Добавил правила в декодер
    Я с этим поработаю. Вот только думается мне что есть ли смысл крутить эту строчку все время... Ну то-есть новость может уже устареть, а оно будет его все крутить... Может к этой фишке сделать какой то таймер "старости". Ну к примеру если новость получена больше 6 часов, то она больше не будет выводится.... или как по вашему мнению это лучше реализовать?

    ПС. Поправленный бинарник перезалил.
     
    mk2002, Evgen2910 и spazmalgon нравится это.
  8. yucan

    yucan Гик

    Ивану большой респект за 5-ю версию!
     
    Evgen2910 нравится это.
  9. Вот это кстати неплохая идея. Но в моем случае это примерно все равно, так как я достаточно часто отправляю новости - раз в Х минут. У меня тут другая фишка:
    1. Мне не слишком важно, если новость не успеет вывестись и она будет заменена другой - я все равно выбираю рандомный новостной заголовок в пуле "за сегодня".
    2. Соответственно также нет большой беды, если новость выведется дважды, трижды. Но там рандом, он работает вполне разумно, я уже полгода гоняю - результат отличный.

    Подскажите, тут все говорят про версии 4.5, 5.0 - а их на гитхабе нет. Они появятся?
    Еще пожелание. Может обновите картинку со схемой? много новых датчиков появилось, как их прицеплять, для чего они - я вот допустим не знаю, хотя и добавил 2 зависимости при переходе с 4.1 на 4.4.

    Еще вопрос. Где то я вычитал тут же на форуме, мол "ни в коем случае не цепляйте матрицу к 3.3в, она рассчитана на 5". Хотя у вас на схеме прицеплена к 3.3 и работает опять таки стабильно (те же полгода).

    И еще пожелание для всех сборщиков-новичков. Лучше все прямо паять и пропаивать. Любые нехорошие контакты - приводят к мерцаниям, морганиям, выпаданиям сегментов матрицы и вообще. И еще наблюдение: от китайцев часто приходят матрицы с гнутыми ногами (не вошедшими в контактную площадку) - не спешите выкидывать. Я не сразу догадался, что они достаются, но когда догадался - они вполне сносно выгибаются и продолжают работать.

    И совсем уже оффтоп. Никто не подскажет где можно взять площадку матрицы 4 на 2 или 4 на 1, но без самих индикаторов (т.е. вот этих квадратиков с лампочками) ?
     
  10. IvanUA

    IvanUA Гуру

    Добавил в прошивку возможность выводить циклические сообщения. К примеру новостные.
    Для публикации сообщений их достаточно отправить на адрес: IP_устройства./rss.php?TXT=ваше сообщение.
    Сообщение после получения хранится 6 часов, после этого не выводится.
    Остановить вывод сообщений можно послав пустое сообщение (не пробел).
    Так же для теста можно отправить из веб.
    Для отображения сообщения надо указать в каком интервале его отображать
    [​IMG][​IMG]
    Так же, глобальные настройки вынесены в отдельную вкладку.
    [​IMG][​IMG]
    Теперь настройки устройства можно удалять (возвращать к "заводским"), сохранять на ПК и восстанавливать из фала.
    Для этого нужно выбрать с какими именно настройками вы будете работать и нажать "Сохранить", Сбросить" или "Восстановить". Причем при восстановлении нужно указать из какого именно файла вы будете восстанавливать данные.
    Для очень продвинутых пользователей добавил стандартный FS_Browser.

    Прошивка для тестов там же.
    Будьте готовы к тому что придется все настройки после перепрошивки вводить заново. Но потом вы их сможете сохранить и восстанавливать при необходимости)))
     
    Последнее редактирование: 2 апр 2021
  11. IvanUA

    IvanUA Гуру

    4.5 точно нет смысла выкладывать.
    А 5.0 думаю со дня на день появится. Макс допилит еще пару фишек и думаю что выложу)))

    Кстати думаю что 5.0 это будет последняя версия без использования Data Upload.
    У нас в память гуляет почти свободные 2 метра. Так что туда будет перенесен веб интерфейс и возможно еще что.
    Будет немного сложнее заливать прошивки, но зато появится куча места для "творчества"))))
    Матрица работает с таки напряжением. А с согласованием с портами ЕСП вообще проблем нет.
    Возможно имелось ввиду что не стоит брать 3.3 вольта примеру из пина NodeMCU.
    Там действительно слабый стабилизатор и он просто не потянет ЕСП и светодиодные модули.
    У себя я запитывал модули через отдельный стабилизатор.
     
  12. вот я тут наткнулся:
    http://forum.amperka.ru/threads/Часы-на-nodemcu-lua-max7219-минус-все-лишнее.16262/

    А я вот прямо к плате припаял, работает. Значит так нехорошо.... Ок, буду думать. Болтался у меня вроде такой стабилизатор....

    Еще перфекционизма пост - может есть смысл немного прибраться в исходниках - перевести уж все на русский (там половина на русском, половина на украинском)? хотя, тут не настаиваю разумеется, но "у себя" сделал.
     
  13. IvanUA

    IvanUA Гуру

    Можно конечно перевести все на украинский, мне он ближе))))))) Но это всего лишь комментарии....
    В новой прошивке есть мысль сделать языковые пакеты. Запихнуть все это в SPIFFS, и перевести наверное почти все))) Может и веб))))) Было у нас когда то такое, но потом из-за нехватки памяти пришлось отказаться))))
     
    Последнее редактирование: 2 апр 2021
    Deniskyn, Владимир.С и max50a5 нравится это.
  14. Deniskyn

    Deniskyn Гик

    Дааа, тогда всем миром перевод пилили=)
    Фишка с показом новостей сомнительна имхо... курс валют ты пилил но потом выкинул...
    По поводу "Будет немного сложнее заливать прошивки", может написать утилитку под винду? Она (утилитка) проверила обнову, качнула, подрубили часы по usb или bt и прошились? но сделать тогда бекап настроек с обратной заливкой на всякий....
     
  15. ну а почему собственно? все равно же мы здесь ради хобби, увлечений и всего такого. Я вот недавно погрузился в мир ардуино и мне естественно захотелось что то сделать руками. Хелловорлд писать скучно, поэтому была придумана реальная задача. Даже две. Новости и валюты. Работают. Так поди и пусть будут? Надо это мне в реальной жизни? не думаю ;)) но - джаст фор фан и уж точно шоу мас гоу он. Тем более дядя Вова сделал мне бомбические корпусы из дерева и сейчас не стыдно со своей поделкой прийти к друзьям на день рождения с подарком "хэнд мэйд".
    Насчет языка обратил внимание просто на то что все вперемежку. Моя нудятина внутри говорит мне, что так не должно быть.
     
  16. IvanUA

    IvanUA Гуру

    Да, помню, выкидывали все что лишнее что бы сэкономить память... Но сейчас после последней модернизации (кстати ты просил сохранение настроек) увидел что из 2000 кил памяти у меня занято чуть больше 16!!!! Так что пока есть где разгуляться))))
    Немного сложнее - это пару дополнительных раз клацнуть мышкой. Авто обновление делать пока не планирую. Авто обновление - это по любому бинарник, и человек вообще здесь как часть процесса - практически отсутствует))). Но хочется что бы люди сами под себя скомпилили - и хоть в чем то разобрались... Не одному же мне "мучаться"))))
    У этих часов было множество итереций. И в зависимости от настроения я писал комментарии на разных языках. Были где то куски и на польском.... А когда нормально подтяну немецкий, то есть вариант что и такие будут))))
     
    max50a5 нравится это.
  17. urg2000

    urg2000 Нерд

    Как узнать ссылку на прошивку которая на google диске?
     
  18. GeorgeZ

    GeorgeZ Нерд

    Решил потестить отправку показаний с датчиков на narodmon.com температура и влажность вродь норм , а вот атмосферное давление как-то не красиво .... показания отправляются без десятых.
     

    Вложения:

    • narodmon.jpg
      narodmon.jpg
      Размер файла:
      160,7 КБ
      Просмотров:
      170
  19. Kesik

    Kesik Нерд

    IvanUA нравится это.
  20. IvanUA

    IvanUA Гуру

    Так и есть. Обычно принято говорить о давлении целыми числами. Да и сами числа (их величина) особой роли не играют. Основная роль в перепадах давления. По резкому повышению или падению определят приближающееся изменение погодных условий.