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

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

?

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

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

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

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

    123 голосов
    46,4%
Можно выбрать сразу несколько вариантов.
  1. IvanUA

    IvanUA Гуру

    Тогда вместе с прогнозом на завтра вы отключите прогноз на сегодня...
    И это не совсем хвосты))))
    Код (C++):
      if (hour < 18) weatherStringZ += tCurr + ":";
      if (hour < 12) weatherStringZ += "   \212" + String(data_0_min_temp, 1) + "...." + String(data_0_max_temp, 1) + "\202" + "C  ";
      if (hour < 18) weatherStringZ += "   " + String(data_0_weather_description) + "     ";
    Если к примеру текущее время до 12 часов, то вы будете видеть надпись "Сегодня, диапазон температур и описание погоды" - на период + 6 часов (с 12 до 18)
    Если к примеру текущее время до 18 часов, то вы будете видеть надпись "Сегодня и описание погоды" - на период + 6 часов от времени запроса (с 18 до 24)
    Ну а после 18 - на сегодня прогноза не будет, сегодня почти кончилось.
    Но по вашему желанию вы можете поправить скетч под себя.
    Нашел, поправил.
    Спасибо поправил.

    ПС. скоро залью на гитхаб.
     
  2. tosat

    tosat Нерд

    Иван, я в курсе нащёт прогноза на сегодня, на сервере weatherbit.io можно оставить так как есть, но на сервере openweathermap.org отображаются одни нули (нет там прогноза на сегодня, тем более на завтра), так что там логично поправить так как я описал.
     
  3. IvanUA

    IvanUA Гуру

    Ну я бы не был так категоричен. Просто ваш АПИ ключ не позволяет получить эти данные. Мой пока работает...
    Повторюсь...
    Конечно как вариант можно сделать галку и вырубать и прогноз на сегодня...
    ПС. Пока обновляю код, запихну туда эту галку))))
     
    max50a5 и tosat нравится это.
  4. max50a5

    max50a5 Гик

    Добавил на плату CH340. Скачать можно по старой ссылке.
     
  5. IvanUA

    IvanUA Гуру

    https://github.com/IZ76/VZ_Clock/tree/master/VZ_Clock_x1_v4.1
    Обновил скетч однострочной версии. Немного позже обновлю приложение под него.

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

    - устранены баги при отображении данных с датчиков при отсутствии подключения к WiFi
    - в углы поворота матриц добавлено значение 180 градусов
    - для тонкой настройки яркости экрана по освещенности добавлена возможность устанавливать пороги работы фоторезистора
    - добавлена возможность выбрать способ показа даты (окл., статика и бегущая строка)
    - добавлена галка отключения отображения погоды на сегодня
    - добавлен таймаут для обновления данных с MQTT, если таймаут вышел, а новые данные не получены, то на экране будут прочерки вместо значений
    - добавлена возможность в обновленном приложении реализовать функцию отключения работающего будильника.
     
    max50a5, dorinik, Kesik и 3 другим нравится это.
  6. IvanUA

    IvanUA Гуру

    Приложение обновлено. Ждем когда опубликуется в гугло плее.

    Все новшества в приложении видно визуально кроме...
    Решил не городить доп. кнопок, по этому выключение работающего будильника осуществляется при нажатии на картинку будильника (на странице будильников)...
     
    tosat нравится это.
  7. tosat

    tosat Нерд

    В свежей однострочной версии обнаружил глюк: при выводе даты на экран строкой она повторяется 2 раза, чтобы этого не было нужно строки:
    Код (C++):
    } else if(displayData == 2){
              convertDw();
              convertMonth();
              date = "     " + dw + ", " + String(day) + " " + _month + " " + String(year) + "                ";
              printStringWithShift(date.c_str(), timeScrollSpeed);
    переместить в блок "10 секунда - виводимо дату/погоду", тогда все нормально, в остальном все хорошо, буду тестировать дальше, спасибо автору за проделанную работу.
     
  8. SteinMark

    SteinMark Гик

    Ivan можете ли вы возможно подправить код дополнительных данных - на 8 модулях нет выравнивание данных
    ни в центре, ни слева. (остаются всегда справа)
     
  9. tosat

    tosat Нерд

    Также некорретно работает уровень светодиода, выводятся показания уровня яркости фоторезистора не 0-15, а например 61-255 и яркость от уровня светодиода управляется как то хаотично, а не линейно.
     
  10. serg7805

    serg7805 Нуб

    Доброе утро, а зачем такая сложность? Надо в том блоке параметр "displayData == 1" поменять на 0, тогда всё встаёт на свои места.
     
  11. IvanUA

    IvanUA Гуру

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

    1. Проверяем не работает ли наша регулировка инверсно...
    - закрываем фоторезистор чем то, и яркость экрана должна уменьшиться. Все ОК, идем на пункт 2.
    - если яркость наоборот увеличилась, то нужно первое и второе значение поменять местами, если первое(нижнее) значение равно "0" , а второе (верхнее) равно "1023", то меняем эти значения местами и жмем сохранить... Теперь программа будет работать с инверсными значениями. Идем дальше.

    2. Приближаем нижнее и верхнее значение как можно ближе. Ну к примеру если низ был - 0, а верх - 1023...
    - делаем низ - 400, а верх 600 (значения не особо важны, главное их не менять местами)))) и нажимаем сохранить.
    - далее закрываем фотодиод чем то - экран сделается темнее.
    - обновляем значения и видим что наши 400 изменились на другое значение у меня на 0
    - далее нам нужно включить максимальный свет в комнате и опять обновить страницы (данные) у меня верхнее значение изменилось на 820.
    - ОК. наши часы нашли самую темную(нижнюю) точку и самую светлую(верхнюю) точку. Нажимаем сохранить, и всё)))
    Ну и даже если вы не точно нашли эту границу (низ и верх) то во время работы часы сами подстроятся под освещенность))).

    ПС. И да. Приложение на гугло плее уже обновилось. Текущая версия приложения 4.1, текущая версия прошивки (пока только однострочной) 4.1
     
  12. max50a5

    max50a5 Гик

    По приложению:
    [​IMG]

    [​IMG]

    [​IMG]
     
    IvanUA нравится это.
  13. tosat

    tosat Нерд

    Заметил еще один ньюанс: в ночное время при режиме "отображать дату строкой" отсутствуют статические часы, решил у себя просто - закоментировал в скетче строки 577 и 579, все ок.
     
  14. IvanUA

    IvanUA Гуру

    ОК. Поправлю.
     
  15. IvanUA

    IvanUA Гуру

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

    ПС. Хотя я так подумал, что наверное ваш вариант более приемлем... Зачем ночью бегущая строка даты??? Уж пусть лучше будет статика))))))
     
    max50a5 и tosat нравится это.
  16. SteinMark

    SteinMark Гик

    Да теперь отображается корректно. Большое Спасибо!
     
  17. max50a5

    max50a5 Гик

    Для своей платы нарисовал корпус в кореле из акрила 3 мм для резки лазером:
    [​IMG]
    Качаем тут.
     
    agcom и IvanUA нравится это.
  18. RonAD

    RonAD Нерд

    Большое спасибо Ивану за огромные усилия по созданию «породистого» информера!

    И ко всем пользователям у меня есть вопрос:
    Кому-нибудь удалось подключить часы к MQTT Thingspeak?
    Я борюсь с этим бесплодно.
    Я зарегистрировал на Thinspeak два DS18B20 и один BME280.
    Я все хорошо записываю и у меня есть предварительный просмотр двух приложений.
    MQTT Dash и VirtuinoMQTT хорошо работают вместе.
    Для измерений есть длинные пути, которые не вписываются в настройки.
    Например, температура 1:
    channels / 1029832 / subscribe / fields / field1.
    Это причина?

    Помогите, если возможно!
     
    Последнее редактирование: 14 апр 2020
  19. IvanUA

    IvanUA Гуру

    Обновил двухстрочную версию на гитхабе https://github.com/IZ76/VZ_Clock/tree/master/VZ_Clock_x2_v4.1
    Добавил туда новый функционал.
    Пока обновлял, немного поправил и однострочный вариант.
    Все исходники и бинарники - актуальны.

    ПС
    Сейчас в планах довести до ума управление бойлером. И если к тому времени вопрос с MQTT Thingspeak не решите, то будем пробовать решить вместе)))
     
    RonAD и max50a5 нравится это.
  20. tosat

    tosat Нерд

    Привет Иван, посмотрел ваш новый скетч и заметил что дата некорректно выводится, например днем в статике нету, я немного поправил:
    Код (C++):
          if (second >= 10 && second < 15) {
            if(displayData == 1) {
              showSimpleDate();
            } else if(displayData == 2 && hour <timeScrollStart || hour >= timeScrollStop) {
              showSimpleDate();
            } else showAnimClock();
    проверено, дата отлично выводится в режиме статики и бегущей строки, днем и ночью.
     
    Последнее редактирование: 15 апр 2020
    IvanUA нравится это.