HandMade32.ru - сделай своими руками

Ночник в форме призмы. На основе ESP8266 и WS2812

Видео:


Добрый день, сегодня я поделюсь инструкцией по изготовлению небольшой настольной лампы, ночника. Источником света будет 120 светодиодов WS2812. Вы можете увеличить количество диодов или наоборот, сделать лампу меньше с меньшим количеством диодов. Я использовал светодиодную ленту плотностью 60 диодов на метр. Управляет всем ESP8266-12E. Управление через html страницу. Итак, начнем со списка необходимого:

– ESP8266-12E
– Стабилизатор напряжения 3.3v
– Резисторы 10 кОм, 5шт.
– Небольшой переключатель
– Кнопка
– Соединительные провода
– Пластик матовый или «молочный»
– Гофрированный картон
– USB-TTL
– USB коннектор
– Небольшой обрезок пластиковой трубки
– Блок питания 5 V, минимум 2 A
– Термоклеевой пистолет
– Паяльник, канифоль, припой и тд. и тп.
Шаг 1 Подготовка основы и светодиодов.
Для основы, на которую мы будем клеить светодиоды, будем использовать гофрированный картон. Я буду писать размеры для ночника, который сам собрал. Если вы решите изменить размеры или использовать другую светодиодную ленту, размеры надо будет пересчитать. Итак, вырезаем из картона прямоугольник размером 26.5 х 12.5 см:
Ночник в форме призмы. На основе ESP8266 и WS2812
С одного края отступаем 1 см для соединения деталей, и делим оставшийся прямоугольник на 3 равные части. Прорезаем верхний слой гофрированного картона, чтобы его можно было согнуть:
Ночник в форме призмы. На основе ESP8266 и WS2812
Сгибаем наш прямоугольник, по прорезям и склеиваем, получается призма:
Ночник в форме призмы. На основе ESP8266 и WS2812
Клейкого слоя диодной ленты иногда бывает недостаточно, чтобы их хорошо зафиксировать. Поэтому для прочности можно использовать двусторонний скотч. Наклеиваем его на картонную основу:
Ночник в форме призмы. На основе ESP8266 и WS2812
Диоды наклеиваем линиями, начинаем с нижней линии. Первую линию клеим по самому низу, замет отступаем немного и клеим следующую линия так, чтобы расстояние между диодами соседних линий было 1.6 см. У ленты WS8212 надо соблюдать направление сигнального контакты. На ленте направление указано. Линии клеим в одном направлении:
Ночник в форме призмы. На основе ESP8266 и WS2812
Провода контактов питания +5 и GND от первой линии светодиодов, а также провод от сигнального контакта Din выводим внутрь корпуса. Далее спаиваем Do от первой к Din второй линии и так далее. Контакты питания (+5 и GND) спаиваем параллельно:
Ночник в форме призмы. На основе ESP8266 и WS2812Ночник в форме призмы. На основе ESP8266 и WS2812
Использую обрезки пластикой трубки, например, от воздушного шарика на палочке, делаем ножки длинной 1 см нашему светильнику:
Ночник в форме призмы. На основе ESP8266 и WS2812
В итоге должно получиться примерно так:
Ночник в форме призмы. На основе ESP8266 и WS2812
Это один из вариантов, форма может любой, все ограниченно только вашей фантазией. Например, ночник можно сделать в форме конуса или цилиндра.

Шаг 2 Подготовка ESP8266 и блока питания.
Я использую ESP8266-12E, с 4 МБ Flash памяти. Можно использовать варианты исполнения ESP8266 с меньшим количеством выведенных GPIO. Для управления лентой нужно только один GPIO. Объем Flash памяти меньше 1 МБ, лучше не брать. Для работы ESP и заливки в него скетча вначале нужно сделать минимальную обвязку для этой платы. Обвязка состоит из переключателя, подключенного одним концом к GPIO0, а другим к GND, служащего для перевода модуля в режим заливки скетча. В обычном состоянии GPIO0 надо подтянуть к питанию через резистор 10 кОм. В подтяжке к питанию через резистор также нуждаются CH_PD, GPIO2. Для перезагрузки модуля ставиться кнопка между RESET и GND, для обеспечения стабильности RESET также следует подтянуть к питанию. Резистор на 470 Ом, вставленный между RESET и GPIO16 нужен для вывода модуля из режима «сна». Мы не будем использовать этот режим, поэтому резистор не обязателен. Вывод модуля GPIO15 нужно, также через резистор 10 кОм, подтянуть к GND. Модуль нужно запитать строго от 3.3V. Поэтому мы будет использовать стабилизатор напряжения. Ко входу которого будем подключать плюс от блока питания, а к выходу VCC ESP8266. GND думаю все понятно, главное чтобы GND блока питания, GND ленты и GND ESP были соединены. И не забываем о USB-TTL. RX к TX, TX к RX и обязательно соединяем GND ESP с GND USB-TTL. Схема следующая:
Ночник в форме призмы. На основе ESP8266 и WS2812
Сейчас на рынке радиоаппаратуры есть линейка модулей Wemos. Это те же самые модули ESP8266, только уже с необходимой обвязкой, стабилизатором напряжения, USB-TTL и удобно выведенными контактами. С ними работать намного проще, можете брать эти модули, только при заливке скетча, выбирайте правильную плату.

Ленту мы будем подключать к GPIO5. То есть Din от первой линии ленты подключаем к GPIO5 ESP8266.
На мой взгляд распаять все необходимое можно навесу. В собранном виде ESP8266 будет выглядеть примерно так:
Ночник в форме призмы. На основе ESP8266 и WS2812
Так получается компактно и контролер легко помещается внутри ночника:
Ночник в форме призмы. На основе ESP8266 и WS2812
Насчет блока питания. Лента WS2812 очень прожорлива. Если включить все три цвета, да еще и на максимальной яркости, один светодиод потребляет 0.06 A. Соответственно 120 диодов это 7.2 A. Ну это максимальное значение. Обычно такая яркость не требуется, в моем скетче стоит 10 (диапазон от 0 до 255) и этого достаточно. Я замерял потребления моего ночника при яркости 20. Потребление было в диапазоне от 1.0 A до 1.8 A. Для данного ночника надо взять блок питания с выходным током минимум 2.0 A. Для удобства на конец провода питания ночника лучше напаять USB, или просто взять провод с уже распаянным USB. Блок питания тогда должен быть примерно такой:
Ночник в форме призмы. На основе ESP8266 и WS2812
Шаг 3 Подготовка среды и заливка скетча.
Для правильной работы и заливки скетча необходимо подготовить среду программирования. Заходим на сайт и скачиваем последнею версию Arduino IDE.

Скетч опробован на последней версии Arduino IDE которая была на момент написании статьи -1.8.10. Если вы выбрали установщик вначале установите среду программирования, если скачали архив, просто распакуйте его в удобное вам место.

Теперь нужно добавить плату ESP8266 и ее модификации в Arduino IDE. Запускаем среду программирования, выбираем пункт меню «Файл», в открывшемся списке «Настройки». Выбираем пункт «Дополнительные ссылки для Менеджера плат». Вставляем ссылку для скачивания и установки расширения ESP8266:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Далее выбираем пункт меню «Инструменты» и заходим в «Менеджер плат». В строке поиска менеджера плат вводим «ESP», выбираем «esp8266 by ESP8266 Community», и устанавливаем последнюю версию. На момент написания статьи это 2.5.2. Дожидаемся окончания установки.
Для управления светодиодной лентой я использовал библиотеку «Adafruit neopixel». Для установки этой библиотеки, выбираем пункт меню «Скетч», переходим на «Подключить библиотеку» и выбираем «Управлять библиотеками». В строке поиска, открывшегося меню вводим «Adafruit neopixel», выбираем и устанавливаем одноименную библиотеку. Так же понадобиться библиотека «ArduinoJson», ее также можно найти, воспользовавшись поиском «Менеджера библиотек».

Для управления ночником используется html страница, также есть несколько страниц для настройки модуля. Чтобы записать эти html страницы, а также все необходимое для их правильной работы, нам понадобится дополнительная утилита. Скачиваем архив, размещенный ниже и распаковываем его в папку «tools», находящуюся в месте установки Arduino IDE:
Загрузка архива

После всех манипуляций следует перезагрузить среду программирования.
Теперь редактируем скетч. Открываем скетч:
Скачать скетч

Вам необходимо отредактировать следующие строки:

String _ssid = ""; // SSID точки доступа к которой надо подключится

В этой строке, между кавычек, введите имя точки доступа к которой ночник будет пытаться подключиться.

String _password = ""; // Пароль сети

Здесь, так же между кавычек, укажите пароль от точки доступа к которой ночник будет пытаться подключиться. Если вы не хотите, чтобы ESP подключалась к какой-то точке доступа, просто оставьте эти троки не тронутыми.

String _ssidAP = "Treygolka"; // SSID AP в режиме точки доступа

Строка указываем имя точки доступа, которую ESP8266 будет создавать.

String _passwordAP = "12051005"; // Пароль точки доступа

Пароль создаваемой точки доступа.
Осталось залить скетч и загрузить html страницы в ESP8266.

administrator

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного. - Альберт Эйнштейн

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.