ESP, IoT [BigClock] Большие часы на WS2812, ESP8266, Народный мониторинг

Какой вариант датчика используется у вас? Интересно, использует ли кто BME280, как у меня?)

  • BMP280

    Голосов: 26 26.8%
  • BME280

    Голосов: 71 73.2%

  • Всего проголосовало
    97

Romshteks

✩✩✩✩✩✩✩
13 Май 2020
43
4
У меня - MH2024K-24SS (Жалоб нет)
Вот что пишут:
Кстати , последнее время Алиэкспресс наводнили mp3 модули на чипе MH2024K-16SS ( вместо MH2024K-24SS ). На фото может быть MH2024K-24SS но присылают MH2024K-16SS
Которые имеют ограниченный набор команд и проблемы с последовательной связью. Гавенные модули.
 

lentiai

✩✩✩✩✩✩✩
19 Янв 2023
4
1
Версия ядра 2.7.4 ?
!!!! Версия ядра должна быть 2.7.4 !!!!!!
Так и делаю. Вопрос, что надо поправить, если не нужен mp3 модуль и народный монитор? И как подключить и настроить рег. яркости если у меня модуль фоторезистора (с перемеником)
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
Вопрос, что надо поправить, если не нужен mp3 модуль и народный монитор?
просто выключить)
bool Monitoring = false;
И как подключить и настроить рег. яркости
настроить пин
C++:
#define BRI_PIN
и в портале можно выбрать цифровой датчик)
или настроить заранее
C++:
bool type_brg = 0;   // выбрать тип датчика, 0 - аналог, 1 - цифровой
 

Divin

★★★★✩✩✩
30 Янв 2021
459
204
@ASM, в нескольких проектах с плеером видел что обе линии сажаются на резюки в 1 кОм
 

Divin

★★★★✩✩✩
30 Янв 2021
459
204
@ASM, у меня на лампе без резистора не стабильно работал плеер, не всегда проходили команды.
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
Может подстроечные коэффициенты яркости убрать?) Есть ли от них толк, оставить по умолчанию)
Баги: gmt, 00, :
 
Изменено:

Medwed76

✩✩✩✩✩✩✩
17 Июл 2021
36
2
Для проверки bmp280 и esp, снова установил шаблон из библиотеки от Алекса. За 11 часов данные критически не изменились, показания вполне реальные.
@ASM, можно в скетче заменить библиотеку на "GyverBME280"?
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@deniss777, удали в коде мониторинга ненужный датчик, чтобы не присылало. Уличный датчик.
 

deniss777

✩✩✩✩✩✩✩
26 Янв 2022
18
0
@deniss777, удали в коде мониторинга ненужный датчик, чтобы не присылало. Уличный датчик.
проблема . датчик bme280
не выводит МИНУС .
часы на ул будут !!! .
выводит на ws2812

если недолго можете прописать отрицательную температуру .

ds18b20 убрал

13:
  digit = abs (celsius / 10);
  if (digit == 0)Digit(digits[12], segment_2); // если впереди ноль, то выключаем его
  else
    Digit(digits[digit], segment_2); // иначе показываем как есть

  if (sensors.getTempCByIndex(0) >= -1)Digit(digits[13], segment_1); // если < или = -1, то показываем -
  else
    Digit(digits[12], segment_1); // иначе выключаем 1 сегмент
};
 
Изменено:

deniss777

✩✩✩✩✩✩✩
26 Янв 2022
18
0
BME280 не для улицы, быстро выйдет из строя.
:( ПОНЯЛ. пропишите в bme280 . я прописываю - постоянно горит минус . а то получается цифры уходят в отрицательную сторону а минуса не хватает .



код:
void TempToArray() { // вывод температуры с датчика BMP/BME280 на экран
  bmp280.beginI2C();
  tempH = (bmp280.readTempC()) + d1;
  int celsius = tempH;
  Serial.println ((String) celsius + " | " + tempH);
  Dots(!Dot);
  Digit(digits[10], segment_4); // символ градуса

  int digit = abs (celsius % 10);
  Digit(digits[digit], segment_3);

  digit = celsius / 10;
  if (digit == 0)Digit(digits[12], segment_2); // если впереди ноль, то выключаем его
  else
    Digit(digits[digit], segment_2); // иначе показываем как есть

  Digit(digits[12], segment_1); // отключаем 1 сегмент
};
 
Изменено:

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@deniss777, у тебя же правильно вроде было, только знак неверный, не > а <.
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@deniss777,
C++:
 if (bmp280.readTempC() <= -1)Digit(digits[13], segment_1); // если < или = -1, то показываем -
  else
    Digit(digits[12], segment_1); // иначе выключаем 1 сегмент
 
  • Лойс +1
Реакции: deniss777

Romshteks

✩✩✩✩✩✩✩
13 Май 2020
43
4
У себя я это вот так реализовал.)
КОД:
// ==== Формирование и вывод уличной температуры на экран ====
void TemperOutToString() {
  int16_t tempS;
  static uint32_t tmr1 = millis() - c.periodDisplay[5] * 1000;  // Заводим таймер на указанный период выбраного режима
  if (millis() - tmr1 < (c.periodDisplay[5] * 1100)) return;    // Если прошло больше установки разрешаем обновится
  tmr1 = millis();
  Dots(!Dot);                    // Часовые точки выключаем
  FtempS = sensor_ds.getTemp();  // Чтение уличной температуры с датчика DS18B20
  tempS = FtempS * 10;           // Добавляем десятые и переводим в целое
  tempS = tempS + o.cor_tempS;   // Коррекция
  DEBUG("Т уличная: ");          // Отладочная информация в порт
  DEBUGLN((String)FtempS + "°+ кор.(" + o.cor_tempH + "°)= " + tempS / 10 + "." + tempS % 10 + "°");
  Digit(digits[20], segment_4);       // Четвёртое знакоместо символ градуса º
  if (tempS <= -10) {                 // Если температура < или = -10
    Dot_R(0);                         // Гасим разделительную точку
    int digit = abs(tempS % 10);      // Формируем единицы
    Digit(digits[digit], segment_3);  // Выводим на третье знакоместо
    digit = abs((tempS % 100) / 10);  // Формируем десятки
    Digit(digits[digit], segment_2);  // Выводим на второе знакоместо
  } else {
    Dot_R(1);                           // Включить разделительную точку
    int digit = abs(tempS % 10);        // Формируем десятые
    Digit(digits[digit], segment_3);    // Выводим на третье знакоместо
    digit = abs((tempS % 100) / 10);    // Формируем единицы
    Digit(digits[digit], segment_2);    // Выводим на второе знакоместо
    digit = abs(tempS / 100);           // Формируем десятки
    if (digit == 0) {                   // Если впереди ноль
      Digit(digits[12], segment_1);     // То выключаем его
    } else {                            // Иначе
      Digit(digits[digit], segment_1);  // Выводим на первое знакоместо
    }
  }
  if (tempS <= -1) Digit(digits[13], segment_1);  // Если температура < или = -1, то показываем -
  Perexod1();                                     // Плавно разгораемся
  sensor_ds.requestTemp();                        // Запрашиваем новое измерение
}
Соответственно показания можно с другого датчика брать.
 
  • Лойс +1
Реакции: deniss777

Romshteks

✩✩✩✩✩✩✩
13 Май 2020
43
4

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
по поводу не меняется GMT
C++:
ntp.end();
ntp.setGMT(c.gmt);
ntp.setHost(c.host);
ntp.begin();
если делать так, но никакой реакции, а если пропустить через
C++:
wifi_connected();
то все работает отлично, но возникает проблема, рестарт ESP)
Поправил тумблер Первый ноль в часах? работал инверсивно.​
Баг с точками пока не исправил, есть он у кого? не мигают 2 раза в сек. и не сохраняет первое значение​
есть подозрение, что появился из-за нуля в часах, т.к. в коде поставил перед ним, возможно нужно будет полностью перезаписать ESP.
На GyverBME280 думаю можно заменить, в описании поддерживает оба датчика.​
... до вечера откладываю)
 

Romshteks

✩✩✩✩✩✩✩
13 Май 2020
43
4
На GyverBME280 думаю можно заменить
Нужно.
Да и 18Б20 тоже на отечественную библиотеку переводите.
Баг с точками пока не исправил
А вы попробуйте объявить переменную ,которая отвечает за период свечения часовых точек, в функции где она работает.
 
Изменено:

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
А вы попробуйте объявить переменную ,которая отвечает за период свечения часовых точек, в функции где она работает.
я вот тоже об этом думал, вчера, но что-то сомневаюсь, проверю, раз не только у меня эта мысль)
в планах было такое, у Алекса есть microDS18B20, вот только она вроде на ардуино...