[Из песочницы] Программируемая Wi-Fi лампочка-ночник на ESP8266
Нет ничего необычного в управлении светодиодами с помощью микроконтроллера. Даже такого странного, как ESP8266. Однако мне хотелось сделать законченный продукт. Что-то, что не было бы похоже на паука из проводов и радиодеталей.
Отмечу, что я — начинающий радиолюбитель, так что наверняка что-то сделал не слишком хорошо. Буду рад, если кто-то подскажет, что не так и почему надо делать иначе.
Существует целый ряд особенностей, связанных с контроллером ESP8622, с транзисторами, с мощными RGB-светодиодами, с 3D-печатью вообще и моделированием в частности и программированием всего этого счастья. Это обзорная статья, где я коротко покажу, что и как получилось, а если вы захотите, то раскрою подробнее запрошенные темы отдельными статьями.Модуль ESP очень прожорлив. При запуске он забирает до 300 мА, что делает невозможным его питание, к примеру, от Arduino. Ему нужен свой источник питания. Причем, источник питания на 3.3В. Это проблема. В мире полно копеечных источников питания на 5В, но трехвольтовые громоздки и дороги. К счастью, существует такая вещь, как регулятор напряжения AMS1117–3.3.
ПитаниеВзял цоколь от лампочки, китайскую пятиваттную USB-зарядку, регулятор напряжения со сглаживающим конденсатором, диод Шоттки (на всякий случай) и получил:
На 3.3 не очень похоже, но это потому, что стоит пара конденсаторов. Однако, под нагрузкой все нормально.
Контроллер Мой фаворит — ESP-07, с возможностью подключения внешней антенны и металлическим экраном-теплоотводом.Прошивка: nodemcu, в первую очередь потому, что там есть поддержка ШИМ (PWM) и возможность менять код на лету.
Собранная схема Затем, закрепил сверху трехваттный RGB-светодиод, подключил к нему транзисторы BC547 (схема с общим эмиттером), блок питания и плату заклеил изолентой и скрепил вместе двусторонним скотчем. С другой стороны платы прикрепил поставил микроконтроллер, подвел питание, добавил сопротивление к каждому каналу светодиода и подключил к 5 вольтам.
Корпус Итоговый выбор — цилиндрический корпус с отверстием снизу под цоколь, канавками для платы и выемкой сверху для крепления украшения. Немного tinkercad-а, два часа печати и результат:
Финальный продукт Проверка Немного JS, немного LUA, немного Perl и…
Как это работает При включении лампочка коннектится к домашней сети и запрашивает у домашнего сервера файлик с lua-скриптом. Если получилось — сохраняет и запускает. Если не получилось — запускает предыдущий сохраненный. Обычно включение занимает около 2–3 секунд.Подводные камни Куда же без них? Во-первых, нельзя использовать транзисторную схему включения с общим коллектором. ESP — удивительно живучая штука, хоть и очень капризная. Он начинает зверски греться от пяти вольт, но после того как остынет — приходит в норму.
Во-вторых, нельзя использовать GPIO0, потому что он на старте получается замкнут на землю и ESP входит в режим прошивки. И нельзя использовать GPIO2, потому что если он на старте «на земле», то Wi-Fi модуль не стартует. GPIO15 тоже лучше не трогать. Мой выбор: 4,5,12.
В-третьих, нужно выставлять максимальную скорость для обмена данными, иначе при получении данных программный ШИМ начинает заметно мерцать.
В-четвертых, ABS-пластик горюч, это надо учитывать, помня о китайском блоке питания.
В пятых, в следующей версии нужно цилиндр делать более узким у основания, подрезав плату. Потому как не все патроны позволяют вкрутить лампу с таким широким основанием. Кроме того — можно было сантиметр высоты сэкономить.
Неисправимые улучшения Планирую добавить midi-пищалку для всяких праздников, приложение под Андроид, чтобы выбирать цвет не в браузере, автоматический режим в котором бы лампа получала прогноз погоды и выбирала свой цвет в зависимости от результата и, наверное, следующий вариант стоит собирать, протравив плату. Интересные предложения всячески приветствуются.