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

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

?

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

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

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

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

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

    Ingenegra Нерд

    Столкнулся с затыком на apixu - с ошибкой читался прогноз на завтра... То ли инет у меня тормозной, то ли еще что, но еспшка вычитывала ответ от погодного сервера из буфера быстрей чем они приходили, и соответственно обрывала чтение не закончив пакет. Пришлось ввести задержку в процедуре чтения ответа на запрос прогноза. С текущей погодой такой проблемы нет, там пакет короче
     
  2. b707

    b707 Гуру

    задержки - это костыль. Читайте пакет в цикле, пока не получите признак окончания.
     
  3. IvanUA

    IvanUA Гуру

    Если текст сообщения не появляется полностью - то это говорит только о том что количество используемых матриц, и количество заданных (в веб меню) матриц не совпадает.
    У меня сейчас к сожалению нет экземпляра работающего на версии 11.11.2018, по этому попробуйте перед прошивкой в скетче указать количество матриц не 16, а 4
    То есть NUM_MAX = 4;
    вот так сейчас выглядит новое меню
    [​IMG][​IMG]

    В ком порт какая то информация поступает?
    Разберетесь в чем причина, и дальше вообще проблем не возникнет)))
    Так и есть достаточно не припаять один резистор или залить не ту прошивку и можно долго думать почему оно не работает.
    Самая большая проблема в Ардуино - это обновление ПО. При чем, они обновляют так, что обновление не совместимо с предыдущими версиями, из-за этого начинаются или глюки, или вообще скетч не компилится... По этому действительно или заливать бинанрник, или внимательно читать форум.
     
  4. IvanUA

    IvanUA Гуру

    Этот проект начинался с этого модуля. Потом появились хотелки и надо было переходить на модуль с большим количеством портов. Я как то просил модеров изменить название темы, но толи я плохо просил, толи меня просто не услышали. Так вот и осталось. Но не суть. Есть первый пост, там много информации собрано по теме.
    Если есть решение, давайте его добавим в скетч.
     
  5. ИгорьК

    ИгорьК Гуру

    Зачем? Посмотри - у вас есть меню "Опции темы", меняй на здоровье.
     
    IvanUA нравится это.
  6. jgupdimon

    jgupdimon Гик

    Иван, приятно тебя лицезреть. Что с погодой делать? Опен не работает, апикси вышибает через несколько дней, замена ключа помогает, но потом всё повторяется. 10000 запросов бесплатный ключ. Может на другой сервер?
     
  7. Ingenegra

    Ingenegra Нерд

    А не на месяц ли 10000 запросов?
     
  8. jgupdimon

    jgupdimon Гик

    Всего.
     
  9. IvanUA

    IvanUA Гуру

    Век живи, век учись. Спасибо, сменил))
     
  10. Ingenegra

    Ingenegra Нерд

    upload_2019-4-23_9-38-35.png

    Все таки 10000 на месяц.
     
  11. Shura2000

    Shura2000 Нуб

    интервал увеличить.
    А можно где то посмотреть, сколько запросов прошло в месяце?
     
  12. Ingenegra

    Ingenegra Нерд

    ЕМНИП, то в своем кабинете на apixu... Но могу и ошибаться
     
  13. IvanUA

    IvanUA Гуру

    Привет, да появилось немного свободного времени. Если я не ошибаюсь то 10000 запросов - это на месяц. У нас сейчас получается 4 запроса в час * 24 часа * 30 дней - то есть порядка 3000 запросов. Надо понимать что если не было повторов. Ну и если вы этот код используете на нескольких устройствах - то считайте.
    ПС. Я на каждое свое устройство получил по отдельному коду. Уже больше как пол года полет нормальный.
     
  14. Ingenegra

    Ingenegra Нерд

    Признак окончания пакета какой?
     
  15. jgupdimon

    jgupdimon Гик

    Иван, у меня и так разные ключи на каждом устройстве. При окончании погоды все отображается 0. Может уменьшить число запросов на 2 в час?
     
  16. jgupdimon

    jgupdimon Гик

    Вопрос веазер провайдер не заработал?
     
  17. IvanUA

    IvanUA Гуру

    Код (C++):
        if(second == 46 && hour >= timeScrollStart && hour <= timeScrollStop && !alarm_stat) {
          if(minute == 15 || minute == 45 || updateForecast || updateForecasttomorrow) {
            if(minute == 15 || minute == 45) {
              if(outForecast) getWeatherData();
              if(outForecast) getWeatherDataz();
            } else {
              if(updateForecast && outForecast) getWeatherData();
              if(updateForecasttomorrow && outForecast) getWeatherDataz();
            }  
            if(!MQTTclient.connected() && mqttOn) reconnect();
          }
        }
    Уберите запрос к примеру в 45 минут
     
  18. IvanUA

    IvanUA Гуру

    Не забывайте что за один раз идет два запроса, один на погода сейчас, а второй на сегодня и завтра.
    Можно там условии добавить к примеру "hour%2 == 0" и прогноз будет получаться вообще один раз (два запроса) в два часа. Ну или как вариант указать в какие именно часы вы хотите получать погоду.
     
  19. b707

    b707 Гуру

    ну так посмотрите HTML код ответа- сами увидите. Вы же погоду из данных извлекаете? - значит умеете их парсить
     
  20. ИгорьК

    ИгорьК Гуру

    Такой (вариант):
    Код ( (Unknown Language)):
    {"location":{"name":"Moscow","region":"Moscow City","country":"Russia","lat":55.75,"lon":37.62,"tz_id":"Europe/Moscow","localtime_epoch":1556006548,"localtime":"2019-04-23 11:02"},"current":{"temp_c":15.0,"condition":{"text":"Солнечно","code":1000},"uv":5.0,"gust_mph":13.0,"gust_kph":20.9},"forecast":{"forecastday":[{"day":{"maxtemp_c":18.2,"mintemp_c":9.4,"condition":{"text":"Облачно","code":1006}},"astro":{}},{"day":{"maxtemp_c":21.2,"mintemp_c":10.5,"condition":{"text":"Переменная облачность","code":1003}},"astro":{}}]}}