Как стать автором
Обновить

Программируемая Wi-Fi лампочка-ночник на ESP8266

DIY или Сделай сам
Из песочницы
image

Нет ничего необычного в управлении светодиодами с помощью микроконтроллера. Даже такого странного, как ESP8266. Однако мне хотелось сделать законченный продукт. Что-то, что не было бы похоже на паука из проводов и радиодеталей.

Отмечу, что я — начинающий радиолюбитель, так что наверняка что-то сделал не слишком хорошо. Буду рад, если кто-то подскажет, что не так и почему надо делать иначе.

Существует целый ряд особенностей, связанных с контроллером ESP8622, с транзисторами, с мощными RGB-светодиодами, с 3D-печатью вообще и моделированием в частности и программированием всего этого счастья. Это обзорная статья, где я коротко покажу, что и как получилось, а если вы захотите, то раскрою подробнее запрошенные темы отдельными статьями.

Модуль ESP очень прожорлив. При запуске он забирает до 300 мА, что делает невозможным его питание, к примеру, от Arduino. Ему нужен свой источник питания. Причем, источник питания на 3.3В. Это проблема. В мире полно копеечных источников питания на 5В, но трехвольтовые громоздки и дороги. К счастью, существует такая вещь, как регулятор напряжения AMS1117-3.3.

Питание


Взял цоколь от лампочки, китайскую пятиваттную USB-зарядку, регулятор напряжения со сглаживающим конденсатором, диод Шоттки (на всякий случай) и получил:

image

На 3.3 не очень похоже, но это потому, что стоит пара конденсаторов. Однако, под нагрузкой все нормально.

Контроллер


Мой фаворит — ESP-07, с возможностью подключения внешней антенны и металлическим экраном-теплоотводом.
Прошивка: nodemcu, в первую очередь потому, что там есть поддержка ШИМ (PWM) и возможность менять код на лету.

image

Собранная схема


Затем, закрепил сверху трехваттный RGB-светодиод, подключил к нему транзисторы BC547 (схема с общим эмиттером), блок питания и плату заклеил изолентой и скрепил вместе двусторонним скотчем. С другой стороны платы прикрепил поставил микроконтроллер, подвел питание, добавил сопротивление к каждому каналу светодиода и подключил к 5 вольтам.

image

Корпус


Итоговый выбор — цилиндрический корпус с отверстием снизу под цоколь, канавками для платы и выемкой сверху для крепления украшения. Немного tinkercad-а, два часа печати и результат:

image

Финальный продукт


image

Проверка


Немного JS, немного LUA, немного Perl и…

image

Как это работает


При включении лампочка коннектится к домашней сети и запрашивает у домашнего сервера файлик с lua-скриптом. Если получилось — сохраняет и запускает. Если не получилось — запускает предыдущий сохраненный. Обычно включение занимает около 2-3 секунд.

Подводные камни


Куда же без них?

Во-первых, нельзя использовать транзисторную схему включения с общим коллектором. ESP — удивительно живучая штука, хоть и очень капризная. Он начинает зверски греться от пяти вольт, но после того как остынет — приходит в норму.

Во-вторых, нельзя использовать GPIO0, потому что он на старте получается замкнут на землю и ESP входит в режим прошивки. И нельзя использовать GPIO2, потому что если он на старте «на земле», то Wi-Fi модуль не стартует. GPIO15 тоже лучше не трогать. Мой выбор: 4,5,12.

В-третьих, нужно выставлять максимальную скорость для обмена данными, иначе при получении данных программный ШИМ начинает заметно мерцать.

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

В пятых, в следующей версии нужно цилиндр делать более узким у основания, подрезав плату. Потому как не все патроны позволяют вкрутить лампу с таким широким основанием. Кроме того — можно было сантиметр высоты сэкономить.

Неисправимые улучшения


Планирую добавить midi-пищалку для всяких праздников, приложение под Андроид, чтобы выбирать цвет не в браузере, автоматический режим в котором бы лампа получала прогноз погоды и выбирала свой цвет в зависимости от результата и, наверное, следующий вариант стоит собирать, протравив плату. Интересные предложения всячески приветствуются.
Теги:
Хабы:
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 32K
Комментарии Комментарии 13