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

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

?

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

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

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

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

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

    yri26 Нерд

    Изменил в data_city_name на свой город на украинском языке, но все равно в бегущей строке Zaporozhye, прям матюк получился. Я то понимаю что по коду города с буржуйского сайта ответ будет на английском, и сделать как вы подсказали - " как было очень давно, делайте функцию со сравнением данной переменной с уже известными названиями и меняйте на свои варианты." для меня сложно. Что помешало оставить как было в предыдущих прошивках, город на понятном языке.
     
  2. IvanUA

    IvanUA Гуру

    Попробуйте после строк (два раза):
    Код (C++):
    location_name = data_city_name;
    Вставить строки:
    Код (C++):
    if(location_name == "Zaporozhye") location_name = "Запоріжжя";  
     
  3. max50a5

    max50a5 Гик

    Спасибо, то, что надо.
     
  4. yri26

    yri26 Нерд

    Я правильно отредактировал? Для weatherbit.io
    Код (C++):
    const char* data_timezone = data["timezone"]; // "Europe/Zaporozhye"
      location_region = data_timezone;
      const char* data_ob_time = data["ob_time"]; // "2019-09-19 17:57"
      location_localtime = data_ob_time;
      const char* data_country_code = data["country_code"]; // "UA"
      location_country = data_country_code;
      location_clouds = data["clouds"]; // 4
      const char*   data_city_name = data["city_name"]; // "Запоріжжя"
      location_name = data_city_name;
      if(location_name == "Zaporizhia") location_name = "Запоріжжя";
    а для openweathermap.org
    Код (C++):
    const char* data_country_code = sys["country"]; // "UA"
      location_country = data_country_code;
      const char*   data_city_name = doc["name"]; // "Запоріжжя"
      location_name = data_city_name;
      if(location_name == "Zaporizhzhya") location_name = "Запоріжжя";
    С этими изменениями все равно город на английском.
     
    Последнее редактирование: 13 дек 2019
  5. max50a5

    max50a5 Гик

    У Ивана:
    Код (C++):
    if(location_name == "Zaporozhye") location_name = "Запоріжжя";
    у Вас:
    Код (C++):
    if(location_name == "Zaporizhia") location_name = "Запоріжжя";
    Найдите отличие.
     
  6. yri26

    yri26 Нерд

    Отличие в том что на weatherbit.io город выдает в таком виде Zaporizhia а с openweathermap.org Zaporizhzhya. И название города меняется на украинский, но только в вэб интерфейсе.
     

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      132,3 КБ
      Просмотров:
      441
    • 2.png
      2.png
      Размер файла:
      104,3 КБ
      Просмотров:
      449
    Последнее редактирование: 13 дек 2019
  7. Boryan_R

    Boryan_R Гик

    Вопрос к автору прошивки или кто в теме. На часах стоит последняя прошивка. Есть некоторые пункты в настройках которые мне не понятны. Могли бы мне прояснить ситуацию ?
    1)Для чего в настройках народмон есть возможность вписать три сенсора? Это только сенсоры температуры? Я вписал один и все работает.
    2) В mqtt я полный профан :) только делаю первые шаги. Зарегился на сервере cloudmqtt.com создал топик ESP, настроил часы. вижу что туда приходят данные с часов: температура на улице с народмон, температура и влажность дома с датчика DHT11.
    Вопрос в следующем, в настройках часов топики: Топик внешней температуры,Топик информационного сообщения,Топик пресс-релиза,- для каких целей нужны? Это топики для приёма информации с Mqtt? Могут ли например вторые часы (если первые на даче) забирать и выводить инфорцию о данных с дачи с MQTT сервера? Что прописывать и в какие топики для этого?
    Сильно не пинайте, если вопросы глупые. Пока осваиваю MQTT и каша в голове....
     
    Последнее редактирование: 13 дек 2019
  8. tosat

    tosat Нерд

    У меня похожий вопрос: на прошлой версии часов данные выдавались на сервер Mqtt (у меня адрес: farmer.cloudmqtt.com), сейчас этого не происходит, и что такое народдом, ткните пальцем где это почитать, в этом я полный "0", также вопрос к автору: как реально сделать чтоб родной город изображался на часах на родном языке?
    Если что то осваиваю однострочную версию часов.
     
  9. Здравствуйте, русские буквы убрал, не помогло.
    C:\Users\Igor\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.0-rc1\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:139:10: note: candidate expects 4 arguments, 2 provided

    C:\Users\Igor\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.0-rc1\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:141:10: note: bool HTTPClient::begin(String, uint16_t, String, bool, String)

    bool begin(String host, uint16_t port, String uri, bool https, String httpsFingerprint) __attribute__ ((deprecated));

    ^

    C:\Users\Igor\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.0-rc1\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:141:10: note: candidate expects 5 arguments, 2 provided

    exit status 1
    no matching function for call to 'HTTPClient::begin(WiFiClient&, String&)'
     
  10. Boryan_R

    Boryan_R Гик

    narodmon.ru
    это narodmon.ru на карте находишь ближний к вам датчик кликаешь на него видишь его данные и ID
     
  11. tosat

    tosat Нерд

    К сожалению без VPN у нас в стране не работает, и ещё по логам Mqtt сервера вижу что на него какие то данные передаются, но на проге на андроиде я их не вижу, есть у меня ещё таймер на кухню от автора, там всё работает безукоризненно, кто может дать подсказку?
     
  12. IvanUA

    IvanUA Гуру

    Правильно. Потому что в строке (два раза)
    Код (C++):
    weatherString = "         "+String(data_city_name)+", "+tNow+":    \212 "+String(location_temp, 1)+" ("+String(location_temp_min,1)+"..."+String(location_temp_max,1)+")"+("\202")+"C";
     
    Используется переменная data_city_name, а мы вносим поправки в location_name. Так что просто замените в данных строках переменные)))
     
    yri26 нравится это.
  13. IvanUA

    IvanUA Гуру

    Можно вписывать от одного до трех. Зачем? Поищите в теме в моих сообщениях.
    Топик внешней температуры - температура улицы получаемая от внешнего устройства.
    Топик информационного сообщения - все сообщения что поступают в данный топик выводятся на экран с сигналом.
    Топик пресс-релиза - перевод немного кривой
    Принимать можно только внешнюю температуру, она же может быть и температура на даче.
    Попробуйте найти недостающие ответы поиском по данной теме.
     
  14. IvanUA

    IvanUA Гуру

    - МКТТ в часах давно не менялось ничего. Ищите для начала во вводимых топиках, ну или давайте информацию из компорта сюда, только удалите свои личные данные.
    - narodmon.ru - зайдите, там все написано
    На гитхабе, для обоих версий для образца добавил перевод для города Франкфурт на Майне.
     
    Последнее редактирование: 14 дек 2019
  15. IvanUA

    IvanUA Гуру

    Попробуйте в менеджере плат, установить версию платы esp8266 - 2.5.2 или выше
     
  16. Спасибо за совет, поменял версию платы на 2.6.2 и ошибки не стало.
    Но почему то текст в нижней строке( погода дома и на улице)выходит вниз на одну строку , при этом прогноз погоды идет нормально
     
  17. max50a5

    max50a5 Гик

    Вот эти настройки проверьте(даже если они у Вас на английском, место положения и назначения одинаковые):
    [​IMG]
     
  18. yri26

    yri26 Нерд

    Наконец то, город в бегущей строке стал отображается на родном языке, правда только если меняешь язык в часах на русский, Запоріжжя так и остается на украинском, но с этим можно жить! С помощью IvanUA отредактировал строки в weatherbit.io и также сделал для openweathermap.org
    Код (C++):
    location_name = data_city_name;
    if(location_name == "Zaporizhia") location_name = "Запоріжжя";
    weatherString = "         " + String(location_name) + ", " + tNow + ":    \212 " + String(location_temp, 1) + ("\202") + "C";
    То есть, добавил строку if(location_name =="Zaporozhye") location_name ="Запоріжжя";
    и заменил + String(data_city_name) на location_name. Огромное спасибо IvanUA за помощь!
     
    Последнее редактирование: 15 дек 2019
  19. max50a5

    max50a5 Гик

    Можно попробовать как-то так:
    Код (C++):
    if(location_name =="Zaporozhye") && (lang == 0) {
        location_name ="Запоріжжя"
        } else if(location_name =="Zaporozhye") && (lang == 1) {
        location_name ="Запорожье"
      }
     
    Последнее редактирование: 15 дек 2019
  20. yri26

    yri26 Нерд

    Не хочет: expected identifier before '(' token