ESP, IoT WiFi лампа-будильник. Обсуждение проекта

Сообщение изъято на правах администрации
ВНИМАНИЕ !!!
те кто живой и хочет увидеть ссылку на свое исполнение, прошу централизовать все свои доработки и сообщения. Далее в теме пишем сообщение с ссылкой на ваше сообщение (с проектом), с пометкой @mechanic .


В данной ветке обсуждаются только сия проект. Общие вопросы, доработки и проблемы, не относящиеся к конкретным прошивкам!. Вопросы по прошивкам решаем в темах самих прошивок. Здесь такие разговоры оффтоп.
Всякий любой вопрос не по теме сразу удаляется БЕЗ объяснения причины!
Для этого есть соответствующие ветки форума. Вопрос почему удалили мой пост? также удаляется.

  • Общаясь на форуме будьте взаимно вежливы!
  • Обратите внимание на то, что у нас принято говорить Спасибо путём повышения репутации, нажав на кнопочку
    .
  • Если есть претензии то нажмите кнопку .
  • Запрещено писать красным цветом в ваших постах - этот цвет только для Модераторов .
  • Вопросы, ответ на которые есть в шапке или в FAQ, будут удаляться. За повторный вопрос пользователь может быть наказан.
  • Убедительная просьба придерживаться тематики ветки, избегать флуда и оффтопа!
Очень часто при первом запуске лампы, при подключении к сети лампы не открывается менеджер сетей WIFI.
Помогает комментирование строки #define ESP_USE_BUTTON (отключение кнопки) и заливка скетча выставив Erase flash в All Flash Content
После того, как вы подключили лампу к сети эту строку можно раскомментировать и залить скетч с параметром Erase flash установленным в Only Sketh
Наш участник собрал много полезной информации по блокам питания для лампы. Качественное питание - необходимое условие надёжной работы любого устройства. Изучаем: https://community.alexgyver.ru/threads/nebolshoj-opus-po-bp-dlja-gyverlamp-wifi-lampa-budilnik.3523/

ВНИМАНИЕ! Если у вас не компилируется или не загружается скетч - значит вы сделали что-то неправильно. Специально для вас созданы две темы:
ESP8266, проблема с компиляцией скетча
ESP8266, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 

Комментарии

recoshet

★✩✩✩✩✩✩
15 Июн 2019
1
14
Сообщение изъято на правах администрации
ВНИМАНИЕ !!!
те кто живой и хочет увидеть ссылку на свое исполнение, прошу централизовать все свои доработки и сообщения. Далее в теме пишем сообщение с ссылкой на ваше сообщение (с проектом), с пометкой @mechanic .


В данной ветке обсуждаются только сия проект. Общие вопросы, доработки и проблемы, не относящиеся к конкретным прошивкам!. Вопросы по прошивкам решаем в темах самих прошивок. Здесь такие разговоры оффтоп.
Всякий любой вопрос не по теме сразу удаляется БЕЗ объяснения причины!
Для этого есть соответствующие ветки форума. Вопрос почему удалили мой пост? также удаляется.

  • Общаясь на форуме будьте взаимно вежливы!
  • Обратите внимание на то, что у нас принято говорить Спасибо путём повышения репутации, нажав на кнопочку
    .
  • Если есть претензии то нажмите кнопку .
  • Запрещено писать красным цветом в ваших постах - этот цвет только для Модераторов .
  • Вопросы, ответ на которые есть в шапке или в FAQ, будут удаляться. За повторный вопрос пользователь может быть наказан.
  • Убедительная просьба придерживаться тематики ветки, избегать флуда и оффтопа!
Очень часто при первом запуске лампы, при подключении к сети лампы не открывается менеджер сетей WIFI.
Помогает комментирование строки #define ESP_USE_BUTTON (отключение кнопки) и заливка скетча выставив Erase flash в All Flash Content
После того, как вы подключили лампу к сети эту строку можно раскомментировать и залить скетч с параметром Erase flash установленным в Only Sketh
Наш участник собрал много полезной информации по блокам питания для лампы. Качественное питание - необходимое условие надёжной работы любого устройства. Изучаем: https://community.alexgyver.ru/threads/nebolshoj-opus-po-bp-dlja-gyverlamp-wifi-lampa-budilnik.3523/

ВНИМАНИЕ! Если у вас не компилируется или не загружается скетч - значит вы сделали что-то неправильно. Специально для вас созданы две темы:
ESP8266, проблема с компиляцией скетча
ESP8266, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 

galgalg

★✩✩✩✩✩✩
11 Янв 2020
58
18
320dpi, 720х1280, 4.97 дюйма

Визуально непонятно положения (вкл - выкл) маленьких выключателей, например Запомнить состояние ...
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
Визуально непонятно положения (вкл - выкл) маленьких выключателей
Почему не понятно?
1585720609126.png

720 мало. Нужно хотя бы 800. один квадрат 50 писелей х 16 квадратов = 800 пикс
Есть программы для изменения разрешения и DPI
Поиграйтесь с ними
 

galgalg

★✩✩✩✩✩✩
11 Янв 2020
58
18
Ну желательно, например, чтобы подсветка кнопки или под кнопкой менялась ...

720 мало. Нужно хотя бы 800. один квадрат 50 писелей х 16 квадратов = 800 пикс
Есть программы для изменения разрешения и DPI
Поиграйтесь с ними
А по 45 пикселей нельзя сделать, а то у многих такое разрешение ...
 
Изменено:

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
а то у многих такое разрешение
Такое разрешение уже давным давно не у многих.
На экранах с нормальным разрешением (от 1024) потом на два квадрата сразу пальцем нажимаешь.
На таких экранах и 50 пикс. мало.
 

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
Такое разрешение уже давным давно не у многих.
У кого-нибудь есть доступ к статистике сайта по-приличней?
А то у меня вообще прикол какой-то с разрешением дисплеев популярных:
phones.jpg

@Koteyka, даже на планшетах так:
pad.jpg
 
Изменено:

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
Перезалил приложение
В настройки эффектов добавил переключатель "У меня стоковая прошивка", включать который нужно тем, кто использует стандартную прошивку от Gunner47
Сделал переключатели с видимым статусом Вкл/Выкл. В списке избранного видимые круги выбора.
Добавлена кнопка "Загрузить эффекты из файла" Нужно тестить. Пока не заметил боков, но возможно вылезут.

Конфетти,100,1,1,255,0
Огонь,100,1,1,255,1
Водопад,100,1,1,255,1
Радуга горизонтальная,100,1,1,50,0
Радуга вертикальная,100,1,1,50,0
Радуга диагональная,100,1,1,50,0
Смена цвета,1,10,1,1,0
Безумие 3D,1,100,100,1,0
Облака 3D,1,100,100,1,0
Лава 3D,1,100,100,1,0
Плазма 3D,1,100,100,1,0
Радуга 3D,1,100,100,1,0
Павлин 3D,1,100,100,1,0
Зебра 3D,1,100,100,1,0
Лес 3D,1,100,100,1,0
Океан 3D,1,100,100,1,0
Цвет,70,70,1,255,1
Снегопад,100,1,1,100,0
Метель,100,1,100,1,0
Звездопад,100,1,100,1,0
Матрица,100,1,1,100,0
Светлячки,100,1,1,40,0
Светлячки со шлейфом,100,1,1,100,0
Пейнтбол,100,1,1,100,0
Блуждающий кубик,100,1,1,255,0
Аквариум,255,1,1,255,1
Пульс,100,1,1,100,0
Комета,100,1,1,100,2
Белый свет,100,1,1,100,0
Прыгающие мячики,100,1,1,16,0
Бегущая строка,100,1,1,255,1

Как и раньше через запятую - Название, макс. скорость, мин. скорость, макс. масштаб, мин. масштаб, кольцо градиента на масштабе (1-есть 0-нет 2-только для кометы, там до 50 разные цвета, потом выбранные)
Если мин. скорость или мин. масштаб больше чем макс. значит регулятор работает в реверсе. Если равны, то не используется

ПРИЛОЖЕНИЕ

1585737611690.png
 
  • Лойс +1
Реакции: Сотнег и Shaitan

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
а почему нельзя взять min(width,height)/16
Там не так все просто.
Приложения работают с DPI экрана, а не с пикселями. Все размеры объектов задаются в dpi
Если сделать так, то размеры сетки будут у каждого разные и соответственно координаты отслеживания будут другими. Получится, что под каждый экран нужно писать код. Поэтому пришлось жестко вбить размеры, жертвуя экранами с малым разрешением.
Еще раз говорю, используйте софт для смены разрешения и DPI
Для примера, вот кусочек кода, который прорисовывает ячейки
Java:
                if(event.getX()>0 && event.getX()<50 && event.getY()>0 && event.getY()<50){imageView1.setBackgroundColor(myColor); OutputMess="DRW;0;15";SendData();}if(event.getX()>50 && event.getX()<100 && event.getY()>0 && event.getY()<50){imageView2.setBackgroundColor(myColor);OutputMess="DRW;1;15";SendData();}
                if(event.getX()>100 && event.getX()<150 && event.getY()>0 && event.getY()<50){imageView3.setBackgroundColor(myColor); OutputMess="DRW;2;15";SendData();}if(event.getX()>150 && event.getX()<200 && event.getY()>0 && event.getY()<50){imageView4.setBackgroundColor(myColor);OutputMess="DRW;3;15";SendData();}
                if(event.getX()>200 && event.getX()<250 && event.getY()>0 && event.getY()<50){imageView5.setBackgroundColor(myColor); OutputMess="DRW;4;15";SendData();}if(event.getX()>250 && event.getX()<300 && event.getY()>0 && event.getY()<50){imageView6.setBackgroundColor(myColor);OutputMess="DRW;5;15";SendData();}
                if(event.getX()>300 && event.getX()<350 && event.getY()>0 && event.getY()<50){imageView7.setBackgroundColor(myColor); OutputMess="DRW;6;15";SendData();}if(event.getX()>350 && event.getX()<400 && event.getY()>0 && event.getY()<50){imageView8.setBackgroundColor(myColor);OutputMess="DRW;7;15";SendData();}
                if(event.getX()>400 && event.getX()<450 && event.getY()>0 && event.getY()<50){imageView9.setBackgroundColor(myColor); OutputMess="DRW;8;15";SendData();}if(event.getX()>450 && event.getX()<500 && event.getY()>0 && event.getY()<50){imageView10.setBackgroundColor(myColor);OutputMess="DRW;9;15";SendData();}
                if(event.getX()>500 && event.getX()<550 && event.getY()>0 && event.getY()<50){imageView11.setBackgroundColor(myColor); OutputMess="DRW;10;15";SendData();}if(event.getX()>550 && event.getX()<600 && event.getY()>0 && event.getY()<50){imageView12.setBackgroundColor(myColor);OutputMess="DRW;11;15";SendData();}
                if(event.getX()>600 && event.getX()<650 && event.getY()>0 && event.getY()<50){imageView13.setBackgroundColor(myColor); OutputMess="DRW;12;15";SendData();}if(event.getX()>650 && event.getX()<700 && event.getY()>0 && event.getY()<50){imageView14.setBackgroundColor(myColor);OutputMess="DRW;13;15";SendData();}
                if(event.getX()>700 && event.getX()<750 && event.getY()>0 && event.getY()<50){imageView15.setBackgroundColor(myColor); OutputMess="DRW;14;15";SendData();}if(event.getX()>750 && event.getX()<800 && event.getY()>0 && event.getY()<50){imageView16.setBackgroundColor(myColor);OutputMess="DRW;15;15";SendData();}
                if(event.getX()>0 && event.getX()<50 && event.getY()>50 && event.getY()<100){imageView17.setBackgroundColor(myColor); OutputMess="DRW;0;14";SendData();}if(event.getX()>50 && event.getX()<100 && event.getY()>50 && event.getY()<100){imageView18.setBackgroundColor(myColor);OutputMess="DRW;1;14";SendData();}
                if(event.getX()>100 && event.getX()<150 && event.getY()>50 && event.getY()<100){imageView19.setBackgroundColor(myColor); OutputMess="DRW;2;14";SendData();}if(event.getX()>150 && event.getX()<200 && event.getY()>50 && event.getY()<100){imageView20.setBackgroundColor(myColor);OutputMess="DRW;3;14";SendData();}
                if(event.getX()>200 && event.getX()<250 && event.getY()>50 && event.getY()<100){imageView21.setBackgroundColor(myColor); OutputMess="DRW;4;14";SendData();}if(event.getX()>250 && event.getX()<300 && event.getY()>50 && event.getY()<100){imageView22.setBackgroundColor(myColor);OutputMess="DRW;5;14";SendData();}
                if(event.getX()>300 && event.getX()<350 && event.getY()>50 && event.getY()<100){imageView23.setBackgroundColor(myColor); OutputMess="DRW;6;14";SendData();}if(event.getX()>350 && event.getX()<400 && event.getY()>50 && event.getY()<100){imageView24.setBackgroundColor(myColor);OutputMess="DRW;7;14";SendData();}
                if(event.getX()>400 && event.getX()<450 && event.getY()>50 && event.getY()<100){imageView25.setBackgroundColor(myColor); OutputMess="DRW;8;14";SendData();}if(event.getX()>450 && event.getX()<500 && event.getY()>50 && event.getY()<100){imageView26.setBackgroundColor(myColor);OutputMess="DRW;9;14";SendData();}
                if(event.getX()>500 && event.getX()<550 && event.getY()>50 && event.getY()<100){imageView27.setBackgroundColor(myColor); OutputMess="DRW;10;14";SendData();}if(event.getX()>550 && event.getX()<600 && event.getY()>50 && event.getY()<100){imageView28.setBackgroundColor(myColor);OutputMess="DRW;11;14";SendData();}
                if(event.getX()>600 && event.getX()<650 && event.getY()>50 && event.getY()<100){imageView29.setBackgroundColor(myColor); OutputMess="DRW;12;14";SendData();}if(event.getX()>650 && event.getX()<700 && event.getY()>50 && event.getY()<100){imageView30.setBackgroundColor(myColor);OutputMess="DRW;13;14";SendData();}
                if(event.getX()>700 && event.getX()<750 && event.getY()>50 && event.getY()<100){imageView31.setBackgroundColor(myColor); OutputMess="DRW;14;14";SendData();}if(event.getX()>750 && event.getX()<800 && event.getY()>50 && event.getY()<100){imageView32.setBackgroundColor(myColor);OutputMess="DRW;15;14";SendData();}
Это только две строки блока прорисовки, т.к. форум не дает вставить больше текста
А еще есть очистка каждой ячейки, определение переменной для нее, инициализация каждой ячейки и т.д.
Можете представить, сколько нужно переписать, чтобы изменить координаты ячейки хоть на 1 dpi
 
Изменено:

otishe

✩✩✩✩✩✩✩
11 Мар 2020
3
0
@Сотнег, я просто собрал что бы начать что то понимать, а сейчас не понимаю, даже попытка отладки не удалась, я уже даже начал задумыватся есть ли лимит на количество прошивок в микросхеме :)
Прошивка может и актуальная но приложение не в плеймаркете, у меня смартфон для экспериментов есть, а у остальных на установку из неизвестных источников начинает ругаться какие то их приложения, хотелось бы сделать процесс управления максимально простым для домашних.
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
а у остальных на установку из неизвестных источников начинает ругаться какие то их приложения
Это легко отключается в любом телефоне без дополнительного софта или каких-то специальных разрешений.
Телефон сам предложит перейти к настройкам и отключить блокировку.
 

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
@otishe, всё равно придётся.
А в "начинает ругаться какие то их приложения" не верю.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Для примера, вот кусочек кода, который прорисовывает ячейки
Я может не настоящий сварщик, но ИМХО что-то в данном коде не так... 100500 строк с одинаковой логикой это подход неправильный.
Ну и в общем-то мне лично сложно понять - в чем проблема ввести коэффициент масштабирования в зависимости от дпи и перерисовывать, обсчитывать с учетом этого коэффициента. Надеяться что кто-то будет играться с дпи на своем устройстве ради того чтобы подогнать размеры приложения по моему несколько наивно, скорее всего просто не будет использовать то, чем пользоваться неудобно.

* Прошу спокойно воспринимать критику, и спасибо за работу.
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
в чем проблема ввести коэффициент масштабирования в зависимости от дпи
Я месяц работал над этим. Не получается. У экранов нет стандартов ДПИ. У одних может быть 320, у других 325 и даже 323 и т.д.
Как не вычисляй, все равно не получается угадать всё. В лучшем случае, половина будет прорисовываться нормально, а к концу сдвигается.
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
можно было просто написать что помочь не можете. спасибо
Дай 25$ и я выложу на плеймаркет.
Или ты думаешь, что это бесплатно можно сделать?
Выложить приложение на плеймаркет стоит 25 у.е.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
У экранов нет стандартов ДПИ. У одних может быть 320, у других 325 и даже 323 и т.д.
А зачем вам вообще DPI? Какое вообще отношение это имеет к вашей задаче? DPI это - размер экрана в дюймах, поделенный на количество строк. Нифига не информативно для рисования сетки. Вам же нужно получить от системы реальное разрешение экрана, и поделить эго на количество элементов, получаете количество пикселей на элемент. А как и у кого это будет отображаться - вообще не должно вас волновать. Вообще не понятно в чем тут проблема. ИМХО.
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
DPI это - размер экрана в дюймах, поделенный на количество строк.
DPI это количество точек на дюйм. При чем тут строки?
Все размеры в андроид выставляются в DPI. а не в пикселах.
Вот один и тот же экран при разных DPI

1585749552680.png 1585749789679.png 1585749621739.png

Но в случае, по которому завелся спор, у человека разрешение экрана 740 пикс в ширину.
Для сетки в режиме рисования нужно минимум 800, т.к. ячейки пересчитаны в пиксели и смена DPI не поможет при таком разрешении.
Делать размер ячейки в DPI не получается, т.к. координаты расположения приложение всё равно считывает по пикселям и данные на разных экранах будут разными.
Короче, я задолбался распинаться. Кто умный, пусть сделает сетку для рисования, подходящую под все экраны и чтобы на экранах с большим разрешением не нажималось сразу несколько точек, а я посмотрю.
А то умников, рассуждать, как нужно и что лучше, пруд пруди.
 
  • Лойс +1
Реакции: Burai

tsabak

✩✩✩✩✩✩✩
2 Сен 2018
81
8
Koteyka
в программе: соединение - сервис - кнопка разблокирована это чего?
 

tsabak

✩✩✩✩✩✩✩
2 Сен 2018
81
8
спасибо за ответ. а я тыкаю и не пойму что к чему...
 

Vitalkin

✩✩✩✩✩✩✩
25 Июн 2019
10
2
@sergeym11, Схему собрал, единственно вместо оптопары поставил N- канальный транзистор M3006D, он управляет IRF4905. Знаю, что из пушки по воробьям, но это единственный P транзистор дома. Главное РАБОТАЕТ! Спасибо.
Кстати вспышка ленты после включения питания осталась, но теперь после нажатия на сенсорную кнопку, что меня вполне устраивает.
Теперь потребление в простое на грани погрешности замера
 
Изменено: