GyverLamp+LCD+метеодатчики на Blynk

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

GyverLamp+LCD+метеодатчики на Blynk

Сообщение Mozgoklui »

Привет всем.
Загорелся собрать два ночника в спальню на базе проекта Гайвера. Только решил добавить туда датчики (CO2 MH-Z19B, температура и влажность GY21), отображать часы и показания датчиков на дисплее LCD 0.96 с отправкой данных на Blynk. Ну и управление лампой тоже через Blynk. Еще планируется сенсорная кнопка сверху, но пока без нее. В основании лампы кроме экрана предусмотрены два порта USB для зарядки телефонов.
Основание лампы и верхняя крышка - печать на 3d принтере, вот концепт:
[spoiler]
_2020-Feb-02_09-17-58AM-000_CustomizedView11382509921.jpg
_2020-Feb-02_09-13-28AM-000_CustomizedView30875145962.jpg
_2020-Feb-02_08-43-04AM-000_CustomizedView18928698144.png
[/spoiler]
Схема подключения всего барахла: [spoiler]
Буфер обмена01.jpg
[/spoiler]
Создал проект в flprog, очень помогли в этом блоки матрицы от [ref]edyapd[/ref] и блоки по работе с дисплеем [ref]aidar_i[/ref], за что им огромное спасибо.
Flprog версия 6.2.2 по ссылке Эдуарда, IDE 1.8.10
Проблема заключается в том, что если я загружаю проект только по работе с матрицей (на библиотеке FastLED), то матрица работает, blynk тоже без проблем, вот проект:
n_matrix.flp
если загружаю проект по работе с LCD и датчиками (без матрицы), то тоже все работает, данные датчиков отображаются на дисплее и всё подключено к blynk, вот проект:
n_lcd_gy21_mhz19b.flp
Но если я хочу совместить эти два проекта в один, то микроконтроллер виснет и не работает, дисплей молчит, blynk показывает циклический connect-disconnect. И не работает прошивка МК через OTA, теперь только по usb.
Вот сборный проект:
n_all.flp
Питание обеспечивает хороший БП 20W 5v, специально купил в магазине радиотехники.
В чем может быть причина или что я делаю не так?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

GyverLamp+LCD+метеодатчики на Blynk

Сообщение edyapd »

Пока сильно не вникал. Из того, что вижу.
1. Плата на рисунке у вас перевёрнута, но надеюсь подключение вы делали не по этому рисунку.
2. Тянуть землю через плату не стоит не при каких подключения. То есть, GND должна подходить ко всем датчикам, а особенно к Матрице минуя плату.
Но это так, можно сказать придирки.
Далее, скачайте себе вот этот рисунок и прежде чем подключить какой-либо пин как вход, всегда сверяйтесь с ним.
[spoiler=Схема NodeMCU]
NodeMCU-schematic-diagram.jpg
[/spoiler]

К примеру, я вижу, что у вас считывается с датчика СО2 через D3. Это GPIO0. При рестарте это вход должен находится в определённом состоянии.
По проекту посмотрю позже.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

GyverLamp+LCD+метеодатчики на Blynk

Сообщение Mozgoklui »

edyapd писал(а): 02 фев 2020, 14:00 1. Плата на рисунке у вас перевёрнута, но надеюсь подключение вы делали не по этому рисунку.
точно, картинка перевернута, но не суть, названия пинов правильные.
edyapd писал(а): 02 фев 2020, 14:00 2. Тянуть землю через плату не стоит не при каких подключения. То есть, GND должна подходить ко всем датчикам, а особенно к Матрице минуя плату.
Согласен, знаю это, тупо нарисовал не так как есть на самом деле, "срезал путь" так сказать. Земля у меня приходит от БП на пин G тот что рядом с VIN, и туда же все "земли" от всех элементов.

Отправлено спустя 1 час 16 минут 26 секунд:
edyapd писал(а): 02 фев 2020, 14:00 считывается с датчика СО2 через D3. Это GPIO0
переставил на D5 безрезультатно.
картинка для меня довольно сложная, я не очень понимаю что я там должен увидеть. На каком-то форуме взял картинку для гарантированно надежной работы подключенных элементов, вот стараюсь по ней подключать
[spoiler]
NodeMCU_GPIO_number_gpio.jpg
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

GyverLamp+LCD+метеодатчики на Blynk

Сообщение aidar_i »

Для начала сделайте так[spoiler]
Снимок_2020_02_02_19_27_39_844.png
[/spoiler]
Второй OR поставлен, чтобы очистка дисплея при компиляции стояла раньше.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось aidar_i 02 фев 2020, 18:00, всего редактировалось 1 раз.
Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

GyverLamp+LCD+метеодатчики на Blynk

Сообщение Mozgoklui »

aidar_i писал(а): 02 фев 2020, 17:19 Для начала сделайте так
готово. На работоспособность не повлияло.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

GyverLamp+LCD+метеодатчики на Blynk

Сообщение aidar_i »

Матрица с датчиками без дисплея работает?
И delay(1) попробуйте убрать.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

GyverLamp+LCD+метеодатчики на Blynk

Сообщение edyapd »

Mozgoklui писал(а): 02 фев 2020, 16:41 я не очень понимаю что я там должен увидеть
Там где написано "matters needing attention", указано, какое состояние должно быть на пинах при каждой загрузке, ресет или просыпании. Если эти пины используются как выход и никуда не подтянуты, то это нормально. Если же их использовать как вход, то надо следить, чтобы при ресет там были нужные уровни.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

GyverLamp+LCD+метеодатчики на Blynk

Сообщение aidar_i »

Нужно определить , что чему мешает, путем исключения сперва физически, потом с проекта, компонентов.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

GyverLamp+LCD+метеодатчики на Blynk

Сообщение edyapd »

[ref]Mozgoklui[/ref], какую библиотеку вы используете для Blynk? Хочу попытаться закинуть в свою NodeMCU, но нет библиотеки. Дайте ссылку.
Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

GyverLamp+LCD+метеодатчики на Blynk

Сообщение Mozgoklui »

edyapd писал(а): 02 фев 2020, 18:51 какую библиотеку вы используете для Blynk?
у меня их две
[spoiler]
BlynkESP8266_Lib.zip
Blynk.zip
[/spoiler]
блоки использую эти:
[spoiler]
Отправка_string_в__Blynk_(CODE).ubi
Отправка_integer_в_Blunk_(CODE).ubi
Отправка_float_в__Blynk_(CODE).ubi
Из_Blynk_Integer_(CODE).ubi
Из_Blynk_boolean_(CODE).ubi
OTA_Blynk_(CODE).ubi
Blynk_ESP_BASE_(CODE).ubi
[/spoiler]
[ref]aidar_i[/ref], я ошибся. Внес изменения как вы сказали и кое-как заработало. Просто в первый раз не настроен был главный блок blynk. Но управление матрицей страшно тормозит и ошибается (например при изменении яркости она меняется хаотично с тормозами). При этом любое действие с кнопками или ползунками Blynk вызывает моргание и дисплея. А если сильно часто понажимать, то все зависло и никакой ресет не помог, пока не залил прошивку заново. Но уже что-то.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

GyverLamp+LCD+метеодатчики на Blynk

Сообщение aidar_i »

Попробуйте отключить в программе вход С матрицы. Остальное как работает?
Мне кажется матрица конфликтует со скоростным счетчиком.
Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

GyverLamp+LCD+метеодатчики на Blynk

Сообщение Mozgoklui »

aidar_i писал(а): 02 фев 2020, 19:25 Попробуйте отключить в программе вход С матрицы.
Не очень понял, это какой вход?
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

GyverLamp+LCD+метеодатчики на Blynk

Сообщение aidar_i »

Вход С блока FastLed faire1.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

GyverLamp+LCD+метеодатчики на Blynk

Сообщение edyapd »

[ref]Mozgoklui[/ref], глянул проект. По хорошему надо всё переделывать заново.
Вот например два места из проекта, которые я бы точно сделал по другому:

ИзображениеИзображение

У вас при каждом изменении идёт запись в EEPROM. А на втором рисунке в каждом цикле считывается EEPROM в переменную.
Как сделал бы я. При старте программы проверил, что EEPROM инициализирована. Если да, то считал из неё данные в переменные. После этого вся работа только с этими переменными. При выключении сохранение этих переменных в EEPROM. В крайнем случаи можно сделать сохранение через определённое время после последнего изменения. Скажем изменили какую-то переменную, которая должна быть сохранена в EEPROM, поставили таймер на 30-60 секунд. Если за это время никаких изменений не было, то сохраняем переменную, если были изменения, то срабатывание таймера отодвигается снова на заданное время.
Если EEPROM не инициализирована, то произвёл запись в переменные по умолчанию.
Далее, я вижу что вы выводите значения на дисплей тоже в каждом цикле. Возможно стоит сделать так, чтобы значения выводились только после очистки. Так как дисплей вполне сохраняет введённые данные без обновления.
Скоростной счётчик, тоже работает у вас без остановки. Навряд ли у вас меняется содержание СО2 каждую секунду. По моему вполне можно сделать один замер в 2 сек.
Вот по Blynk рекомендаций дать не могу. Нет его у меня. Но тоже помнится с ним были какие-то тормоза, даже когда просто пытались сделать виртуальную кнопку.
Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

GyverLamp+LCD+метеодатчики на Blynk

Сообщение Mozgoklui »

edyapd писал(а): 02 фев 2020, 20:33 При старте программы проверил, что EEPROM инициализирована.
хорошо, менять так менять. А что есть инициализация EEPROM? Я думал пиши или читай с нее, больше и блоков нет в flprog. По сути устройство предполагается быть включенным круглосуточно, возможно и вообще обойдусь без сохранения настроек в еепром. Просто пока отладка идет, надоело после каждого рестарта клацать все эти ползунки пока не сработает матрица
Последний раз редактировалось Mozgoklui 02 фев 2020, 22:08, всего редактировалось 1 раз.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

GyverLamp+LCD+метеодатчики на Blynk

Сообщение aidar_i »

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

Отправлено спустя 31 минуту 42 секунды:
Попробуйте загрузить
pr8.ino
Не забудьте свои данные поставить в блинк сюда
char auth_91371725_1[] = "";
char ssid_91371725_1[] = "";
char pass_91371725_1[] = "";
У вас нет необходимых прав для просмотра вложений в этом сообщении.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

GyverLamp+LCD+метеодатчики на Blynk

Сообщение edyapd »

Mozgoklui писал(а): 02 фев 2020, 22:07 А что есть инициализация EEPROM?
Примерно так.
Init_EEPROM.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

GyverLamp+LCD+метеодатчики на Blynk

Сообщение Mozgoklui »

[ref]aidar_i[/ref], уже намного лучше, но все равно при активном юзании настроек огня МК перезапускается. Однако лучше. Что конкретно было не в правильном порядке?
И кстати, как оптимальнее всего создать паузу считывания данных температуры и влажности? Уж больно бойкий этот датчик, явно прослеживаются рывки в момент прихода данных с него и отправки в экран/blynk. Какими блоками лучше настроить частоту обновления?

Отправлено спустя 1 час 30 минут 7 секунд:
[ref]edyapd[/ref], спасибо, очень круто, понял как работает, буду применять. Сейчас для исключения проблемы вообще уберу eeprom из проекта.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

GyverLamp+LCD+метеодатчики на Blynk

Сообщение aidar_i »

В сетап , скомпилируй и сравни с моим, должен увидеть.
Я в скетче delay(1) не убирал, убери только его, остальные не трогай.
Обрати внимание на эти строки, они должны быть в декларации и не включать в себя строки из сетап.

Код: Выделить всё

BLYNK_WRITE(V0) // запрос данных с датчика
{
 out_105346681_2 = param.asInt();
}
BLYNK_WRITE(V1) // запрос данных с датчика
{
 out_252228968_4 = param.asInt();
}
BLYNK_WRITE(V3) // запрос данных с датчика
{
 out_252228968_1 = param.asInt();
}
BLYNK_WRITE(V2) // запрос данных с датчика
{
 out_252228968_5 = param.asInt();
}
BLYNK_WRITE(V4) // запрос данных с датчика
{
 out_252228968_3 = param.asInt();
}
Отправлено спустя 19 минут 7 секунд:
Убрал сам делау
pr8.zip
Отправлено спустя 2 минуты 16 секунд:
Mozgoklui писал(а): 03 фев 2020, 18:52 как оптимальнее всего создать паузу считывания данных температуры и влажности?
Определись как часто нужно это! я думаю секунды это мало, нужно от 1 до 5 минут или больше. У нас температуру смотреть каждую секунду нет необходимости.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11 окт 2019, 23:19
Имя: Виталий

GyverLamp+LCD+метеодатчики на Blynk

Сообщение Mozgoklui »

[ref]aidar_i[/ref], а вы прямо в IDE правили или сами блоки blynka поправили? Просто я в IDE ноль без палочки, отличия-то я нашел, но вот каждый раз копипастить при загрузке в МК это то еще удовольствие.. А отлаживать еще долго предстоит. Хотелось бы в flprog бы, уж простите за назойливость :smile469:
Ответить

Вернуться в «Помогите, а то я "нимагу"»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя