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

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

?

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

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

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

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

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

    IvanUA Гуру

    Разобрался в чем прикол. Это происходило когда часы были меньше 10))))
    Поправил код.
    Сделал что бы в ночном режиме при нажатии кнопки в верхней строке отображалось время, а в нижней температура в доме.
    Так же добавил в веб интерфейс возможность выбирать сколько модулей 8х8 будет использовано в 1-й и во 2-й строке
    ссылка на прошивку далее в форуме.
     
    Последнее редактирование: 29 дек 2018
    om1212, Egoist и yucan нравится это.
  2. Egoist

    Egoist Нуб

    Ясно, ну здорово, вечерком прошью, будем тестить)
    Выбор матриц тоже хорошая вещь, будем посмотреть))
     
    Последнее редактирование: 25 дек 2018
  3. ImrDuke

    ImrDuke Гик

    Позвольте ту спрошу. Вот эта функция возвращает пустую строку.
    Где ошибка?

    Код (C++):
    void jsonGet() {
     
      // Use WiFiClient class to create TCP connections
      WiFiClient client;
      const int httpPort = 80;
      if (!client.connect(host, httpPort)) {
        Serial.println("connection failed");
        return;
      }
        client.println("GET /api/sensorsOnDevice?id=10705&uuid=4ce0bec67fe735f4997426101dd5292b&api_key=43MGvb.5IUhRE&lang=en HTTP/1.1");
        client.println("Host: narodmon.ru");
        client.println("Connection: close");
        client.println();
      delay(1000);
      // Read all the lines of the reply from server and print them to Serial
      while(client.available()){
        line = client.readStringUntil('\r');
      }
      Serial.print(line);
      Serial.println();
      Serial.println("closing connection");
    }
     
  4. big_alex

    big_alex Гик

    Вообще то возвращает -
    {"error":"Unauthorized","errno":401}
     
  5. Egoist

    Egoist Нуб

    Если выбрать сдвиг дата, темпа съезжает, а не уменьшается, погода отображается корректно...
    685C22D3-0913-405B-86A3-74D5985858CB.jpeg
    При выборе 3 модулей в 1 матрице переворачивается последняя цифра и внизу появляться единичка... единичка появляется если внизу остается 4 матрицы, если выбрать 5, то ее нет, но последняя цифра часов так и остается перевернутой, а погода пытается показываться сквозь нее как на последней фото...
    DB8EB86E-52DE-4DF1-825A-8FD9AA1C935F.jpeg
    CEE93935-BC45-4E2E-BE76-3FF0ED41E07A.jpeg

    Если выбрать 4+3 в нижней строке в последнем модуле отображается перевернутая двойка(возможно первая цифра темпы), прогноз отображается на 3 модуля, двойка в последнем висит постоянно, температура не отображается вообще
     
    Последнее редактирование: 25 дек 2018
  6. ImrDuke

    ImrDuke Гик

    У меня вот так. Может я что то не так указал?

    Код (C++):
    #include <ESP8266WiFi.h>
    #include <BlynkSimpleEsp8266.h>
    #include <ArduinoJson.h>

    char auth[] = "";
    char ssid[] = "";
    char pass[] = "";

    String line;

    void setup()
    {
      Serial.begin(9600);
      Blynk.begin(auth, ssid, pass);
      jsonGet();
    }

    void loop() {
    }

    void jsonGet() {
      // Use WiFiClient class to create TCP connections
      WiFiClient client;
      const int httpPort = 80;
      if (!client.connect(narodmon.ru, 80)) {
        Serial.println("connection failed");
        return;
      }
      client.println("GET /api/sensorsOnDevice?id=10705&uuid=1d7d1e799ec24512b27bddd6d1065eca&api_key=Fu6Epy1x6s2xx&lang=en HTTP/1.1");
      client.println("Host: narodmon.ru");
      client.println("Connection: close");
      client.println();
      delay(1000);
      // Read all the lines of the reply from server and print them to Serial
      while (client.available()) {
        line = client.readStringUntil('\r');
      }
      Serial.print(line);
      Serial.println();
      Serial.println("closing connection");
    }
    [​IMG]
     
  7. IvanUA

    IvanUA Гуру

    Сдвиг дата - он и есть сдвиг вниз. При этом желательно выбрать еще и размер даты в 7 линий.

    Выбор 3-х матриц - это задел на будущее. При выборе трех первых матриц надо уменьшать шрифт часов и сделать их центровку. Сейчас все шрифты и вывод часов адаптированны под 4 матрицы.

    Если вы используйте 4+4 матрицы то соответственно выбирайте и такие настройки.
    То что у вас на экране мусор - это только из-за не правильно настроенных количества модулей)))
     
  8. IvanUA

    IvanUA Гуру

    Я конечно дико извиняюсь, но если вы решили адаптировать прошивку часов для работы с народным мониторингом, то может поделитесь с остальными полной прошивкой?
     
  9. Egoist

    Egoist Нуб

    Просто если не ошибаюсь на предыдущих прошивках сдвиг уменьшал шрифт... дата(прогноз) отображается норм и при 8, видимо из-за маленьких, строчных...
    Ну я менял и на более правильное количество, 3+5 например, последняя цифра часов не отображается норм, но да, наверное тут проблема шрифтов и адаптации, так же при такой конфигурации бегущая строка в последней матрице сверху отображается вверх ногами и вдругую сторону бежит, но тут думаю опять проблема из-за разных типов матриц...
    В целом меня такая конфигурация не сильно интересует, мне 4+4 вполне достаточно, а в таком виде все работает нломально, остальные просто решил глянуть и отписаться о их проблемах, что увидел))
    P.s. начиная потихоньку перекидывать датчики на эти часы, подключил базер, как обсуждалось ранее, идет фон, возможно ли добавить bip(); как я писал где-нибудь в начале кода(подключение к вайфай) или ждать исходников и под себя уже потом править?)))
     
    Последнее редактирование: 25 дек 2018
  10. Seaven

    Seaven Нерд

    219 void setup() {
    220 delay(2000);
    221 Serial.begin(115200);
    С задержкой не экспериментировал, не принципиально.
     
  11. big_alex

    big_alex Гик

    Посмотрите пример
    возможно не хватает - client.println("User-Agent: arduino-ethernet");
     
  12. ImrDuke

    ImrDuke Гик

    В теме поднимался этот вопрос, поэтому я сюда и написал.
     
  13. ImrDuke

    ImrDuke Гик

    не помогло...
     
  14. big_alex

    big_alex Гик

    Похоже проблема в устройстве которое передает на народмон
    С другим sensorsOnDevice?id=3816 - работает
    Вам нужно несколько показаний с устройства?
    Для одного датчика используйте sensorsValues?sensors
     
  15. om1212

    om1212 Нерд

    Спасибо за прошивку для двухэтажных часов!
    В web интерфейсе, на вкладке 'Setup' в поле 'Room temperature sensor'
    можно выбрать 'MQTT', а на вкладке 'MQTT' нет поля для топика 'Room temperature sensor'.
    Заготовка на будущее?

    P.S. Разобрался. Используется один топик или для уличной, или для комнатной температуры.
     
    Последнее редактирование: 25 дек 2018
  16. ImrDuke

    ImrDuke Гик

    Просто хочу с датчика с сайта получить температуру.
     
  17. Скажите пожалуйста. Кто-нибудь пробовал сделать обратный отсчёт до Нового года? Установил прошивку 11.11. Моему счастью нет придела. Спасибо за отличную работу.
     
  18. IvanUA

    IvanUA Гуру

    До Нового Года осталось 527 700 секунд... Это надо по крайней мере 6 знаков выводить))))
     
  19. saha74

    saha74 Гик

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

    Вложения:

  20. yucan

    yucan Гик

    Не могу разобраться, как в скетче v11.11 подкорректировать показания давления, идущие с сайта прогноза? Завышает на 20 едениц! C BMP-280 подкорректировал, показывает правильно (743 мм). APIXU выдаёт 763!

    Строка weatherString += " \215 " + String((current_pressure_mb/1.3332239), 0) + tPress; просто конвертирует в мм.рт. ст.?