Оглавление:

MQTT Mood Lights с ESP32: 4 шага (с изображениями)
MQTT Mood Lights с ESP32: 4 шага (с изображениями)

Видео: MQTT Mood Lights с ESP32: 4 шага (с изображениями)

Видео: MQTT Mood Lights с ESP32: 4 шага (с изображениями)
Видео: ESP8266 WebSocket MQTT Broker 2024, Ноябрь
Anonim
MQTT Mood Lights с ESP32
MQTT Mood Lights с ESP32

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

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

Обратите внимание, что цель этого руководства - задокументировать мой проект и поделиться идеями с другими, а не обязательно предоставить подробные инструкции и методы. С учетом сказанного, читайте дальше!

Запасы

Электроника:

  • 1x плата разработки ESP32
  • 1x 0,96-дюймовый I2C OLED-дисплей
  • 1x зуммер
  • 1x бочка домкрат
  • 1x 12V блок питания (ток зависит от длины вашей ленты)
  • 1x понижающий преобразователь LM2596
  • 1x светодиодная лента RGB с общим анодом
  • 3 полевых МОП-транзистора IRFZ44N
  • 3 транзистора BC547
  • 3 резистора по 10 кОм
  • 4 резистора по 100 Ом
  • 1x макетная плата
  • 4x винтовые клеммы
  • Мужские и женские заголовки
  • Проволока (я использовала одножильную)

Другое оборудование и инструменты:

  • Желаемый материал для корпуса (я использовал МДФ)
  • Плоский проводящий материал для сенсорных контактов (я использовал тонкий алюминиевый лист)
  • Пилы, сверла, наждачная бумага и др.
  • Паяльник и друзья
  • Горячий клей

Я настоятельно рекомендую не покупать ESP32 со встроенным OLED-дисплеем, потому что становится очень сложно сделать для него хорошо выровненный вырез в корпусе.

Шаг 1. Электроника

Электроника
Электроника
Электроника
Электроника

На прилагаемой схеме показаны все необходимые подключения, за исключением сенсорных входов. Также имеется относительно расплывчатая схема макета, показывающая, как подключить один полевой МОП-транзистор, если схема неадекватна.

Власть

Понижающий преобразователь LM2596 понижает напряжение с 12 В от источника питания до 5 В для VIN ESP. Убедитесь, что ваш блок питания рассчитан на длину используемой светодиодной ленты. Моя полоска длиной 2 метра потребляет чуть больше 2 ампер.

Контакты и периферийные устройства

Четыре сенсорных контакта используются для сенсорного ввода. Моя плата ESP32 шла с подключенным OLED-дисплеем, к которому были подключены контакты I2C. Он использует четыре контакта PWM, по одному для каждого цветового компонента (красный, зеленый и синий) и один для зуммера.

MOSFET путаница

Полевые МОП-транзисторы были выбраны для работы с коротким временем переключения ШИМ и относительно высоким током. Для каждого цветового компонента используется один полевой МОП-транзистор. Я использовал отдельные NPN BJT (BC547) вместе с подтягивающим резистором для управления IRFZ44N, поскольку цифровых сигналов 3,3 В от ESP32 могло быть недостаточно для того, чтобы полевые МОП-транзисторы проводили необходимый ток. МОП-транзисторы логического уровня, такие как IRLZ44N, существуют, но я узнал о них только после того, как закончил все паять. В любом случае моя полоска, которая рисует ~ 2A, работает нормально.

Пайка

Винтовые клеммы используются для подключения к светодиодной ленте, а гнездовые разъемы для подключения ESP32, на случай, если я захочу заменить любой из них, не разбирая вещи. Пайка заняла около двух часов и была очень простой. Я также отдал своей светодиодной ленте несколько более длинных проводов.

Почему я выбрал ESP32

У него есть Wi-Fi и Bluetooth на борту (хотя сейчас я использовал только Wi-Fi), и у меня был один, который мне не терпелось использовать. Сенсорные входы также пригодились для интерфейса на контроллере, поскольку им нужен только один провод, идущий к контакту. Однако при желании ESP32 можно легко заменить микроконтроллером, таким как ESP8266.

Шаг 2: Код

Я использовал набор инструментов Arduino (на самом деле расширение Arduino для VS Code:)), чтобы запрограммировать это. Есть отличные руководства, подобные этому, о том, как начать работу с ESP32 и Arduino IDE, если вы еще этого не сделали.

Существует четыре различных режима обработки: статический цвет, случайный цвет, красный сигнал и синий сигнал. Есть четыре сенсорных входа: вверх, вниз, далее и красное оповещение. Touch использует прерывания.

Я также добавил к работам MQTT, чтобы управлять им по Wi-Fi. Я пытаюсь почувствовать большую тройку веб-приложений (HTML, CSS, JS), поэтому я разработал веб-страницу в стиле «Звездный путь» (но довольно уродливую), которая взаимодействует с брокером MQTT для управления индикаторами настроения.

Весь мой код можно найти в приложении вместе с кратким справочным листом, имя файла которого вы, возможно, захотите изменить, чтобы сделать его уценкой. Перед открытием с помощью Arduino переместите все файлы в папку с именем «ESP32MQTTMoodLighting».

Обратите внимание, что мой код работает, но, вероятно, не самый лучший. Но это не имеет значения, ведь вы все равно напишете свой, верно?:)

Шаг 3: Корпус и сборка

Корпус и сборка
Корпус и сборка
Корпус и сборка
Корпус и сборка
Корпус и сборка
Корпус и сборка
Корпус и сборка
Корпус и сборка

Во время изоляции единственным материалом, который я мог достать, был лист МДФ толщиной 5 мм. Я сделал большие пропилы обычной ножовкой и хорошенько отшлифовал все. Основную подготовку завершил двойной слой эмалевой краски.

Задняя панель

Я хотел, чтобы мой блок можно было легко открывать, поэтому я установил всю свою электронику на заднюю панель с четырьмя стойками M2 для печатных плат. В моей монтажной плате уже были просверлены отверстия M2. У моих стоек внизу были маленькие резьбовые заглушки, которые я намеревался закрепить в МДФ. Но у меня не было сверла M2. Итак, отмечая положение каждого отверстия, я использовал небольшую отвертку с плоской головкой, чтобы вручную выдолбить отверстия. Грубый, но эффективный. Диаметр отверстий был немного меньше диаметра резьбовой части стойки. Я несколько раз закручивал стойки в отверстия и вынимал их из отверстий, они расширились и почти продвинулись в них.

В конце концов стойки прочно вошли в свои отверстия и удерживали перфорированную плату на месте. Поскольку мой МДФ был очень толстым, на другую сторону ничего не просвечивалось.

Я просверлил отверстие для разъема питания и сделал прорезь для проводов светодиодной ленты, прямо под тем местом, где были расположены мои винтовые клеммы.

Передняя панель

Вырез OLED-дисплея

Я начал вырез для OLED с нескольких отверстий для начинающих и отпилил их по размеру. В итоге он получился очень шатким и смещенным. Возможно, здесь не сыграла роль не перепроверка измерений, но избавьте себя от некоторых проблем, не используя плату для разработки со встроенным OLED. Намного проще просто прикрепить дисплей к отверстию.

Коннектор

Я сделал коннектор из нескольких мужских и женских заголовков. Один конец был прикреплен к проводам, подключенным к сенсорным контактам на передней панели, а другой конец имел провода, идущие к сенсорным входам ESP. Это было сделано для того, чтобы при необходимости переднюю панель можно было полностью снять с задней, не нарушая паяных соединений. Если вы устанавливаете что-нибудь еще на переднюю панель, вы можете сделать разъем и для этого.

Сенсорные панели

Сенсорные контакты были сделаны из алюминиевого листа. Я разрезал его, чтобы получить четыре необходимых прокладки, и убедился, что на нем нет неровностей по краям. Затем я просверлил отверстия в передней панели, достаточно большие для провода. Чтобы припой прилип к контактным площадкам, я протер небольшую часть одной стороны наждачной бумагой, чтобы удалить окисленный слой, а затем быстро протер ее, чтобы удалить любые частицы. Продев каждый провод через соответствующее отверстие на передней панели, я припаял каждый к его контактной площадке. Убедитесь, что припой не создает слишком больших выпуклостей на задней стороне, так как это не позволит контактной площадке прилегать к панели.

Наконец, нанесите немного горячего клея на заднюю часть каждой подушечки и надавите на переднюю панель. Добавление слишком большого количества приведет к тому, что колодки будут приподняты над панелью. Удалите излишки клея, которые могли вытолкнуться из-под подушек.

Прочее

Боковые панели довольно простые. Отверстие для быстрого доступа к винтовым клеммам доставило больше хлопот, чем оно того стоило. Боковые панели я приклеил к передней панели горячим способом.

Застежка-липучка на двух краях удерживает переднюю часть к задней панели. Зазоры позволяют уйти звуку зуммера. Если вы справитесь лучше меня, у вас не должно получиться что-то похожее на дошкольную поделку 5-летнего ребенка:)

У моей светодиодной ленты была липкая задняя часть (я уверен, что у вашей тоже). Я установил свой так, чтобы свет рассеивался от стены.

Шаг 4: Подключите

Подключи!
Подключи!

Теперь у вас должен быть полностью управляемый MQTT свет настроения. Я установил свой на свой стол, где он добавляет цветовой палитры иногда монотонной работе. Ночь - идеальное время, чтобы произвести впечатление на людей.

Надеюсь, вам понравилось читать это руководство, и у вас появилось несколько идей для ваших собственных проектов. Как я уже упоминал ранее, я новичок, и это моя первая инструкция. Буду признателен за любые советы и комментарии.

Рекомендуемые: