ESP8266

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

sega6549
Сообщения: 535
Зарегистрирован: Чт авг 20, 2015 11:32 am
Откуда: Ярославль
Благодарил (а): 61 раз
Поблагодарили: 75 раз
Контактная информация:

Re: ESP8266

Сообщение sega6549 » Сб май 07, 2016 3:36 pm

Спасибо за ответ, в принципе я уже сам разобрался моим любимым методом тыка) а вот насчёт регулировки яркости, можете подсказать как сделать? Пример кода для слайдера...
Тут можно задать вопрос по MajorDoMo VK
Канал по MajorDoMo youtube
ivannag
Сообщения: 146
Зарегистрирован: Вт апр 12, 2016 12:19 am
Благодарил (а): 18 раз
Поблагодарили: 27 раз

Re: ESP8266

Сообщение ivannag » Сб май 07, 2016 3:44 pm

sega6549 писал(а):Спасибо за ответ, в принципе я уже сам разобрался моим любимым методом тыка) а вот насчёт регулировки яркости, можете подсказать как сделать? Пример кода для слайдера...
у меня в классе ESP8266 прописаны методы для каждого канала pwm (pwm0, pwm1, pwm2) вот пример для pwm0 (для отальных поменяйте просто в коде ch=0 на 1 или 2

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

$cmdUrl ="http://".$this->getProperty("wanip")."/pwm?ch=0&set=" .$params['VALUE'];
getURL($cmdUrl,0);
просто создайте слайдер и привяжите его к свойству pwm0 (оно из модуля прилетает) и все заработает...
Если заинтересует, то позже выложу еще метод для изменения цвета "тыканием" в цветовую радугу (на форуме есть пример для ардуино, нужно лишь новый метод и пару строк изменить для есп)...
sega6549
Сообщения: 535
Зарегистрирован: Чт авг 20, 2015 11:32 am
Откуда: Ярославль
Благодарил (а): 61 раз
Поблагодарили: 75 раз
Контактная информация:

Re: ESP8266

Сообщение sega6549 » Сб май 07, 2016 3:55 pm

ivannag писал(а):
sega6549 писал(а):Спасибо за ответ, в принципе я уже сам разобрался моим любимым методом тыка) а вот насчёт регулировки яркости, можете подсказать как сделать? Пример кода для слайдера...
у меня в классе ESP8266 прописаны методы для каждого канала pwm (pwm0, pwm1, pwm2) вот пример для pwm0 (для отальных поменяйте просто в коде ch=0 на 1 или 2

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

$cmdUrl ="http://".$this->getProperty("wanip")."/pwm?ch=0&set=" .$params['VALUE'];
getURL($cmdUrl,0);
 
просто создайте слайдер и привяжите его к свойству pwm0 (оно из модуля прилетает) и все заработает...
Если заинтересует, то позже выложу еще метод для изменения цвета "тыканием" в цветовую радугу (на форуме есть пример для ардуино, нужно лишь новый метод и пару строк изменить для есп)...
у меня нет такого свойство, создал метод с таким кодом

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

$cmdUrl ="http://192.168.1.9".$this->getProperty("wanip")."/pwm?ch=0&set=" .$params['VALUE'];
getURL($cmdUrl,0); 

собственно сделал слайдер, мин и макс значения поставил, выбрал объект а смотрю свойства pwm нету... вы какой скрипт используете для получения свойств?
Тут можно задать вопрос по MajorDoMo VK
Канал по MajorDoMo youtube
ivannag
Сообщения: 146
Зарегистрирован: Вт апр 12, 2016 12:19 am
Благодарил (а): 18 раз
Поблагодарили: 27 раз

Re: ESP8266

Сообщение ivannag » Сб май 07, 2016 4:00 pm

sega6549 писал(а): собственно сделал слайдер, мин и макс значения поставил, выбрал объект а смотрю свойства pwm нету... вы какой скрипт используете для получения свойств?
а на самом модуле у вас PWM активирован? если да, то модуль точно посылает данные... скрипт короткий, тот, который создает свойства и объекты только когда они прилетают с модуля... через час выложу код, если нужно будет... пока-что убегаю...
За это сообщение автора ivannag поблагодарил:
sega6549 (Сб май 07, 2016 4:47 pm)
Рейтинг: 1.16%
sega6549
Сообщения: 535
Зарегистрирован: Чт авг 20, 2015 11:32 am
Откуда: Ярославль
Благодарил (а): 61 раз
Поблагодарили: 75 раз
Контактная информация:

Re: ESP8266

Сообщение sega6549 » Сб май 07, 2016 4:01 pm

ivannag писал(а):
sega6549 писал(а): собственно сделал слайдер, мин и макс значения поставил, выбрал объект а смотрю свойства pwm нету... вы какой скрипт используете для получения свойств?
а на самом модуле у вас PWM активирован? если да, то модуль точно посылает данные... скрипт короткий, тот, который создает свойства и объекты только когда они прилетают с модуля... через час выложу код, если нужно будет... пока-что убегаю...
а где его активировать?
Тут можно задать вопрос по MajorDoMo VK
Канал по MajorDoMo youtube
ivannag
Сообщения: 146
Зарегистрирован: Вт апр 12, 2016 12:19 am
Благодарил (а): 18 раз
Поблагодарили: 27 раз

Re: ESP8266

Сообщение ivannag » Сб май 07, 2016 4:03 pm

sega6549 писал(а):
ivannag писал(а):
sega6549 писал(а): собственно сделал слайдер, мин и макс значения поставил, выбрал объект а смотрю свойства pwm нету... вы какой скрипт используете для получения свойств?
а на самом модуле у вас PWM активирован? если да, то модуль точно посылает данные... скрипт короткий, тот, который создает свойства и объекты только когда они прилетают с модуля... через час выложу код, если нужно будет... пока-что убегаю...
а где его активировать?
через час все выложу... голодный уже)))) вы метод неправильно тоже прописали... ip указывать не нужно... я специально его сделал чтобы он ІР вытягивал автоматически.... оставьте то что я вам скинул...
активируется на самом модуле в разделе PWM (если вы собрали прошивку с ним)
За это сообщение автора ivannag поблагодарил:
sega6549 (Сб май 07, 2016 4:04 pm)
Рейтинг: 1.16%
sega6549
Сообщения: 535
Зарегистрирован: Чт авг 20, 2015 11:32 am
Откуда: Ярославль
Благодарил (а): 61 раз
Поблагодарили: 75 раз
Контактная информация:

Re: ESP8266

Сообщение sega6549 » Сб май 07, 2016 4:47 pm

ivannag писал(а): а на самом модуле у вас PWM активирован? если да, то модуль точно посылает данные... скрипт короткий, тот, который создает свойства и объекты только когда они прилетают с модуля... через час выложу код, если нужно будет... пока-что убегаю...
а где его активировать?[/quote]
через час все выложу... голодный уже)))) вы метод неправильно тоже прописали... ip указывать не нужно... я специально его сделал чтобы он ІР вытягивал автоматически.... оставьте то что я вам скинул...
активируется на самом модуле в разделе PWM (если вы собрали прошивку с ним)[/quote]
да насчет метода я конечно тупанул, даже не дочитал строчку кода)) насчет pvm разобрался, в прошивке не стоял просто) сделал слайдеры, плохо что нельзя одновременно использовать и слайдеры и выключалки, но думаю можно сделать через скрипты и просто отправлять либо 0 либо 255 на тот же pvm, в общем большое спасибо вам, но все равно жду метод для изменения тыканьем в радугу))))
Тут можно задать вопрос по MajorDoMo VK
Канал по MajorDoMo youtube
ivannag
Сообщения: 146
Зарегистрирован: Вт апр 12, 2016 12:19 am
Благодарил (а): 18 раз
Поблагодарили: 27 раз

Re: ESP8266

Сообщение ivannag » Сб май 07, 2016 4:49 pm

Вот мой сценарий... взял выше из этой же ветки форума, переделал только, чтоб объекты создавались не по их ID а по именах (мне так гораздо удобнее и информативней, хотя если попадутся два объекта с одинаковыми именами то наверное будут проблемы...)
СпойлерПоказать

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

//объект ищем по свойству idesp, так как имя объекта будет осмысленным, 
//а если не нашли - то добавляем с именем равным его айди

$hostname=$params["hostname"];

if (!$hostname) return;
//запишем в лог что пришло
DebMes("espdata request: ".$_SERVER['REQUEST_URI']);
 
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj) 
{
    
    if (gg($obj['TITLE'].".hostname") ==$hostname)
    {
        if (is_array($params)) {
           foreach($params as $k=>$v) {    
            if ($k!="script") {
            sg($obj['TITLE'].".".$k,$v);
            }
           }
         }
     //объект найден, свойства записаны, выходим
     return;
    }
}

//сюда попадет если нет объекта - создадим его, и запишем только одно свойство - его айди
//на следующем запросе мы попадем в первый цикл и все запишется
addClass("ESP8266");
addClassObject("ESP8266",$params["hostname"]);
sg(($hostname.".hostname"),$hostname);
СпойлерПоказать
objects.jpg
objects.jpg (152.67 КБ) 11814 просмотров
sega6549
Сообщения: 535
Зарегистрирован: Чт авг 20, 2015 11:32 am
Откуда: Ярославль
Благодарил (а): 61 раз
Поблагодарили: 75 раз
Контактная информация:

Re: ESP8266

Сообщение sega6549 » Сб май 07, 2016 4:59 pm

ivannag писал(а):Вот мой сценарий... взял выше из этой же ветки форума, переделал только, чтоб объекты создавались не по их ID а по именах (мне так гораздо удобнее и информативней, хотя если попадутся два объекта с одинаковыми именами то наверное будут проблемы...)
СпойлерПоказать

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

//объект ищем по свойству idesp, так как имя объекта будет осмысленным, 
//а если не нашли - то добавляем с именем равным его айди

$hostname=$params["hostname"];

if (!$hostname) return;
//запишем в лог что пришло
DebMes("espdata request: ".$_SERVER['REQUEST_URI']);
 
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj) 
{
    
    if (gg($obj['TITLE'].".hostname") ==$hostname)
    {
        if (is_array($params)) {
           foreach($params as $k=>$v) {    
            if ($k!="script") {
            sg($obj['TITLE'].".".$k,$v);
            }
           }
         }
     //объект найден, свойства записаны, выходим
     return;
    }
}

//сюда попадет если нет объекта - создадим его, и запишем только одно свойство - его айди
//на следующем запросе мы попадем в первый цикл и все запишется
addClass("ESP8266");
addClassObject("ESP8266",$params["hostname"]);
sg(($hostname.".hostname"),$hostname);
 
СпойлерПоказать
objects.jpg
ок, ща пробну а че насчет радуги?
Тут можно задать вопрос по MajorDoMo VK
Канал по MajorDoMo youtube
ivannag
Сообщения: 146
Зарегистрирован: Вт апр 12, 2016 12:19 am
Благодарил (а): 18 раз
Поблагодарили: 27 раз

Re: ESP8266

Сообщение ivannag » Сб май 07, 2016 5:19 pm

sega6549 писал(а): ок, ща пробну а че насчет радуги?
вот ссылка на оригинальную тему, сделайте все по инструкции... http://majordomo.smartliving.ru/forum/v ... f=4&t=1447
в коде нужно поменять lightHallRGB на наш объект у меня это ESP_03_Witt, хотя разумнее было бы вставить конструкцию .$this->getProperty("hostname"). и тогда сам колорприкер привязать просто к нашему объекту...
Не забыть при этом создать дополнительные свойства у данного объекта, такие как color (хранится выбранное в радуге значение цвета) и red, green, blue (тот же цвет разделенный для каждого из каналов).
плюс создаем два метода (их привяжем к кнопкам "вкл" и "выкл" или к каким хотите)...
Метод Color_on
СпойлерПоказать

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

$cmdUrl_0 ="http://".$this->getProperty("wanip")."/pwm?ch=0&set=" .$this->getProperty("Green");
$cmdUrl_1 ="http://".$this->getProperty("wanip")."/pwm?ch=1&set=" .$this->getProperty("Blue");
$cmdUrl_2 ="http://".$this->getProperty("wanip")."/pwm?ch=2&set=" .$this->getProperty("Red");
getURL($cmdUrl_0,0);
sleep(1);
getURL($cmdUrl_1,0);
sleep(1);
getURL($cmdUrl_2,0);
 
Метод Color_off
СпойлерПоказать

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

$cmdUrl_0 ="http://".$this->getProperty("wanip")."/pwm?ch=0&set=0";
$cmdUrl_1 ="http://".$this->getProperty("wanip")."/pwm?ch=1&set=0";
$cmdUrl_2 ="http://".$this->getProperty("wanip")."/pwm?ch=2&set=0";
getURL($cmdUrl_0,0);
sleep(1);
getURL($cmdUrl_1,0);
sleep(1);
getURL($cmdUrl_2,0);
 
команда sleep необязательно, добавляет задержку в 1с между изменением каждого из цветов (каналов pwm), добавил чтобы не "повесить" модуль при часто тыканье....
еще пробовал кнопку 'вкл' убрать а выполнение метода повесить на изменение свойства color... но умудрился повесить модуль (правда слип тогда еще не было) поэтому оставил кнопку для включения цвета...
результат:
СпойлерПоказать
радуга.jpg
радуга.jpg (267.98 КБ) 11792 просмотра
P.S. Судя по коду автора у него включение происходило автоматически... в коде прописан метод Turn_on, у меня он просто игнорится а вместо него запускается Color_on кнопочкой... если сделаете поправку, то будете запускать автоматически тыканием в цвет)
За это сообщение автора ivannag поблагодарил:
sega6549 (Сб май 07, 2016 6:16 pm)
Рейтинг: 1.16%
Ответить