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

ЗДЕСЬ ОБСУЖДАЕМ ТОЛЬКО ДАННУЮ ПРОШИВКУ
ВСЕ ЧТО НЕ ПО СИЯ ТЕМЕ И ПРОШИВКЕ, ВСЕ СНОСИТСЯ НА@@@!

Очень просим не делать репост "ЦИТИРОВАНИЕ" сообщений! Делать только в КРАЙНЕЙ необходимости, удаляя лишний текст (у нас не ЧАТ)!
Иначе опять будет 160 страниц и 0 пользы ....

Для ответа КОНКРЕТНОМУ пользователю, достаточно нажать " ОТВЕТ"

При описании проблемы обязательно, как можно подробнее, описывайте ход своих действий до ее возникновения. Телепатов (как я думаю) среди участников нет. Потом 20 постов будет только для того, чтобы Вас понять.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ПО ВОПРОСАМ РАБОТЫ ПРИЛОЖЕНИЯ ОТ KOTEYKA ИДЕМ В ЭТУ ТЕМУ

Голосовое управление лампой Гайвера, через Яндекс Алису (прошивка Gunner47).

Яндекс диск Файл ПДФ. Актуально на 27.01.2020г
наш сервер НЕ ОБНОВЛЯЕТСЯ, от 27.01.2020г
Прошивка gunner47 v.2 "86 эффектов в 1" или уже больше - разработку ведет @Сотнег
Прошивка gunner47 v.2.X_web : веб-интерфейс (без необходимости перепрошивки) - разработку ведет @alvikskor
Прошивка от Shaitan с поддержкой mp3 и пульта (тут не обсуждается. Обсуждается в теме прошивки)
Прошивка FireLamp with Remote Control - разработку ведет @SlingMaster

Для тех у кого умный дом Home Assistant есть отличный компонент

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

Комментарии

mechanic

★★★★✩✩✩
Команда форума
31 Июл 2018
403
206
ЗДЕСЬ ОБСУЖДАЕМ ТОЛЬКО ДАННУЮ ПРОШИВКУ
ВСЕ ЧТО НЕ ПО СИЯ ТЕМЕ И ПРОШИВКЕ, ВСЕ СНОСИТСЯ НА@@@!

Очень просим не делать репост "ЦИТИРОВАНИЕ" сообщений! Делать только в КРАЙНЕЙ необходимости, удаляя лишний текст (у нас не ЧАТ)!
Иначе опять будет 160 страниц и 0 пользы ....

Для ответа КОНКРЕТНОМУ пользователю, достаточно нажать " ОТВЕТ"

При описании проблемы обязательно, как можно подробнее, описывайте ход своих действий до ее возникновения. Телепатов (как я думаю) среди участников нет. Потом 20 постов будет только для того, чтобы Вас понять.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ПО ВОПРОСАМ РАБОТЫ ПРИЛОЖЕНИЯ ОТ KOTEYKA ИДЕМ В ЭТУ ТЕМУ

Голосовое управление лампой Гайвера, через Яндекс Алису (прошивка Gunner47).

Яндекс диск Файл ПДФ. Актуально на 27.01.2020г
наш сервер НЕ ОБНОВЛЯЕТСЯ, от 27.01.2020г
Прошивка gunner47 v.2 "86 эффектов в 1" или уже больше - разработку ведет @Сотнег
Прошивка gunner47 v.2.X_web : веб-интерфейс (без необходимости перепрошивки) - разработку ведет @alvikskor
Прошивка от Shaitan с поддержкой mp3 и пульта (тут не обсуждается. Обсуждается в теме прошивки)
Прошивка FireLamp with Remote Control - разработку ведет @SlingMaster

Для тех у кого умный дом Home Assistant есть отличный компонент

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

Евгений

✩✩✩✩✩✩✩
1 Авг 2018
14
1
Добрый день, нужна помощь. Прошивка и приложение от Koteyka. После установки сенсорная кнопка не работает, по нажатию диод горит , но ничего не происходит, на прошивке гайвера и гуннера все работало, не могу разобраться в чем дело
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
@ssp1971,
C++:
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

int L6 = 9;
int L7 = 7;
int L8 = 8;
//eventTime, для паузы,  вместо delay,будем использовать функцию millis.
unsigned long eventTime = 0;
//индикация таймера
int timer = 12;

void setup() {
  irrecv.enableIRIn(); // Start the receiver
  Serial.begin(9600);
  pinMode(L6, OUTPUT);
  pinMode(L7, OUTPUT);
  pinMode(L8, OUTPUT);
  pinMode(timer, OUTPUT);
  digitalWrite(L6, HIGH), digitalWrite(L7, HIGH), digitalWrite(L8, HIGH);
}


void loop() {
  // Эта конструкция нужна чтобы конвертировать пульсирующий (-) с (ИК) преемника сигнал в постоянный.
  // После появление и пропадания сигнала, состояние сразу не меняется! а ждет  100 миллисекунд.
  // Если 100 миллисекунд не прошло, и поступил еще один сигнал с пульта, тогда таймер заново запускается на 100 миллисекунд.
  // Проще говоря, пока кнопка на пульте нажата таймерПИН остается вКлюченным, если кнопка на пульте отпущена таймерПИН вЫключен.
  // Читаем данные с (ИК) преемника. В момент приема данных у (ИК) приемника на выходе появляется пульсирующий (-)отрицательный сигнал

  if (digitalRead(RECV_PIN) == LOW)//  Если обнаружен отрицательный сигнал запускаем таймер,и включаем таймерПИН //(timer, HIGH);
    eventTime = millis(), digitalWrite(timer, HIGH);

  //  Продолжительность работы таймера >100 миллисекунд. И ТаймерПИН выключаем //(timer, LOW)
  if (millis() - eventTime > 100) digitalWrite(timer, LOW)//  и вЫключаем все
    , digitalWrite(L6, HIGH), digitalWrite(L7, HIGH), digitalWrite(L8, HIGH);

  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    if (results.value == 0xFF38C7 && (digitalRead(timer) == HIGH) ) { //MODE
      digitalWrite(L6, LOW);
    }
    if (results.value == 0xFF18E7 && (digitalRead(timer) == HIGH) ) { //NEXT
      digitalWrite(L7, LOW);
    }
    if (results.value == 0xFF4AB5 && (digitalRead(timer) == HIGH) ) { //PREVIOUS
      digitalWrite(L8, LOW);
    }
    irrecv.resume();
  }
}
Этот код управляет тремя кнопками на пульте.
По аналогии пропишите остальные
Это я на бумбокс делал управление с пульта. Там релюхи к выводам прикручены. При удержании кнопок регулировалась громкость .Перепишите действия под себя
 
Изменено:
  • Лойс +1
Реакции: ssp1971

mjba

✩✩✩✩✩✩✩
26 Янв 2020
23
1
@Евгений, не помню на чьей прошивки, кнопка в настройках была закомментирована, проверьте, если так: //#define USE_BUTTON, то удалите //, получиться так #define USE_BUTTON, и у меня все заработало.
 
  • Лойс +1
Реакции: Евгений

tsabak

✩✩✩✩✩✩✩
2 Сен 2018
81
8
@Koteyka народ тупит как и я снимите комент с кнопки //#define ESP_USE_BUTTON и перезалейте прошивку, кому надо сам закоментит, так проще и вопросов меньше будет. По умолчанию народ по одной схеме делает на кнопке сенсорной.
 

ivannek

✩✩✩✩✩✩✩
16 Янв 2020
17
0
@Koteyka, глупый вопрос, но как скачать прошивку с вашего сайта? (кидает на страницу с иероглифами и все)
 

ssp1971

★★✩✩✩✩✩
14 Мар 2020
108
71
@Koteyka, Большое спасибо за код управления пультом. Выбрал на пульте от телевизора кнопку "ок" от неё телевизор не включается и вуаля дистанционное управление готово (кто будет повторять смотрите код кнопки пульта в мониторе порта у меня поменялся почему то). Что кнопкой тыкать в лампу то с пульта в 100 раз приятней! В дальнейшем переведу на wemos (библиотеку другую подключать нужно я понял но это не проблема она есть), хотя и так всё устраивает плюс в лампе уже нано смонтированна для переброса ленты на проэкт с нано. Спасибо ещё раз. Поправил для работы от одной кнопки чтобы покороче было).
#include <IRremote.h>
int RECV_PIN = 3;// пин ик приёмника
IRrecv irrecv(RECV_PIN);
decode_results results;

int L6 = 2;// пин кнопки механической

//eventTime, для паузы, вместо delay,будем использовать функцию millis.
unsigned long eventTime = 0;
//индикация таймера
int timer = 12;

void setup() {
irrecv.enableIRIn(); // Start the receiver
Serial.begin(9600);
pinMode(L6, OUTPUT);

pinMode(timer, OUTPUT);
digitalWrite(L6, HIGH);
}


void loop() {
// Эта конструкция нужна чтобы конвертировать пульсирующий (-) с (ИК) преемника сигнал в постоянный там где FFFFFFFF.
// После появление и пропадания сигнала, состояние сразу не меняется! а ждет 100 миллисекунд.
// Если 100 миллисекунд не прошло, и поступил еще один сигнал с пульта, тогда таймер заново запускается на 100 миллисекунд.
// Проще говоря, пока кнопка на пульте нажата таймерПИН остается вКлюченным, если кнопка на пульте отпущена таймерПИН вЫключен.
// Читаем данные с (ИК) преемника. В момент приема данных у (ИК) приемника на выходе появляется пульсирующий (-)отрицательный сигнал

if (digitalRead(RECV_PIN) == LOW)// Если обнаружен отрицательный сигнал запускаем таймер,и включаем таймерПИН //(timer, HIGH);
eventTime = millis(), digitalWrite(timer, HIGH);

// Продолжительность работы таймера >100 миллисекунд. И ТаймерПИН выключаем //(timer, LOW)
if (millis() - eventTime > 100) digitalWrite(timer, LOW)// и вЫключаем все
, digitalWrite(L6, HIGH);

if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if (results.value == 0x20DF22DD && (digitalRead(timer) == HIGH) ) { //код кнопки вашего пульта
digitalWrite(L6, LOW);
}

irrecv.resume();
}
}
КНОПКА и ПУЛЬТ.jpg
 
Изменено:
  • Лойс +1
Реакции: Koteyka 🐱 и ACKET

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
народ тупит как и я снимите комент с кнопки //#define ESP_USE_BUTTON и перезалейте прошивку, кому надо сам закоментит,
Снял. Но как показывает моя практика, при начальной прошивке с настройками WIFI, при включенной кнопке лампа очень часто не хочет либо подключаться к сети, либо не видится приложением. Причины пока не выяснял. Это только наблюдения
 

Shaitan

★★★✩✩✩✩
17 Фев 2020
182
165
@ssp1971, для для работы пульта, если что, можешь взять IRrecv.ino
при переводе с nano на wemos надо будет менять тип кодов с uint32_t на uint64_t, и соответственно FFFFFFFF на FFFFFFFFFFFFFFFF
 
Изменено:
  • Лойс +1
Реакции: ssp1971

mechanic

★★★★✩✩✩
Команда форума
31 Июл 2018
403
206
@Koteyka,
1) я админ всего и вся, (и нас таких всего 3 шт на весь форум, иногда еще 2 появляются по старой привычке) , а не 1 темы ...
2) я не могу за всем следить сутками на пролет, все вопросы по работе форума всегда можно задать в ЛС лично мне, или админам через жалобу
3) мы обсуждаем вручение вам "модератора"
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
  • Лойс +1
Реакции: Burai

ssp1971

★★✩✩✩✩✩
14 Мар 2020
108
71
Вот так можно прикрутить пульт для управления wemos и нано и переключаться между ними и проэктами соответственно с пульта ик.
#include <IRremote.h>
int RECV_PIN = 3;// пин ик приёмника
IRrecv irrecv(RECV_PIN);
decode_results results;

int L6 = 2;// пин кнопки механической
#define relay_pin 6 // 6 пин мосфета / реле
boolean butt_flag = 0; // флажок нажатия кнопки
boolean butt; // переменная, харнящая состояние кнопки
boolean flag = 0; // флажок режима

//eventTime, для паузы, вместо delay,будем использовать функцию millis.
unsigned long eventTime = 0;
//индикация таймера
int timer = 12;

void setup() {
pinMode(relay_pin, OUTPUT); // пин реле как выход
irrecv.enableIRIn(); // Start the receiver
Serial.begin(9600);
pinMode(L6, OUTPUT);// 2 pin на кнопку как выход

pinMode(timer, OUTPUT);
digitalWrite(L6, HIGH);// устанавливаем первоночальное включение лампы при подаче питания
}


void loop() {
//Подключение реле для переброса сигнального контакта ленты для проэктов с нано 6 пин мосфета / реле
if (irrecv.decode(&results))
{
int res = results.value;
Serial.println(res, HEX);
if (res == 0xFFFF8D72 || butt == 1 && butt_flag == 0) { // если кнопка НАЖАТА, до этого была была ОТПУЩЕНА
butt_flag = 1; // запоминаем, что нажимали кнопку
flag = !flag; // инвертируем флажок
digitalWrite(relay_pin, flag); // подаём сигнал на пин реле
}
}

// Эта конструкция нужна чтобы конвертировать пульсирующий (-) с (ИК) преемника сигнал в постоянный там где FFFFFFFF.
// После появление и пропадания сигнала, состояние сразу не меняется! а ждет 100 миллисекунд.
// Если 100 миллисекунд не прошло, и поступил еще один сигнал с пульта, тогда таймер заново запускается на 100 миллисекунд.
// Проще говоря, пока кнопка на пульте нажата таймерПИН остается вКлюченным, если кнопка на пульте отпущена таймерПИН вЫключен.
// Читаем данные с (ИК) преемника. В момент приема данных у (ИК) приемника на выходе появляется пульсирующий (-)отрицательный сигнал

if (digitalRead(RECV_PIN) == LOW)// Если обнаружен отрицательный сигнал запускаем таймер,и включаем таймерПИН //(timer, HIGH);
eventTime = millis(), digitalWrite(timer, HIGH);

// Продолжительность работы таймера >100 миллисекунд. И ТаймерПИН выключаем //(timer, LOW)
if (millis() - eventTime > 100) digitalWrite(timer, LOW)// и вЫключаем все
, digitalWrite(L6, HIGH);

if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if (results.value == 0x20DF22DD && (digitalRead(timer) == HIGH) ) { //код кнопки вашего пульта
digitalWrite(L6, LOW);
}

irrecv.resume();
}
}
 

Вложения

Изменено:

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
Вот как прикрутить пульт для управления wemos и нано
Как писали выше, зачем изврат с нано, если можно это все прописать в скетче для ESP
Единственное, что придется пожертвовать каким-то пином (под внешний будильник или под полевик) для ИК приемника, но не думаю, что все их используют
 

ssp1971

★★✩✩✩✩✩
14 Мар 2020
108
71
@Koteyka, Согласен с Вами. Цель была в одном корпусе сделать и wemos и нано для разных проэктов путём переброса сигнального провода ленты или матрицы. Тем более что готового решения под wemos с пультом пока нет). Главное работает благодаря Вам.
 
Изменено:

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Silverzab, поподробнее опиши, в чем проблема. Поправлю.
@smirnov8, файл OSD.h
1585913084442.png
drawFillRect2_fast(0, 1 = (высота нижней границы прямоугольника затенения в пикселях начиная от 0), WIDTH_d, 9 = (высота верхней границы прямоугольника затенения в пикселях начиная от 0),... Кстати, данную функцию буду переписывать в плане порядков параметров, а для высоты текста сделаю дефайн.
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
Так. Народ. Модерку я получил. Жду в личку ссылки на посты, которые нужно поднять в шапку темы
Ссылку можно получить скопировав ссылку в правом верхнем углу сообщения
1585915417672.png
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
drawFillRect2_fast(0, 1 = (высота нижней границы прямоугольника затенения в пикселях начиная от 0), WIDTH_d, 9 = (высота верхней границы прямоугольника затенения в пикселях начиная от 0),... Кстати, данную функцию буду переписывать в плане порядков параметров, а для высоты текста сделаю дефайн.
Я только что полупрозрачность прикрутил к выводу текста. Прикольно смотрится. Спасибо за идею. :)
 

Shaitan

★★★✩✩✩✩
17 Фев 2020
182
165
@Koteyka, у меня как раз скетч для подключения к wemos (готовое решение). и управлять удобно.
даже будильник можно с пульта задать. Просто @ssp1971 уперся в связку с нано.
Мне даже прикольно на развитие проекта посмотреть.