Часы на ESP-12(NodeMCU) + MAX7219 + WEB интерфейс

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

?

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

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

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

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

    83 голосов
    47,7%
Можно выбрать сразу несколько вариантов.
  1. stitch2s

    stitch2s Нуб

    Приветствую Всех!
    В программировании не силен, возник вопрос, где в коде можно поменять время отображения информации с датчиков? Хочется сделать этот период меньше
     
  2. Yarik03

    Yarik03 Нуб

    Это?
    Код (C++):
    if(butMode == 1) {
        bip();
        clr(1);
        refreshAll();
        if(sensorDom) {
          showSimpleTemp();
          delay(1500);
        }
        if(sensorUl) {
          showSimpleTempU();
          delay(1500);
        }
        if(sensorHome) {
          showSimpleTempH();
          delay(1500);
        }
        if(sensorHumi) {
          showSimpleHum();
          delay(1500);
        }
        if(sensorPrAl) {
          showSimplePre();
          delay(1500);
     
  3. matand63

    matand63 Нуб

    Поддерживаю , В предыдущей версии LED_clock_weath_v11.2019.1x.ino.nodemcu.bin. Приятнее с бегущей датой и днем недели. Это единственное что не понравилось. Обе версии работают стабильно , датчик bme280 тоже нормально все показывает. Последнюю версию прошивал по воздуху ,тоже все нормально .
     
  4. Mihail78

    Mihail78 Нерд

    Может будет кому интересно, добавил в предыдущую версию часов от Ивана несколько настроек. При отображении погоды в бегущей строке можно выключить влажность, давление, направление ветра и т.д (сервер погоды бывает выдает не корректные данные, при -20 на улице обещает снег с дождем). Можно выбрать как отображать дату или выключить ее совсем. Добавил второй вариант мигающих точек. Фоторезистор управляет яркостью дисплея, яркость та что указана в настройках. Отключить можно так-же любой из датчиков на ночь, достаточно на против датчика убрать галочку.
     

    Вложения:

    Последнее редактирование: 8 фев 2020
    SteinMark, Pigulka1, malex02 и ещё 1-му нравится это.
  5. stitch2s

    stitch2s Нуб

    Нет, уменьшение этого времени ни чего не изменило
    Сейчас специально засек, у меня из датчиков только Si7021, температура и влажность отображается по 15 секунд каждый, вот именно вот это время хотелось бы уменьшить, чтобы информация выводилась по чаще
     
  6. matand63

    matand63 Нуб

    Народ подскажите а погоду с openweathermap у меня одного не показывает или у всех?
     
  7. klslab

    klslab Нерд

    у меня тоже не показывает, перевел на openweathermap. Может кто подскажет где подкорректировать давление с openweathermap.org, надо уменьшить на 24 единички, ато с weatherbit.io разнос большой.
     
    Последнее редактирование: 9 фев 2020
  8. matand63

    matand63 Нуб

    может тогда на weatherbit перевели?
     
  9. klslab

    klslab Нерд

    нет я наоборот на weatherbit.io сидел, там прогноз мне лучше подходил, но с утра все по нулям, по этому перешел на openweathermap. но он завышает давление. наверное нет коректировки по высоте.
     

    Вложения:

  10. matand63

    matand63 Нуб

    странно у меня наоборот weatherbit отлично работает а openweathermap одни нули показывает
     
  11. Frostus

    Frostus Нуб

    Сначала погоду брал с сайта openweathermap, но потом заметил, что прогноз на Завтра выводит нули, перешел на weatherbit-отлично: погода на сегодня и прогноз на завтра показывает, довольно таки точно :)
     
  12. matand63

    matand63 Нуб

    Аналогично. С openweathermap как то показывало ,то нет текущий прогноз остальное нули. weatherbit вроде все нормально показывает. сейчас, сегодня и на завтра.
     
  13. Slaiterx

    Slaiterx Гик

    А не подскажите двухстрочную версию с рабочим народным мониторингом а то все что на гитхабе пробовал народный мониторинг не работает на однострочной все нормально да и прошиваю бинарники Ардуино Иде настроить не могу не хватает части кода вот этого
    Код (C++):
    //=========================================================================================================
    //                                  narodmon.ru
    void getNarodmon() {
      if (!WIFI_connected)  return;
      if (printCom) {
        printTime();
        Serial.println("Connection to narodmon.ru");
      }
      if (ESPclient.connect("http://narodmon.ru", 80)) {
        if (printCom) Serial.println("connection failed");
        return;
      }
      if (!sensors_ID0) return;
      String line = "";
      String reqline = "http://narodmon.ru/api/sensorsValues?sensors=";
      if (sensors_ID0) reqline += String(sensors_ID0);
      if (sensors_ID1) reqline += "," + String(sensors_ID1);
      if (sensors_ID2) reqline += "," + String(sensors_ID2);
      reqline += "&uuid=" + uuid + "&api_key=" + api_key;
      if (printCom) {
        Serial.println("=======================================================");
        Serial.println(reqline);
        Serial.println("=======================================================");
      }
      HTTPClient http;
      if (http.begin(ESPclient, reqline)) { // HTTP
        int httpCode = http.GET();
        if (httpCode > 0) {
          Serial.printf("[HTTP] GET... code: %d\n", httpCode);
          if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
            line = http.getString();
          }
        } else {
          Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
        }
        http.end();
      } else {
        Serial.printf("[HTTP} Unable to connect\n");
      }
      if (printCom) {
        Serial.print("answer=");
        Serial.println(line);
      }
      const size_t capacity = JSON_ARRAY_SIZE(2) + JSON_OBJECT_SIZE(1) + 2 * JSON_OBJECT_SIZE(6) + 340; //https://arduinojson.org/v6/assistant/
      DynamicJsonDocument doc(capacity);
      deserializeJson(doc, line);
      if (!doc.capacity()) {
        if (printCom) Serial.println("          Parse weather forecast - FAILED!!!");
        return;
      }
      JsonObject sensors_0 = doc["sensors"][0];
      float sensors_0_value = sensors_0["value"]; // 14.2
      long sensors_0_time = sensors_0["time"]; // 1571853360
      JsonObject sensors_1 = doc["sensors"][1];
      float sensors_1_value = sensors_1["value"]; // 14
      long sensors_1_time = sensors_1["time"]; // 1571853000
      JsonObject sensors_2 = doc["sensors"][2];
      float sensors_2_value = sensors_2["value"];
      long sensors_2_time = sensors_2["time"];

      long timestamp = epochNM + (millis() / 1000);
      if (printCom) {
        printTime();
        Serial.println("sensors_0 = " + String(sensors_0_value, 1) + "'C    sensors_1 = " + String(sensors_1_value, 1) + "'C    sensors_2 = " + String(sensors_2_value, 1) + "'C");
        Serial.println("time_0 = " + String(timestamp - sensors_0_time) + "      time_1 = " + String(timestamp - sensors_1_time) + "      time_2 = " + String(timestamp - sensors_2_time));
      }
      tempNM = 0;
      if (sensors_ID0) {
        if ((timestamp - sensors_0_time) > 3600) {
          sensors_0_value = 99;
        } else tempNM = sensors_0_value;
      }
      if (sensors_ID1) {
        if ((timestamp - sensors_1_time) > 3600) {
          sensors_1_value = 99;
        } else if (tempNM > sensors_1_value) tempNM = sensors_1_value;
      }
      if (sensors_ID2) {
        if ((timestamp - sensors_2_time) > 3600) {
          sensors_2_value = 99;
        } else if (tempNM > sensors_2_value) tempNM = sensors_2_value;
      }
      if (!tempNM && !updateForecast) tempNM = location_temp;
      Serial.println("tempNM = " + String(tempNM, 1) + "'C");
    }
    //=========================================================================================================
    добавьте ктонибудь пожалуйста и скомпилируйте бинарник а то у меня комп не хоччет работать номально
    вставьте пожалуйта после 1188 стоки
     
    Последнее редактирование: 13 фев 2020
  14. max50a5

    max50a5 Гик

    Все есть, строка 1715.
    Пробуйте: https://github.com/max50a5/ESP8266_...aster/Informer_clock_weath_v12.2019.2x_noData
     
    Последнее редактирование: 13 фев 2020
  15. Slaiterx

    Slaiterx Гик

  16. Yarik03

    Yarik03 Нуб

    Подскажите, weatherbit нормально у всех работает? У меня при вводе ключа API и включении отображения погоды вечная перезагрузка часов.
     
  17. klslab

    klslab Нерд

    у меня так было, сгенерировал другой ключ и все заработало, правда примерно через минут 15. А так сидел на openweathermap 3 дня.
     
  18. Yarik03

    Yarik03 Нуб

    Сгенерировал новый ключ, около часа назад.
    Не помогло.

    P.S. Наверное какие-то неполадки с weatherbit, на прошивке от Sem то же самое. А на OWM одни нули в прогнозах идут.
     
    Последнее редактирование: 14 фев 2020
  19. max50a5

    max50a5 Гик

    На следующей недели соберу такие часики:
    [​IMG]

    [​IMG]
     
  20. Deniskyn

    Deniskyn Гик

    Что это? =))))
    ПС
    В теме обсуждаем проект Ивана!
    ПС2
    Сори не сразу понял по фотке =)
     
    Последнее редактирование: 14 фев 2020