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

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

?

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

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

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

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

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

    Sandr Гик

    и возможно попробовать - weatherDescription = root ["list"][0]"weather"][0]["description"].as<String>();[/QUOTE]
    если убрать [0] то при облачности 0 будет выполняться вот эта строка weatherString += weatherDescription в конце строки после облачности будет описание погоды а если оставить то не будет описания погоды
    ( облачность "0", чистое небо или малооблачно.). так что эта строка расшифровывает облачность. У Вас скорее всего ключ валидный. Ключи которые генерирует сайт openweathermap. Не рабочие. Они только на один день а на завтра нет прогноза. не мучайся. Тут поднимали где то этот вопрос но так до конца и не решили. Я не видал по крайней мере ответа. Как получить рабочий ключ. Если кто знает напишите пожалуйста!!
     
    Последнее редактирование: 21 апр 2018
  2. big_alex

    big_alex Гик

    Я уже писал - пост
    В ответе на запрос погоды на завтра содержатся данные на два дня (на сегодня и завтра), так вот "1" как раз указывает на завтра. Тогда строки должны быть:
    Код (C++):
    float tempMin = root  ["list"][1]["temp"]["min"];
      float tempMax = root  ["list"][1]["temp"]["max"];
      float wSpeed = root  ["list"][1]["weather"][0]["speed"];
      int wDeg = root  ["list"][1]["weather"][0]["deg"];
      weatherDescription = root ["list"][1]["weather"][0]["description"].as<String>();
    Облачность указывается в строке - clouds, это отчетливо видно на скриншоте.
    Description - собственно описание погоды.
    В скетче зачем-то удаляются квадратные скобки из полученной строки, а они нужны для правильного распарсивания, иначе ломается структура JSON.
    Отредактировал после проверки на openweathermap.org, теперь все совпадает.
     

    Вложения:

    Последнее редактирование: 21 апр 2018
  3. Sandr

    Sandr Гик

    Насчёт скобок не скажу, а вот ноль удалить, то не будет описания облочности.Будет просто облачность 0. Проверено. А вы сравните эти строки она как раз стоит в конце описания погоды.
    weatherDescription = root["weather"]["description"].as<String>(); вот так работает описание
    weatherString += " Облачность " + String(clouds) + "0 % "; при нуле%
    weatherString += weatherDescription + " " ; работает вот эта нижняя строка
    if(weatherDescription == "clear sky") weatherDescription = " чистое небо ";
     
    Последнее редактирование: 21 апр 2018
  4. Sandr

    Sandr Гик

    Да интересно конечно. А у Вас MQTT настроен. А то он постоянно ломится в инет и может не давать нормально делать запросы на сервер погоды. Мы ту уже выше об этом писали . Как настроишь или отключишь его сразу всё начинает работать нормально . В виду того что ESP не умеет работать в многопоточном режиме, а такие процедуры как измерение температуры или запрос погоды - являются очень длительными... то Иван всё рассчитал до миллисекунд.Вот по этому любое не настроенное приложение портит всю картину.
    А Вы как ключ получали ? У меня всегда генерирует на текущий день.почемуто.
     
  5. big_alex

    big_alex Гик

    Sandr, у меня все работает ;), я вообще-то писал для igor777ivan ну и может кому интересно будет разобраться с JSON
     
  6. Sandr

    Sandr Гик

    Странно установил фильтр json в мозилу, ввожу валидные ключи они работают на 5 дней выдают погоду.
    Иван может библиотека какая то глючная. Блин в часах не парсится толком. вернее парсятся но не со всеми ключами.
     
  7. Sandr

    Sandr Гик

    Да спасибо ALEX благодаря тебе я познал .такую вещь по скриншоту, как фильтр Json. Ты знаешь мои валидные ключи работают, выдают погоду на 5 дней . А в часах почему то не работают. Вернее не все работают. Похоже библиотека которая отвечает за парсинг данных не корректно работает. Как Вы решили проблему. Установкой другой библиотеки или скетч подправили.? Поделитесь мне очень интересно.Да я думаю многим будит полезно это узнать.
     
  8. big_alex

    big_alex Гик

    У меня как ни странно работает в авторском варианте (прогноз на завтра), а текущая погода изменена.
    Но видно нужно менять и на завтра.
    Попробуйте закомментировать эту строку - if(c == '[' || c == ']') c = ' ';
    И заменить строки из поста выше.
    ["list"][1] - необходимо дописывать потому что начинает работать структура JSON
     
  9. Sandr

    Sandr Гик

    Напишу как проверить свои ключи. Может кому пригодится. Устанавливаем Firefox Скриншот 21-04-2018 224436.png затем нажимаем на пункт управление дополнениями Скриншот 21-04-2018 222545.png далее в поиске набираем "фильтр json" он найдёт кучу я выбрал этот 2.png
    Нажмите добавить
    3.png
    Сюда вобьёте свои данные и увидите как работают ваши ключи
    api.openweathermap.org/data/2.5/forecast?id=513883&APPID=1d95d60df98e84ec2b4070be53c4d581
    в место выделенного свои данные и эту строку вводим в браузер.
    Вот подсказали ESTET,что с таким запросом всё парсится а вот как у нас : http://api.openweathermap.org/data/2.5/forecast/
    daily?id=513883&APPID=5d95d60df98e84ec2b4070be53c6d581 - НЕТ. Вот эта daily? Мешает.
     
    Последнее редактирование: 23 апр 2018
  10. Sandr

    Sandr Гик

    Странно но у меня работают некоторые ключи. исправно. При чём я генерировал ключ вставил он сначала работал а потом перестал .Только текущую погоду. на завтра перестал получать.
    Спасибо попробую.
     
  11. Estet

    Estet Нуб

    при таком запросе api.openweathermap.org/data/2.5/forecast?id - тянет всю погоду на 5 дней, при
    api.openweathermap.org/data/2.5/forecast/daily?id - invalid key
     
    Последнее редактирование: 23 апр 2018
  12. Sandr

    Sandr Гик

    Вот и не понятно может запрос изменить в строке. Только это может повлиять на правильный парсинг погоды. Надо попробовать. Молодец а я и не заметил разницу. А в запросе на текущие сутки нет этого daily?.
     
    Последнее редактирование: 23 апр 2018
  13. Sandr

    Sandr Гик

    Блин убираю со строки daily? -( ежедневный) и рабочий ключ становится валидным.Надо будет по изучать.
     
    Последнее редактирование: 23 апр 2018
  14. Estet

    Estet Нуб

    вот здесь, человек сделал парсинг по другому на прогноз Часы на ESP-01(NodeMCU) + MAX7219 + WEB интерфейс
    попробывал, что то маленько не сходиться с сайтом, там хитро как то сделано с каких строк считывать, я далёк от всего этого, но могу подтвердить что работает с теми ключама которые не брали прогноз
     
  15. Boryan_R

    Boryan_R Гик

    А у меня отлично работает твой код с народ мон. Слегка подправил его. Сделал отключение MQTT.
     
  16. Estet

    Estet Нуб

    дело не в работе кода, зарегестрированный ключ года 3 назад, а я таких часиков друзьям понаклепал 7 штук, ещё 3 в планах, волнуюсь как бы мой ключик не начали блочить, отрабатывает с любым кодом на ура, новые ключи не работают на прогноз, хотя вытягивают погоду на 5 дней, т.е. рабочий, где то они с апишкой поменяли а мы не в курсе
     
  17. Sandr

    Sandr Гик

    Сдается мне, что это у нас библиотека старая. По этому и работает со старыми ключами. А вот где взять новую. Хочу попробовать Денискин парсинг может действительно. Заработает.
     
  18. Sandr

    Sandr Гик

    Вообще странно . На сайте дают вот такой запрос для использования ключа.
    Как использовать ключ API в вызове API
    Описание:

    Чтобы получить доступ к weather API, вам нужен ключ API, который вы выбрали от Free до Enterprise.

    Активация ключа API бесплатно и планы запуска занимает 10 минут. Для остальных тарифных планов-от 10 до 60 минут.

    Мы сохраняем право не обрабатывать запросы API без ключа API.

    короче daily? это ( ежедневный) прогноз.

    вызов API:
    http://api.openweathermap.org/data/2.5/forecast?id=524901&APPID = {APIKEY}
    Параметры:
    Идентификатор appid {значение apikey} является ваш уникальный ключ API
    Пример вызова API:
    api.openweathermap.org/data/2.5/forecast?id=524901&APPID=1111111111
     
    Последнее редактирование: 23 апр 2018
  19. Estet

    Estet Нуб

    у них на сайте описание работы с апи по ходу не полное, у них есть пример где присутствует daily, это где язык выставляется, ну и гдето там же у них в доках было что это просто примеры и они могут не работать на реальном айпи.
    А библиотека то нормальна, ну я не специалист, на сегодня то раскладывает все правильно, с запросом к апи проблема
     
    Последнее редактирование: 23 апр 2018
  20. Sandr

    Sandr Гик

    Да читал я. Просто с другими ключами там и ответы совсем другие. Значит они ключи дают такие. А вот как взять нормальные. Это вопрос?