Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > ESP8266

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.01.2018, 22:41   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Управление RGB подсветкой из браузера

В праздники появилось свободное время и я решил сделать потолочную подсветку, управляемую из браузера

Сама потолочная подсветка, которая будет модернизироваться
Нажмите на изображение для увеличения
Название: photo_2018-01-08_22-42-48.jpg
Просмотров: 226
Размер:	88.9 Кб
ID:	4694

Схема подключения RGB Led подсветки к Wi-Fi модулю Wemos
Резисторы на затворах 1500-200 оМ
Транзисторы MOSFET IRLU8259 или IRLR2905
Нажмите на изображение для увеличения
Название: esp8266_rgb_led.gif
Просмотров: 694
Размер:	52.3 Кб
ID:	4696

Код для модуля ESP8266. Что бы посмотреть нажмите на +


PHP код:
#include <ESP8266WiFi.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>

// веб страница
String webpage ""
"<!DOCTYPE html><html><head><title>RGB control</title><meta name='mobile-web-app-capable' content='yes' />"
"<meta name='viewport' content='width=device-width' /></head><body style='margin: 0px; padding: 0px;'>"
"<canvas id='colorspace'></canvas></body>"
"<script type='text/javascript'>"
"(function () {"
" var canvas = document.getElementById('colorspace');"
" var ctx = canvas.getContext('2d');"
" function drawCanvas() {"
" var colours = ctx.createLinearGradient(0, 0, window.innerWidth, 0);"
" for(var i=0; i <= 360; i+=10) {"
" colours.addColorStop(i/360, 'hsl(' + i + ', 100%, 50%)');"
" }"
" ctx.fillStyle = colours;"
" ctx.fillRect(0, 0, window.innerWidth, window.innerHeight);"
" var luminance = ctx.createLinearGradient(0, 0, 0, ctx.canvas.height);"
" luminance.addColorStop(0, '#ffffff');"
" luminance.addColorStop(0.05, '#ffffff');"
" luminance.addColorStop(0.5, 'rgba(0,0,0,0)');"
" luminance.addColorStop(0.95, '#000000');"
" luminance.addColorStop(1, '#000000');"
" ctx.fillStyle = luminance;"
" ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);"
" }"
" var eventLocked = false;"
" function handleEvent(clientX, clientY) {"
" if(eventLocked) {"
" return;"
" }"
" function colourCorrect(v) {"
" return Math.round(1023-(v*v)/64);"
" }"
" var data = ctx.getImageData(clientX, clientY, 1, 1).data;"
" var params = ["
" 'r=' + colourCorrect(data[0]),"
" 'g=' + colourCorrect(data[1]),"
" 'b=' + colourCorrect(data[2])"
" ].join('&');"
" var req = new XMLHttpRequest();"
" req.open('POST', '?' + params, true);"
" req.send();"
" eventLocked = true;"
" req.onreadystatechange = function() {"
" if(req.readyState == 4) {"
" eventLocked = false;"
" }"
" }"
" }"
" canvas.addEventListener('click', function(event) {"
" handleEvent(event.clientX, event.clientY, true);"
" }, false);"
" canvas.addEventListener('touchmove', function(event){"
" handleEvent(event.touches[0].clientX, event.touches[0].clientY);"
"}, false);"
" function resizeCanvas() {"
" canvas.width = window.innerWidth;"
" canvas.height = window.innerHeight;"
" drawCanvas();"
" }"
" window.addEventListener('resize', resizeCanvas, false);"
" resizeCanvas();"
" drawCanvas();"
" document.ontouchmove = function(e) {e.preventDefault()};"
" })();"
"</script></html>"
;
//////////////////////////////////////////////////////////////////////////////////////////////////

#define red_pin 5
#define green_pin 2
#define blue_pin 4

const char *ssid "RGB-control"// точка доступа АР
const byte DNS_PORT 53;
IPAddress apIP(19216811); //IP адрес АР
DNSServer dnsServer;        //
ESP8266WebServer webServer(80);  //ПОРТ АР

// получем с веб страницы выбраный цвет
void handleRoot() 
{
String red webServer.arg(0);
String green webServer.arg(1);
String blue webServer.arg(2);

// конвертируем и ШИМ-мим значения на RGB пинах
analogWrite(red_pinred.toInt());
analogWrite(green_pingreen.toInt());
analogWrite(blue_pinblue.toInt());

webServer.send(200"text/html"webpage);
}
//////////////////////////////////////////////////////////////////////////////////////////////////

void setup() 
{
pinMode(red_pinOUTPUT); // R
pinMode(green_pinOUTPUT); // G
pinMode(blue_pinOUTPUT); // B
analogWrite(red_pin512);
analogWrite(green_pin512);
analogWrite(blue_pin512);

delay(1000);

//Запускаем WiFi AP и сервер
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(apIPapIPIPAddress(2552552550));
WiFi.softAP(ssid);

dnsServer.start(DNS_PORT"rgb-control"apIP);
webServer.on("/"handleRoot); //веб страница
webServer.begin();  //запуск сервера
}
//////////////////////////////////////////////////////////////////////////////////////////////////

void loop() 
{
dnsServer.processNextRequest();
webServer.handleClient();

[свернуть]


Веб страница в браузере моего смартфона выглядит так:
Нажмите на изображение для увеличения
Название: photo_2018-01-08_22-37-38.jpg
Просмотров: 281
Размер:	42.8 Кб
ID:	4693

Видео тестирования подсветки на макетке
Admin вне форума   Ответить с цитированием
Старый 09.01.2018, 02:44   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Следующий этап, это управление с любого пульта ДУ
И сохранение параметров в EEPROM
Admin вне форума   Ответить с цитированием
Старый 09.01.2018, 22:10   #3
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию

Хм... Только сейчас обратил внимание что у RGB лент общий плюс. Пока пользовался заводскими решениями был уверен, что у них общий минус.
Я, по-дурости, взял esp-14, вот и валяется без дела.
Tohin вне форума   Ответить с цитированием
Старый 10.01.2018, 01:01   #4
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию

Как обстоят дела со стабильностью работы ESP ?
__________________
istarik.ru
stD вне форума   Ответить с цитированием
Старый 10.01.2018, 02:06   #5
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
Сообщение от stD Посмотреть сообщение
Как обстоят дела со стабильностью работы ESP ?
Если использовать WDT, то при зависании модуль сбрасывается.
Только при этом приходится жертвовать одним GPIO
А в общем, уже намного лучше и стабильнее
У меня счетчики воды уже почти год как работают на Wemos
Admin вне форума   Ответить с цитированием
Старый 10.01.2018, 02:10   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
Сообщение от Tohin Посмотреть сообщение
Хм... Только сейчас обратил внимание что у RGB лент общий плюс. Пока пользовался заводскими решениями был уверен, что у них общий минус.
Так удобнее, так как при этом подключении N канальные транзисторы можно использовать.
К тому же питание у светодиодной ленты +12В, а у контроллера +3,3В
Admin вне форума   Ответить с цитированием
Старый 10.01.2018, 03:29   #7
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию

Цитата:
Если использовать WDT...
Спасиб.
__________________
istarik.ru
stD вне форума   Ответить с цитированием
Старый 10.01.2018, 03:53   #8
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Что то я совсем запутался про GPIO. GPIO нужен для deep sleep, а не для WDT
WDT в ESP8266 включен по умолчанию
Admin вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:53. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика