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

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

  • BMP280

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

    Голосов: 71 73.2%

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

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@ASM, если у вас что-то нестабильно - то возможных причин две - проблема в коде, проблема с передачей сигнала - решений тоже два - проблемный код переписать можно, а в случае проблем с сигналом WiFi - либо переместить модуль поближе, либо использовать внешнюю антенну.
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@kDn, между роутером и ESP два метра в одном помещении) с кодом непонятно, что может быть не так) надо подключать к ПК и мониторить сериал порт, может что-то выдаст полезное)

Подправил чуток код) Посмотрим, что выйдет)

На затравку, есть идея сделать проект на светодиодной RGB матрице 64х32 с ESP32
Размеры матрицы: шаг светодиодов
2.5 => 160мм х 80мм х 15мм
3 => 192мм x 96мм х 15мм
4 => 256мм x 128мм х 15мм
5 => 320мм x 160мм х 15мм
На Р5 думаю самое то) что думаете?)
 
Изменено:

kamikadzze

✩✩✩✩✩✩✩
3 Ноя 2020
23
1
Добрый вечер. Собрал часы с 6 диодами в сегменте. По этому задумался по поводу точек. Хотелось бы по 3 диода на разделительные точки сделать. Но не нашел где в коде это прописать. Подскажите где изменить количество диодов в точке
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@kamikadzze,я думаю не нужно, оно само считается) попробуй, что получится, такого еще не было)
ссори, похоже я не прав, тогда 6 точек выходит
 

kamikadzze

✩✩✩✩✩✩✩
3 Ноя 2020
23
1
В настройках менял на 6 точек, эффект не тот. Начинается сдвиг по пикселям
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@kamikadzze, 174 диода?

тогда думаю тут косяк)
#define LEDS_IN_SEGMENT 6 // задаём сколько у нас светодиодов в сегменте
#define DOTS_NUM 6 // задаём сколько у нас разделительных точек
segment_4 = NUM_LEDS - LEDS_IN_SEGMENT * 7;
segment_3 = NUM_LEDS - LEDS_IN_SEGMENT * 14;
segment_2 = NUM_LEDS - LEDS_IN_SEGMENT * 21 - DOTS_NUM;
segment_1 = NUM_LEDS - LEDS_IN_SEGMENT * 28 - DOTS_NUM;
dot_1 = LEDS_IN_SEGMENT * 14;
dot_2 = (LEDS_IN_SEGMENT * 14) + 1;

у кого хорошо с математикой, напишите как правильно, голова сейчас не варит)
в нашем варианте каждый диод по точке.
надо на 6 точек разбить, чтобы мигали 6 диодов)
 
Изменено:
  • Лойс +1
Реакции: kamikadzze

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@kym13, да я понял где косяк)

у кого есть шаблон готовый, чтобы интегрировать в код, думаю полезная вещь будет)
можно многие настройки вынести, чтобы не прошивать заново, чтобы поменять конфиг)
 

Вложения

Изменено:

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@kamikadzze, можно сделать проще, дописать
dot_2 = (LEDS_IN_SEGMENT * 14) + 1;
dot_3 = (LEDS_IN_SEGMENT * 14) + 2; и т.д.

и в коде где встречаются dot_1 и т.д. дописать новые, должно работать)
там немного где дописать надо)
в функции void Dots
и дописать тут
byte segment_1, segment_2, segment_3, segment_4, dot_1, dot_2;
 

Divin

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

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@Divin, да, я наподобие думал. Будет культурнее, по цене вроде не многим дороже. 1600-1800 матрица и 300-400 esp, БП наверное 300, или уже есть в наличии. 3А за глаза)
Единственная сложность, это непонятно, как код писать) Как это всё работает)
Ну и корпус надо делать, может желающие будут, придётся не только для себя делать)
 

Divin

★★★★✩✩✩
30 Янв 2021
458
204
@ASM, код есть в описании видео, думаю вы сможете его исправить после индусов :) а корпус сделать не проблема, хоть настольный хоть настенный вариант, я и говорил матрица не очень дорогая, но доставка!
 
Изменено:

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@Divin, syncTime(); надо, такая функция есть в коде, если не удалял)

Матрица без платной доставки 1800 примерно, можно подвести под 1000/2000 и взять по хорошей цене)
 

Divin

★★★★✩✩✩
30 Янв 2021
458
204
@ASM, Да я не в России живу, поэтому и доставка такая конская, все что тяжелее 100 грамм, ценник на доставку конский.
функция вроде есть
:sketch.png
 

Divin

★★★★✩✩✩
30 Янв 2021
458
204
@ASM, именно так в скетче вот кусок кода оригинального - без изменений:
C++:
  DateTime now = rtc.now();
  long unix = now.unixtime();
  if (unix > 1640822400) {
    Serial.println("Время корректно!");
  }
  else {
    Serial.println("Некорректное время, старт синхронизации!");
    syncTime();
  }
}
/////////////////////////////////////////////
 

ASM

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

Divin

★★★★✩✩✩
30 Янв 2021
458
204
Если у вас нет RTC, вместо всего этого
C++:
long unix = now.unixtime();
if (unix > 1640822400) {
Serial.println("Время корректно!");
}
else {
Serial.println("Некорректное время, старт синхронизации!");
syncTime();
}
надо оставить только
syncTime();
но работать будет только при хорошем постоянном инете
@ASM, сделал согласно цитируемому сообщению
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@Divin, так написано правильно, выполнено не правильно)
Выделить код и удалить всё в точности, и на этом месте вставить syncTime();
 

Divin

★★★★✩✩✩
30 Янв 2021
458
204
@ASM, так стоит же вот код с изменениями
C++:
  dot_1 = LEDS_IN_SEGMENT * 14;
  dot_2 = (LEDS_IN_SEGMENT * 14) + 1;
  DateTime now = rtc.now();
      syncTime()
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@Divin, судя по скрину, была лишняя фигурная скобка, которую видно оставил, вместе с syncTime();

Это всё удалить и написать правильно syncTime();
 

Вложения

  • Лойс +1
Реакции: Divin

Divin

★★★★✩✩✩
30 Янв 2021
458
204
@ASM, Может я скина вам свой скетч в личку и вы отредактируете его правильно? ибо все равно выдает ошибку.
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
Вот такой набросок сделал, вроде неплохо))
IMG_20220216_214316.jpg
Выкатил обнову, за два дня сбоев не было))
Теперь надо разбирать с клиентом и PROGMEM, чтобы можно было управлять с телефона)
Потом уходить на матрицу))
 
Изменено: