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

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

?

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

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

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

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

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

    jgupdimon Гик

    Иван, здравствуйте. Ну, помогите сделать массив с знаменательными датами и как его вставить. Пожалуйста!!!
     
  2. IvanUA

    IvanUA Гуру

    Массив то создать не проблема.
    Код (C++):
    const byte specialDays[] PROGMEM = {
      1,  1, // НовыйГод
      16,  4, // ДР_Кума
      4,  6, // ДР_Кумы
      27, 11, // ДР_Свата
    };
    Можно даже к нему добавить массив с сообщениями
    Код (C++):
    char specialText[][8] = {
      "Новый годl",
      "День рождения кума",
      "День рождения кумы",
      "День рождения Свата",
    };
    Далее к примеру в 9 часов утра проверяете не равен ли день и месяц специальной дате, и если равен выводите об этом сообщение из второго массива....

    Ну это так, просто знаменательные даты.... Но если фантазия есть то можно из этого сделать куда больше кода))))
     
    mrcotek нравится это.
  3. mrcotek

    mrcotek Нерд

    А есть прошивка под 6 матриц и на русском языке? очень нужно!:)
     
  4. jgupdimon

    jgupdimon Гик

    Иван, здравсивуйте. А можно попросить скетч со вставленным массивом для примера, не могу понять как как вставить и куда и как привязать ко времени. Спасибо заранее.
     
  5. Fedoss

    Fedoss Нерд

    Скетч 5.21 с переводом от Deniskyn для NodeMcu 12:
    1. Добавил DHT 11 с отображением температуры в доме, влажности подключен к D4
    2. Температура на улице берется с MQQT
    3. buzzer, DS18B20 // за комментировал //
    4. Мой вариант парсинга погоды на завтра, для тех у кого API не работает на прогноз
    5. Подправил fonts.h
    Вроде все.

    :D
    Вывод на экран влажности в доме t1 заменить на hym
     

    Вложения:

    Последнее редактирование: 18 мар 2018
  6. Fedoss

    Fedoss Нерд

    Думаю, что пока нет. Но поправить с 5 на 6 не очень сложно.
     
  7. IvanUA

    IvanUA Гуру

    Попросить то можно, но ..... он совершенно из другого устройства....
     
  8. mrcotek

    mrcotek Нерд

    У меня ошибка при прошивке, а если я прошиваю через программу, bin-арником - то все ок, могу приложить скриншот
     

    Вложения:

  9. Fedoss

    Fedoss Нерд

    Я бы скорость заливки изменил с 9600 на 115200, а по остальным ошибкам : библиотеки от скетча закинули в папку C:\Users\MrCot\Documents\Arduino\libraries ? https://yadi.sk/d/dtFqpJMx3TUteq
     
  10. igor777ivan

    igor777ivan Нерд

    Собрал устройство на плате ESP8266 NodeMcu v3 и прошил русской версией от Deniskyn, слегка переделал шрифт и добавил 5-ю матрицу. Все СУПЕР !!!! Разработчикам Респект! Только никак не могу разобраться в назначении функций мигания светодиодных точек: постоянно мигают одиночные светодиоды по краям (идут запросы на погоду двух городов или ошибка в приеме данных), точки часов мигают крестиками (идет синхронизация времени или это отражение связи с роутером), потом точки начинают просто мигать (нет синхронизации или пропала связь с роутером), иногда просто горят и не мигают (программа что-то выполняет и ей не до индикации). Хотел бы уточнить алгоритм работы этой индикации.
     
  11. jgupdimon

    jgupdimon Гик

    А в какой другой конструкции, Иван? Не поделитесь?
     
  12. IvanUA

    IvanUA Гуру

    Если мигают точки в нижних углах экрана - это говорит о том что прогноз погоды не получен или частично, или полностью.
    Точка в начале экрана - это город №1, точка в конце - город №2
    Мигают просто квадратики - не обновлено время через интернет.
    Мигают так сказать крестиком - время обновлено и вы подключены к сети WiFi.

    Если сеть WiFi не доступна - будет мигать только нижний квадратик.
     
  13. IvanUA

    IvanUA Гуру

    Нет, не поделюсь. Не потому что я вредный, но вы начнете пробовать разобраться там, и будете задавать все новые и новые вопросы. Уж лучше давайте тут добивать)))))
    Для начала подумайте куда бы (в какое место скетча) можно было бы вставить объявление массивов?
    В каком месте скетча вставить проверку этих дат на совпадение времени?
    Ну и собственно как при совпадении вывести на экран данные из массива сообщений))))
     
  14. igor777ivan

    igor777ivan Нерд

    Иван! Спасибо за исчерпывающий ответ по поводу индикации. Только странно, что постоянно мигают точки в углах, а погода при этом получается регулярно и полностью. Подскажите, где копать?
     
  15. IvanUA

    IvanUA Гуру

    updateForecast = 0;
    При каждом обращении к процедуре получения погоды - эта переменная сбрасывается в ноль.
    Если есть какие либо ошибки при получении данных - эта переменная будет отлична от "0".
    Ну и соответственно если она будет отлична от "0" то и переменные updateForecastCity1 и updateForecastCity2 будут отличными от "0". Вот вам и мигающие точки по углам экрана.

    В процедуре получения погоды, проверьте в каком месте у вас меняется переменная updateForecast - там и найдете свою причину.
     
  16. saha74

    saha74 Гик

    Подскажите пожалуйста где поправить что бы раздвинуть-сместить в сторону цифры при отображении температуры в часах на 5 матриц.
     
  17. Fedoss

    Fedoss Нерд

    Вывод на экран температуры в доме========================================
    void showSimpleTemp()
    void showSimpleTempU()

    showDigit(12, 16, dig5x8rn);

    12- символ выводимый на матрицу
    16 - начальная позиция на матрице откуда символ про рисуется (с 16 ряда светодиодов, последний ряд во второй матрице)
    dig5x8rn - таблица откуда берется символ 12, находится во вкладке fonts.h
     
    Последнее редактирование: 19 мар 2018
    saha74 нравится это.
  18. jgupdimon

    jgupdimon Гик

    Здравствуйте, Иван. Да, не силен я в программировании, вот по этому и прошу помочь. Только повторил Вашу конструкцию. Много читаю, но не понятно пока.
     
  19. igor777ivan

    igor777ivan Нерд

    Подскажите, как можно организовать в ESP что-то наподобие индикации LAN порта на роутере.
    Например, использовать встроенный синий светодиод ESP8266 или прицепить внешний на свободный GPIO и если он мигает – идет обмен данными. А то иногда устройство притормаживает и ломаешь голову - есть связь или временно нет ее, а так можно было бы в более динамичном режиме отслеживать связь ECP c роутером.
     
  20. jgupdimon

    jgupdimon Гик

    Вот оригинальный скетч
     

    Вложения: