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

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

  • BMP280

    Голосов: 23 29.1%
  • BME280

    Голосов: 56 70.9%

  • Всего проголосовало
    79
[BigClock] Большие часы на WS2812, ESP8266, Народный мониторинг
Создаю отдельную тему по разработке прошивки на базе NodeMCU.

Мой проект сделан на ДВП, на нее наклеил ленту, объем цифрам сделал из сэндвич панели, поверх белый лист бумаги.
Корпус из дерева, покрашен акриловой краской, смесь белой и коричневой.

Данная прошивка проверяет время по NTP, часы RTC теоретически не нужны.
Барометр на базе BME280.
Имеется датчик освещенности и датчик DS18B20
Clock_схема.pngсхема пайки.jpgClock_схема3.jpg
Плата: NodeMCU 1.0 (ESP 12-E Module)
Если в качестве микроконтроллера вы используете Wemos D1 - в менеджере плат для компиляции все равно выбирайте "NodeMCU v1.0 (ESP-12E)", в противном случае, если выберете плату Wemos D1 (xxxx), - будет работать нестабильно.
Выбирайте ядро ESP версии 2.7.4.

ESP8266 (SDK v2.7+)

Необходимые библиотеки находим в репозитории программы IDE.
Настраиваем прошивку под себя, если нужно, меняем пароли для точки и OTA, WiFi можно не задавать.

Если не задавали настройки WiFi, то стартует точка, адрес стандартный 192.168.4.1 пароль по умолчанию administrator, задавать не менее 8 символов, иначе название точки не отобразится, а будет ее внутреннее имя, типа ESP12345.
Адрес портала http://clock.local/ или по IP адресу, выданному роутером.
Данные для OTA: имя: admin пароль: pass

Для подключения к сервису "Народный мониторинг" MAC адрес отображается на соответствующей странице, вводите этот адрес при регистрации устройства.

Новая версия на гитхаб, последние изменения и публикация свежих версий будет там)

Версия от 16.04.2023 CLOCK_ESP_2.0:
  • оптимизация под новый портал
  • переделано давление с инт на флоат для мониторинга
  • переделан интерфейс на UI
  • добавлена ручная синхронизация времени
  • заменена библиотека rtc на microDS3231
  • багфиксы)
  • добавлена в код точка, для десятичного знака уличной температуры
  • добавлена строка с версией прошивки
  • исправление даты
  • добавление DFPlayer, спасибо: @Maxx1200 и @Romshteks
  • добавлен режим с датой (номер 5)
  • обновлена библиотека EEManager (сбросятся настройки!!!)
  • добавлен режим с показом первого нуля в часах
  • добавлена возможность устанавливать цветовое оформление в настройках прошивки, визуальные правки
  • fix GMT
  • заменены библиотеки датчиков
  • визуальные правки
  • может что-то еще))
Проект на гитхаб со всеми библиотеками и mp3
  • Дофига изменений))
  • Появилась web страничка с настройками на базе GyverPortal.
  • Изменены библиотеки.
  • Переписан код, распределил по вкладкам.
исправлено:
  • баг со сменой цвета на последней цифре
добавлен
  • символ давления, включать в настройках
исправлено:
  • переделан вывод сегментов
  • переделана функция показа точек
добавлено:
  • выбор режима мигания секунд 1 и 2 раза в сек
  • можно вручную задать порядок отображения датчиков и время показа каждого датчика
  • откл. WiFi без мониторинга
  • корректировка показания датчиков
внедрение датчика BME280, добавлен режим влажности с возможностью включить символ проценты
[*]багфиксы
багфиксы
незначительные изменения кода (настройки под себя и комментарии)
  • все настройки вынесены в Constants, вроде:)
  • добавлен web сервер, для обновления через браузер, изначально прошить через кабель, потом можете вносить изменения под себя и обновляться через бинарный файл
  • добавлены библиотеки
  • изменение в коде, из-за выноса настроек:)
  • добавлен НГ режим :)
  • возможно исправлена анимация, про которую писали, с точками и цифрами :)
  • теперь при запуске часов идет проверка с датчика времени, и если все ОК, то запускаются часы без синхронизации
  • исправлена функция освещенности заменой switch на if/else
  • подправлен код с switch в других местах
Увидел в коде небольшую ошибку с НГ режимом, не важно, включен он или нет, все равно будет) только разными методами)
leds[cursor] = (digit & mask) ? CHSV(random(0, 255), random(0, 255), random(0, 255)) : CRGB (0, 0, 0);
leds[cursor] = (digit & mask) ? ledColor : CRGB (0, 0, 0);
  • исправлен НГ режим
  • отключена точка доступа за ненадобностью
  • оптимизирован код
  • выбор в настройках кол-во разделительных точек
  • можно запускать с RTC модулем и без него
  • изменена библиотека NTP
  • поправлен код :)
Внимание: у кого мигает первый светодиод, необходимо изменить ядро ESP на 2.7.4 (инструменты/Плата/Менеджер плат).
Новые версии нестабильные на октябрь 2021г.
 

Вложения

Изменено:

Комментарии

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
Хм) и как быть?) Даже если define заменить на int, ничего не изменится)
 

Maxx1200

★✩✩✩✩✩✩
11 Фев 2022
94
18
@ASM,
Вот тут что-то сказано про динамические массивы Тык

Ответ чат-GPT
Динамические массивы позволяют выделять память во время выполнения программы. Такой подход используется, когда размер массива неизвестен на момент компиляции или может меняться в процессе работы программы.

В Arduino IDE для работы с динамическими массивами можно использовать класс vector , который представлен в стандартной библиотеке языка C++. Для использования класса vector нужно подключить заголовочный файл <vector> .

Для создания динамического массива с помощью класса vector , нужно сначала создать объект класса, а затем вызвать метод resize , в котором указать желаемый размер массива:


#include <vector>

std::vector<int> dynamicArray; // объявляем динамический массив
dynamicArray.resize(10); // задаем размер массива


После этого можно обращаться к элементам массива так же, как и к элементам обычного массива:


dynamicArray[0] = 1;
dynamicArray[1] = 5;


Если вам нужно добавить элементы в конец массива, вы можете использовать метод push_back :


dynamicArray.push_back(8);


Чтобы получить текущий размер массива, используйте метод size :


int arraySize = dynamicArray.size();


Когда вы закончили работу с динамическим массивом, необходимо освободить память, которая была выделена с помощью метода resize . Для этого можно вызвать метод clear :


dynamicArray.clear(); // Освобождаем память, использованную динамическим массивом.
 
Изменено:

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
Ерунда какая-то) Видно автор FastLED не задумывал, что кто-то захочет настраивать кол-во СД вручную, а не задавать при компиляции)
Значит оставляю как есть) уж надеюсь больше не будем глобально что-то переделывать) Меня на данный момент прошивка устраивает на 99%) Всё работает отлично)
 
Изменено:

wulf

★✩✩✩✩✩✩
1 Дек 2022
169
22
не пойму у меня проблема с есп или нет .
дело такое после запуска не знаю через какое время есп вне доступа но работает исправно часы и датчики реагируют на изменения
может дело в ней то что есп у меня работает только от внешнего источника при прошивке через юсби нет питания
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@wulf, не понял. Если нет соединение через программу или выдает ошибку, удали устройство из списка и найди заново. Библиотека в процессе разработки. Делов на десять секунд) У меня никаких проблем больше не выявилось.
 

wulf

★✩✩✩✩✩✩
1 Дек 2022
169
22
@ASM,не с кодом проблем нет это похоже сама есп. Ана работает . бывает такое что на неё не зайти чтоб что-то изменить на часах ни с компа ни с телефона. Это мелоч закажу другую ;)
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
это похоже сама есп.
Поможет перезагрузка. На крайний случай обновление ядра есп.
Еще вариант: обновить прошивку часов не по воздуху,а с подключением к компу шнурком.При прошивке по ОТА обновляется только программа,а раздел с настройками остается старым.Вполне может что-то оттуда нагружать процессор еспшки,вот и нет подключения к ней.
 

wulf

★✩✩✩✩✩✩
1 Дек 2022
169
22
@Leon111_09,да ресет помагает. В новой ардуине не смотрел какое ядро. Да и не оч хочется в неё лезть неудобная ана какая-то
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
В новой ардуине не смотрел какое ядро.
Обновить ядро на есп не так тяжело как кажется-инфы по этому вопросу в инете вагон и маленькая тележка.Зато плюсов превеликое множество: как минимум стабильная,экономная работа. Ну,хозяин-барин :). Попробуйте второй вариант. Вполне может в разделе настроек накопилось много "паразитических" файлов/данных.И из-за них и идет не стабильная работа.Перепрошейте третьим пунктом(полная прошивка).
 

wulf

★✩✩✩✩✩✩
1 Дек 2022
169
22
@Leon111_09,вот кстати да в новой я не ставил полную прошивку
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
На сайте есть менеджер файлов. Вот там можно и отформатировать раздел. Зайдя на плату.
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
всё химичу корпус, решил печатать всё по отдельности и потом собирать на дихлорметан и винты
 

Вложения

  • 103.1 KB Просмотры: 33
  • 73.1 KB Просмотры: 32

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
решил печатать всё по отдельности и потом собирать
Делай по принципу адресной ленты ржб (на разъемах): с одной стороны вход,с другой-выход.В случае поломки будет намного легче ремонтировать: отключил один сегмент,перебрал и обратно подключил.
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
там платы стоять будут, на них уже пятаки для перемычек входа и выхода . Минимум пайки и шурупов.
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
DesignSpark Mechanical, сам ковыряю - все остальные модели не устраивают :)

DesignSpark Mechanical это обрезанная и бесплатная версия SpaceClaim
там я только взял то чтобы DSM (5 версия) запускался и интернет не требовал периодически

https://cloud.mail.ru/public/VdQm/EdPiXF8At проект (немного не закончен) можно скачать
 
Изменено:

wulf

★✩✩✩✩✩✩
1 Дек 2022
169
22
Нашол вот такое под ds18b20 для улицы себе уже повесил пока полёт нормальныйeeffd2b1e1408c2f9528170b5ac08ce2_preview_featured.jpg61388d626875593c96b7d8c77c42845f_preview_featured.jpgблин архив большой дома на компе пережму с телефона не могу

залил стл
 

Вложения

Изменено:

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
Кто пользуется ночным режимом, какие отзывы?) Я так думаю, надо переделать) обычный режим, если ставить, то минимум 10. Если ночной ставить на 1, то не сработает, т.к. минимум уже 10... Можно попробовать дополнительно обновлять переменную минимальной яркости, на ночной минимум. А после ночи возвращать обратно, считывая с настроек.
Завис на неделю с пазлами на 4000...

п.с. последняя версия хаба несовместима с текущей прошивкой, Саня переделал некоторые вещи, поэтому вручную не обновлять)
 
  • Лойс +1
Реакции: Leon111_09

wulf

★✩✩✩✩✩✩
1 Дек 2022
169
22
Вот как я выставил ночной режим полёт нормальныйScreenshot_2023-06-24-23-32-11-281_ru.alexgyver.GyverHub.jpg
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
Обновление прошивки до текущей версии GyverHub, для тех, кто не меняет настройки, может обновить автоматически, после подтверждения, при заходе на сайт)
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
приступаю к тестированию ! :)
это маленькая версия (1 светик на сегмент, высота платы 100мм) и будет больше (2светика на сегмент, высота разряда 120 мм)
 

Вложения

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

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
Никак не победить мигание точек)
даже case заменил на if, в надежде, что компилятор видит break и забывает помигать точками))

Никто не отписался о нерабочей вкладке плеера)
09.07.23 обновил до v1.2
 
Изменено:
  • Лойс +1
Реакции: maksland

wulf

★✩✩✩✩✩✩
1 Дек 2022
169
22
решил обновить :ROFLMAO:
C++:
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino: In function 'void BrightnessCheck()':
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:4:30: error: 'other' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:7:7: error: 'other' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:7:28: error: 'hour' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:8:5: error: 'LEDS' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:12:22: error: 'bright_timer' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:16:13: error: 'new_bright' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:16:42: error: 'BRI_PIN' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:18:13: error: 'new_bright' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:18:42: error: 'BRI_PIN' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:22:13: error: 'new_bright' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:22:41: error: 'BRI_PIN' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:24:13: error: 'new_bright' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:24:41: error: 'BRI_PIN' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:27:9: error: 'LEDS' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:27:28: error: 'new_bright' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BrightnessCheck.ino:29:12: error: 'LEDS' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BigClock.ino: At global scope:
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BigClock.ino:20:1: error: 'DFPlayer' does not name a type
In file included from c:\Users\user\Documents\Arduino\libraries\FastLED\src/FastLED.h:75:0,
                 from C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\BigClock.ino:21:
c:\Users\user\Documents\Arduino\libraries\FastLED\src/fastspi.h:157:23: note: #pragma message: No hardware SPI pins defined.  All SPI access will default to bitbanged output
 #      pragma message "No hardware SPI pins defined.  All SPI access will default to bitbanged output"
                       ^
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\Kukushka.ino: In function 'void DFPlayer_setup()':
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\Kukushka.ino:55:3: error: 'mp3' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\Kukushka.ino: In function 'void DFPlayer()':
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\Kukushka.ino:75:7: error: 'mp3' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\Kukushka.ino: In function 'void Vremy()':
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\Kukushka.ino:92:5: error: 'mp3' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\Kukushka.ino: In function 'void Utro()':
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\Kukushka.ino:109:5: error: 'mp3' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\Kukushka.ino: In function 'void Vecher()':
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\Kukushka.ino:122:5: error: 'mp3' was not declared in this scope
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\hub.ino: In function 'void build()':
C:\Users\user\Desktop\Новая папка (3)\firmware\BrightnessCheck\hub.ino:160:11: error: 'mp3' was not declared in this scope

exit status 1

Compilation error: 'other' was not declared in this scope
😢
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
1.JPG2.JPG корпус полностью печатный (исходник DesignSpark Mechanical 5.0 )
версия v1.2 и не могу зайти в точку доступа по 192.168.4.1
какие отличия между 1.2 и 2.0 ? что самое актуальное ?
ПРЕДУПРЕЖДЕНИЕ: библиотека FileData должна запускаться на архитектурах ESP8266, ESP32 и может быть несовместима с вашей платой на архитектуре esp8266.
Executable segment sizes:
IROM : 473632 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 30520 / 32768 - code in IRAM (ICACHE_RAM_ATTR, ISRs...)
DATA : 1500 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 3820 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 28656 ) - zeroed variables (global, static) in RAM/HEAP
Скетч использует 509472 байт (48%) памяти устройства. Всего доступно 1044464 байт.
Глобальные переменные используют 33976 байт (41%) динамической памяти, оставляя 47944 байт для локальных переменных. Максимум: 81920 байт.
как в часы попадать когда они к wifi подключены ? с телефона не могу попасть
по IP вообще никак не могу
гайвер порталом как пользоваться правильно ?
 
Изменено: